From e337755bf2989a473e0b778bcf0c7e1c9a60a8da Mon Sep 17 00:00:00 2001 From: tamal Date: Wed, 3 Jan 2018 07:40:55 -0800 Subject: [PATCH] Prepare docs for 5.0.0-rc.11 --- README.md | 2 +- chart/stable/voyager/Chart.yaml | 2 +- chart/stable/voyager/README.md | 6 +- chart/stable/voyager/values.yaml | 6 +- docs/CONTRIBUTING.md | 28 ++- docs/README.md | 25 +- docs/_index.md | 8 +- docs/acknowledgement.md | 14 +- docs/concepts/README.md | 8 +- docs/concepts/_index.md | 4 +- docs/concepts/ingress-class.md | 4 +- docs/concepts/overview.md | 15 +- docs/guides/_index.md | 7 +- docs/guides/certificate/README.md | 27 +-- docs/guides/certificate/_index.md | 6 +- docs/guides/certificate/delete.md | 15 +- docs/guides/certificate/dns/_index.md | 11 + .../certificate/{ => dns}/google-cloud.md | 18 +- .../guides/certificate/{ => dns}/providers.md | 23 +- docs/guides/certificate/{ => dns}/route53.md | 18 +- docs/guides/certificate/faq.md | 18 +- docs/guides/certificate/http/_index.md | 11 + .../certificate/{http.md => http/overview.md} | 22 +- docs/guides/ingress/README.md | 214 ++++-------------- docs/guides/ingress/_index.md | 6 +- docs/guides/ingress/configuration/_index.md | 10 +- .../ingress/configuration/annotations.md | 14 +- .../ingress/configuration/backend-rule.md | 12 +- .../configuration/configure-options.md | 12 +- .../configuration/configure-timeouts.md | 9 +- .../ingress/configuration/custom-templates.md | 11 +- .../ingress/configuration/frontend-rule.md | 10 +- .../guides/ingress/configuration/node-port.md | 13 +- docs/guides/ingress/http/_index.md | 10 +- docs/guides/ingress/http/cors.md | 12 +- docs/guides/ingress/http/custom-http-port.md | 11 +- docs/guides/ingress/http/external-svc.md | 8 +- docs/guides/ingress/http/header-rewrite.md | 12 +- docs/guides/ingress/http/hsts.md | 10 +- docs/guides/ingress/http/simple-fanout.md | 21 +- docs/guides/ingress/http/single-service.md | 6 +- docs/guides/ingress/http/source-range.md | 6 +- docs/guides/ingress/http/statefulset-pod.md | 6 +- docs/guides/ingress/http/sticky-session.md | 6 +- ...-virtual-hosting.md => virtual-hosting.md} | 12 +- docs/guides/ingress/http/weighted.md | 6 +- docs/guides/ingress/monitoring/_index.md | 10 +- .../monitoring/coreos-prometheus-operator.md | 21 +- .../monitoring/stats-and-prometheus.md | 9 +- docs/guides/ingress/pod-placement.md | 27 ++- ...replicas-and-autoscaling.md => scaling.md} | 16 +- docs/guides/ingress/security/_index.md | 10 +- docs/guides/ingress/security/basic-auth.md | 8 +- docs/guides/ingress/security/tls-auth.md | 6 +- docs/guides/ingress/tcp/_index.md | 10 +- docs/guides/ingress/tcp/tcp.md | 8 +- docs/guides/ingress/tls/_index.md | 10 +- docs/guides/ingress/tls/aws-cert-manager.md | 6 +- docs/guides/ingress/tls/backend-tls.md | 6 +- docs/guides/ingress/tls/tls.md | 6 +- docs/reference/_index.md | 4 +- docs/reference/voyager.md | 6 +- docs/reference/voyager_check.md | 4 +- docs/reference/voyager_export.md | 4 +- docs/reference/voyager_kloader.md | 4 +- docs/reference/voyager_kloader_check.md | 4 +- docs/reference/voyager_kloader_run.md | 4 +- docs/reference/voyager_run.md | 8 +- docs/reference/voyager_tls-mounter.md | 4 +- docs/reference/voyager_version.md | 4 +- docs/roadmap.md | 19 +- docs/setup/README.md | 25 ++ docs/setup/_index.md | 7 +- docs/setup/developer-guide/_index.md | 6 +- .../{README.md => overview.md} | 11 +- docs/setup/developer-guide/release.md | 9 +- docs/setup/install.md | 37 ++- docs/setup/uninstall.md | 33 +-- docs/support.md | 20 +- hack/deploy/operator-with-custom-tpl.yaml | 2 +- hack/deploy/operator.yaml | 2 +- hack/deploy/voyager.sh | 8 +- hack/gendocs/main.go | 2 +- pkg/cmds/run.go | 4 +- test/framework/configs.go | 2 +- 85 files changed, 539 insertions(+), 582 deletions(-) create mode 100644 docs/guides/certificate/dns/_index.md rename docs/guides/certificate/{ => dns}/google-cloud.md (96%) rename docs/guides/certificate/{ => dns}/providers.md (92%) rename docs/guides/certificate/{ => dns}/route53.md (97%) create mode 100644 docs/guides/certificate/http/_index.md rename docs/guides/certificate/{http.md => http/overview.md} (93%) rename docs/guides/ingress/http/{named-virtual-hosting.md => virtual-hosting.md} (88%) rename docs/guides/ingress/{replicas-and-autoscaling.md => scaling.md} (90%) create mode 100644 docs/setup/README.md rename docs/setup/developer-guide/{README.md => overview.md} (95%) diff --git a/README.md b/README.md index f5dc715e6..d5fe5c808 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Please pick a version of Voyager that matches your Kubernetes installation. | Voyager Version | Docs | Kubernetes Version | Prometheus operator Version | |----------------------------------------------------------------------------------------|-------------------------------------------------------------------------|--------------------|-----------------------------| -| [5.0.0-rc.10](https://github.com/appscode/voyager/releases/tag/5.0.0-rc.10) (uses CRD) | [User Guide](https://github.com/appscode/voyager/tree/5.0.0-rc.10/docs) | 1.7.x+ | 0.12.0+ | +| [5.0.0-rc.11](https://github.com/appscode/voyager/releases/tag/5.0.0-rc.11) (uses CRD) | [User Guide](https://github.com/appscode/voyager/tree/5.0.0-rc.11/docs) | 1.7.x+ | 0.12.0+ | | [3.2.2](https://github.com/appscode/voyager/releases/tag/3.2.2) (uses TPR) | [User Guide](https://github.com/appscode/voyager/tree/3.2.2/docs) | 1.5.x - 1.7.x | < 0.12.0 | ## Installation diff --git a/chart/stable/voyager/Chart.yaml b/chart/stable/voyager/Chart.yaml index dc469b346..91b8f64e2 100755 --- a/chart/stable/voyager/Chart.yaml +++ b/chart/stable/voyager/Chart.yaml @@ -3,7 +3,7 @@ description: 'Voyager by AppsCode - Secure Ingress Controller for Kubernetes' icon: https://cdn.appscode.com/images/icon/voyager.png name: voyager version: 2.0.0 -appVersion: 5.0.0-rc.10 +appVersion: 5.0.0-rc.11 sources: - https://github.com/appscode/voyager maintainers: diff --git a/chart/stable/voyager/README.md b/chart/stable/voyager/README.md index cdb85e895..39e01d435 100644 --- a/chart/stable/voyager/README.md +++ b/chart/stable/voyager/README.md @@ -43,11 +43,11 @@ The following tables lists the configurable parameters of the Voyager chart and | Parameter | Description | Default | | --------------------------| ------------------------------------------------------------- | ------------------ | | `operator.image` | Name of Voyager operator image | `appscode/voyager` | -| `operator.imageTag` | Tag of Voyager operator image | `5.0.0-rc.10` | +| `operator.imageTag` | Tag of Voyager operator image | `5.0.0-rc.11` | | `haproxy.image` | Name of HAProxy container image | `appscode/haproxy` | -| `haproxy.imageTag` | Tag of HAProxy container image | `1.7.9-5.0.0-rc.10` | +| `haproxy.imageTag` | Tag of HAProxy container image | `1.7.9-5.0.0-rc.11` | | `exporter.image` | Name of Prometheus exporter sidecar image | `appscode/voyager` | -| `exporter.imageTag` | Tag of Prometheus exporter sidecar image | `5.0.0-rc.10` | +| `exporter.imageTag` | Tag of Prometheus exporter sidecar image | `5.0.0-rc.11` | | `imagePullSecrets` | Specify image pull secrets | `nil` (does not add image pull secrets to deployed pods) | | `imagePullPolicy` | Image pull policy | `IfNotPresent` | | `cloudProvider` | Name of cloud provider | `nil` | diff --git a/chart/stable/voyager/values.yaml b/chart/stable/voyager/values.yaml index 0ff6fd4e8..0edbe5a69 100644 --- a/chart/stable/voyager/values.yaml +++ b/chart/stable/voyager/values.yaml @@ -3,15 +3,15 @@ ## operator: image: appscode/voyager - imageTag: 5.0.0-rc.10 + imageTag: 5.0.0-rc.11 ## Docker image containing HAProxy binary haproxy: image: appscode/haproxy - imageTag: 1.7.9-5.0.0-rc.10 + imageTag: 1.7.9-5.0.0-rc.11 ## Docker image containing Prometheus exporter exporter: image: appscode/voyager - imageTag: 5.0.0-rc.10 + imageTag: 5.0.0-rc.11 ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 62c87881c..90899aea6 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -2,20 +2,23 @@ title: Contributing | Voyager description: Contributing menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: contributing-voyager name: Contributing - parent: getting-started - weight: 35 + parent: welcome + weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/contributing/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: welcome +url: /products/voyager/5.0.0-rc.11/welcome/contributing/ +aliases: + - /products/voyager/5.0.0-rc.11/CONTRIBUTING/ --- + # Contribution Guidelines Want to hack on Voyager? -AppsCode projects are [Apache 2.0 licensed](LICENSE) and accept contributions via +AppsCode projects are [Apache 2.0 licensed](https://github.com/appscode/voyager/blob/master/LICENSE) and accept contributions via GitHub pull requests. This document outlines some of the conventions on development workflow, commit message formatting, contact points and other resources to make it easier to get your contribution accepted. @@ -25,25 +28,26 @@ resources to make it easier to get your contribution accepted. By contributing to this project you agree to the Developer Certificate of Origin (DCO). This document was created by the Linux Kernel community and is a simple statement that you, as a contributor, have the legal right to make the -contribution. See the [DCO](DCO) file for details. +contribution. See the [DCO](https://github.com/appscode/voyager/blob/master/DCO) file for details. ## Developer Guide -We have a [Developer Guide](/docs/setup/developer-guide/README.md) that outlines everything you need to know from setting up your +We have a [Developer Guide](/docs/setup/developer-guide/overview.md) that outlines everything you need to know from setting up your dev environment to how to build and test Voyager. If you find something undocumented or incorrect along the way, please feel free to send a Pull Request. ## Getting Help -If you have a question about Voyager or having problem using it, you can contact us on our public Slack channel. Follow [this link](https://slack.appscode.com) to get invitation to our Slack channel. +If you have a question about Voyager or having problem using it, you can contact us on the [AppsCode Slack team](https://appscode.slack.com/messages/C0XQFLGRM/details/) channel `#general`. Follow [this link](https://slack.appscode.com) to get invitation to our Slack channel. ## Bugs/Feature request -If you have found a bug with Voyager or want to request for new features, please [file an issue](https://github.com/appscode/Voyager/issues/new). +If you have found a bug with Voyager or want to request for new features, please [file an issue](https://github.com/appscode/voyager/issues/new). ## Submit PR -If you fix a bug or developed a new feature, feel free to submit a PR. In either case, please file a [Github issue]((https://github.com/appscode/Voyager/issues/new)) first, so that we can have a discussion on it. This is a rough outline of what a contributor's workflow looks like: +If you fix a bug or developed a new feature, feel free to submit a PR. In either case, please file a [Github issue](https://github.com/appscode/voyager/issues/new) first, so that we can have a discussion on it. This is a rough outline of what a contributor's workflow looks like: + - Create a topic branch from where you want to base your work (usually master). - Make commits of logical units. diff --git a/docs/README.md b/docs/README.md index d81482a76..f57f83fb3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,22 +1,23 @@ --- -title: Overview | Voyager -description: Overview of Voyager +title: Weclome | Voyager +description: Welcome to Voyager menu: - product_voyager_5.0.0-rc.10: - identifier: overview-voyager - name: Overview - parent: getting-started - weight: 20 + product_voyager_5.0.0-rc.11: + identifier: readme-voyager + name: Readme + parent: welcome + weight: -1 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: welcome +url: /products/voyager/5.0.0-rc.11/welcome/ aliases: - - /products/voyager/5.0.0-rc.10/ - - /products/voyager/5.0.0-rc.10/README/ + - /products/voyager/5.0.0-rc.11/ + - /products/voyager/5.0.0-rc.11/README/ --- # Voyager + Voyager is a [HAProxy](http://www.haproxy.org/) backed secure L7 and L4 ingress controller for Kubernetes developed by [AppsCode](https://appscode.com). This can be used with any Kubernetes cloud providers including aws, gce, gke, azure, acs. This can also be used with bare metal Kubernetes clusters. From here you can learn all about Voyager's architecture and how to deploy and use Voyager. diff --git a/docs/_index.md b/docs/_index.md index 4c6ed5879..808b94efb 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -2,9 +2,9 @@ title: Docs | Voyager description: Voyager Docs menu: - product_voyager_5.0.0-rc.10: - identifier: getting-started - name: Getting Started + product_voyager_5.0.0-rc.11: + identifier: welcome + name: Welcome weight: 10 -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/acknowledgement.md b/docs/acknowledgement.md index eb235105d..025a22d38 100644 --- a/docs/acknowledgement.md +++ b/docs/acknowledgement.md @@ -2,15 +2,17 @@ title: Acknowledgement | Voyager description: Acknowledgement menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: acknowledgement-voyager name: Acknowledgement - parent: getting-started - weight: 40 + parent: welcome + weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/acknowledgement/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: welcome +url: /products/voyager/5.0.0-rc.11/welcome/acknowledgement/ +aliases: + - /products/voyager/5.0.0-rc.11/acknowledgement/ --- # Acknowledgement diff --git a/docs/concepts/README.md b/docs/concepts/README.md index 9b9ab5aed..7ac9127f7 100644 --- a/docs/concepts/README.md +++ b/docs/concepts/README.md @@ -1,17 +1,17 @@ --- title: Concepts | Voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: concepts-readme name: Readme parent: concepts weight: -1 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: concepts -url: /products/voyager/5.0.0-rc.10/concepts/ +url: /products/voyager/5.0.0-rc.11/concepts/ aliases: - - /products/voyager/5.0.0-rc.10/concepts/README/ + - /products/voyager/5.0.0-rc.11/concepts/README/ --- # Concepts diff --git a/docs/concepts/_index.md b/docs/concepts/_index.md index 57da9cab6..730942262 100644 --- a/docs/concepts/_index.md +++ b/docs/concepts/_index.md @@ -2,9 +2,9 @@ title: Guides description: Voyager Guides menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: concepts name: Concepts weight: 20 -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/concepts/ingress-class.md b/docs/concepts/ingress-class.md index 84966e18a..954529bda 100644 --- a/docs/concepts/ingress-class.md +++ b/docs/concepts/ingress-class.md @@ -2,13 +2,13 @@ title: Ingress Class | Voyager description: Ingress Class menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: ingress-class name: Ingress Class parent: concepts weight: 40 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: concepts --- diff --git a/docs/concepts/overview.md b/docs/concepts/overview.md index 477d82085..f817ad7a4 100644 --- a/docs/concepts/overview.md +++ b/docs/concepts/overview.md @@ -2,18 +2,18 @@ title: Overview | Voyager description: Overview of Voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: overview-voyager name: Overview - parent: getting-started + parent: concepts weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/ +url: /products/voyager/5.0.0-rc.11/getting-started/ aliases: - - /products/voyager/5.0.0-rc.10/ - - /products/voyager/5.0.0-rc.10/README/ + - /products/voyager/5.0.0-rc.11/ + - /products/voyager/5.0.0-rc.11/README/ --- # Voyager @@ -21,11 +21,10 @@ Voyager is a [HAProxy](http://www.haproxy.org/) backed [secure](#certificate) L7 [AppsCode](https://appscode.com). This can be used with any Kubernetes cloud providers including aws, gce, gke, azure, acs. This can also be used with bare metal Kubernetes clusters. -## Ingress +# Ingress Voyager provides L7 and L4 loadbalancing using a custom Kubernetes [Ingress](/docs/guides/ingress) resource. This is built on top of the [HAProxy](http://www.haproxy.org/) to support high availability, sticky sessions, name and path-based virtual hosting. This also support configurable application ports with all the options available in a standard Kubernetes [Ingress](https://kubernetes.io/docs/guides/ingress/). -**Features** - HTTP - [Single Service Ingress](/docs/guides/ingress/http/single-service.md) - [Name and Path based virtual hosting](/docs/guides/ingress/http/named-virtual-hosting.md) diff --git a/docs/guides/_index.md b/docs/guides/_index.md index 481911f4e..fce4aa5fd 100644 --- a/docs/guides/_index.md +++ b/docs/guides/_index.md @@ -1,11 +1,10 @@ --- -title: Guides -description: Voyager Guides +title: Guides | Voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: guides name: Guides weight: 40 pre: dropdown -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/certificate/README.md b/docs/guides/certificate/README.md index 29a129416..c3a05a7c6 100644 --- a/docs/guides/certificate/README.md +++ b/docs/guides/certificate/README.md @@ -1,35 +1,36 @@ --- +title: Certificate | Voyager menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-readme + product_voyager_5.0.0-rc.11: + identifier: readme-certificate name: Readme - parent: certificate + parent: certificate-guides weight: -1 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides -url: /products/voyager/5.0.0-rc.10/guides/certificate/ +url: /products/voyager/5.0.0-rc.11/guides/certificate/ aliases: - - /products/voyager/5.0.0-rc.10/guides/certificate/README/ + - /products/voyager/5.0.0-rc.11/guides/certificate/README/ --- -# Certificate +# Guides -Voyager comes with a built-in certificate manager that can issue free TLS/SSL certificates from Let's Encrypt. Voyager uses a Custom Resource Definition called `Certificate` to declaratively manage and issue certificates from Let's Encrypt. +Guides show you how to use Voyager's built-in certificate manager to issue free TLS/SSL certificates from Let's Encrypt. ## Features - Provision free TLS certificates from Let's Encrypt. - Manage certificates declaratively using a Kubernetes Custom Resource Definition (CRD). - Domain validation using ACME http-01 and dns-01 challenges. -- Support for many popular [DNS providers](/docs/guides/certificate/providers.md). +- Support for many popular [DNS providers](/docs/guides/certificate/dns/providers.md). - Auto Renew certificates. - Use issued certificates with Ingress to secure communications. ## Next Steps -- [Issue Let's Encrypt certificate using HTTP-01 challenge](/docs/guides/certificate/http.md) +- [Issue Let's Encrypt certificate using HTTP-01 challenge](/docs/guides/certificate/http/overview.md) - DNS-01 chanllege providers - - [Issue Let's Encrypt certificate using AWS Route53](/docs/guides/certificate/route53.md) - - [Issue Let's Encrypt certificate using Google Cloud DNS](/docs/guides/certificate/google-cloud.md) - - [Supported DNS Challenge Providers](/docs/guides/certificate/providers.md) + - [Issue Let's Encrypt certificate using AWS Route53](/docs/guides/certificate/dns/route53.md) + - [Issue Let's Encrypt certificate using Google Cloud DNS](/docs/guides/certificate/dns/google-cloud.md) + - [Supported DNS Challenge Providers](/docs/guides/certificate/dns/providers.md) - [Deleting Certificate](/docs/guides/certificate/delete.md) - [Frequently Asked Questions](/docs/guides/certificate/faq.md) diff --git a/docs/guides/certificate/_index.md b/docs/guides/certificate/_index.md index 7cd3af965..89d070d76 100644 --- a/docs/guides/certificate/_index.md +++ b/docs/guides/certificate/_index.md @@ -1,10 +1,10 @@ --- title: Certificate menu: - product_voyager_5.0.0-rc.10: - identifier: certificate + product_voyager_5.0.0-rc.11: + identifier: certificate-guides name: Certificate parent: guides weight: 80 -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- \ No newline at end of file diff --git a/docs/guides/certificate/delete.md b/docs/guides/certificate/delete.md index bbc21af18..3e2f5e637 100644 --- a/docs/guides/certificate/delete.md +++ b/docs/guides/certificate/delete.md @@ -1,30 +1,35 @@ --- +title: Delete Certificate | Voyager menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-delete + product_voyager_5.0.0-rc.11: + identifier: delete-certificate name: Delete - parent: certificate - weight: 60 + parent: certificate-guides + weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- + # Deleting Certificate Deleting a Kubernetes `Certificate` object will only delete the certificate CRD from Kubernetes. It will not delete the obtained certificate and user account secret from Kubernetes. User have to manually delete these secrets for complete cleanup. - Delete Certificate crd. + ```console kubectl delete certificate.voyager.appscode.com test-cert ``` - Delete Obtained Let's Encrypt tls certificate + ```console kubectl delete secret tls-test-cert ``` - Delete Let's Encrypt user account `Secret` + ```console kubectl delete secret test-user-secret ``` diff --git a/docs/guides/certificate/dns/_index.md b/docs/guides/certificate/dns/_index.md new file mode 100644 index 000000000..d30e09c63 --- /dev/null +++ b/docs/guides/certificate/dns/_index.md @@ -0,0 +1,11 @@ +--- +title: DNS Challenger +description: DNS Challenger +menu: + product_voyager_5.0.0-rc.11: + identifier: dns-certificate + parent: certificate-guides + name: DNS Challenger + weight: 15 +menu_name: product_voyager_5.0.0-rc.11 +--- diff --git a/docs/guides/certificate/google-cloud.md b/docs/guides/certificate/dns/google-cloud.md similarity index 96% rename from docs/guides/certificate/google-cloud.md rename to docs/guides/certificate/dns/google-cloud.md index 96fb62569..815dd767d 100644 --- a/docs/guides/certificate/google-cloud.md +++ b/docs/guides/certificate/dns/google-cloud.md @@ -1,12 +1,14 @@ --- +title: Issue Let's Encrypt certificate using Google Cloud DNS +description: Issue Let's Encrypt certificate using Google Cloud DNS in Kubernetes menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-google-cloud + product_voyager_5.0.0-rc.11: + identifier: googlecloud-dns name: Google Cloud - parent: certificate - weight: 30 + parent: dns-certificate + weight: 15 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- @@ -24,11 +26,11 @@ Server Version: v1.8.4-gke.0 ## Deploy Voyager operator -Deploy Voyager operator following instructions [here](/docs/install.md). +Deploy Voyager operator following instructions [here](/docs/setup/install.md). ```console # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=gke ``` @@ -36,7 +38,7 @@ If you are trying this on a RBAC enabled cluster, pass the flag `--rbac` to inst ```console # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=gke --rbac ``` diff --git a/docs/guides/certificate/providers.md b/docs/guides/certificate/dns/providers.md similarity index 92% rename from docs/guides/certificate/providers.md rename to docs/guides/certificate/dns/providers.md index ad355a111..65556db3a 100644 --- a/docs/guides/certificate/providers.md +++ b/docs/guides/certificate/dns/providers.md @@ -1,12 +1,14 @@ --- +title: Supported DNS Challenge Providers +description: Supported DNS Challenge Providers menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-provider - name: Providers - parent: certificate - weight: 40 + product_voyager_5.0.0-rc.11: + identifier: providers-dns + name: Supported Providers + parent: dns-certificate + weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- @@ -24,7 +26,7 @@ Please see the list of supported providers and the keys expected in credential p - `AWS_SECRET_ACCESS_KEY`: The secret corresponding to the access key - `AWS_HOSTED_ZONE_ID`: `Optional`. If AWS_HOSTED_ZONE_ID is not set, Voyager tries to determine the correct public hosted zone via the FQDN. -To learn about necessary IAM permissions, please see [here](/docs/guides/certificate/route53.md#configure-iam-permissions). +To learn about necessary IAM permissions, please see [here](/docs/guides/certificate/dns/route53.md). ### Microsoft Azure - Provider: `azure` or `acs` @@ -83,7 +85,7 @@ To learn about necessary IAM permissions, please see [here](/docs/guides/certifi - `GCE_PROJECT`: The name of the Google Cloud project to use - `GOOGLE_SERVICE_ACCOUNT_JSON_KEY`: Service account json downloaded from Google Cloud console. This service account requires scope `https://www.googleapis.com/auth/ndev.clouddns.readwrite` to view and manage your DNS records hosted by Google Cloud DNS. -If you are running your cluster on Google Cloud (GKE or GCE), Voyager can use default service account associated with a VM. Please see [here](/docs/guides/certificate/google-cloud.md#configure-service-account-permissions) for detailed instructions. +If you are running your cluster on Google Cloud (GKE or GCE), Voyager can use default service account associated with a VM. Please see [here](/docs/guides/certificate/dns/google-cloud.md) for detailed instructions. ### Linode - Provider: `linode` @@ -167,5 +169,6 @@ spec: ``` For detailed guides on how to issue SSL certificates using Voyager, please see below: -- [Issue Let's Encrypt certificate using AWS Route53](/docs/guides/certificate/route53.md) -- [Issue Let's Encrypt certificate using Google Cloud DNS](/docs/guides/certificate/google-cloud.md) + +- [Issue Let's Encrypt certificate using AWS Route53](/docs/guides/certificate/dns/route53.md) +- [Issue Let's Encrypt certificate using Google Cloud DNS](/docs/guides/certificate/dns/google-cloud.md) diff --git a/docs/guides/certificate/route53.md b/docs/guides/certificate/dns/route53.md similarity index 97% rename from docs/guides/certificate/route53.md rename to docs/guides/certificate/dns/route53.md index 9158542e7..ed0576ad0 100644 --- a/docs/guides/certificate/route53.md +++ b/docs/guides/certificate/dns/route53.md @@ -1,12 +1,14 @@ --- +title: Issue Let's Encrypt certificate using AWS Route53 +description: Issue Let's Encrypt certificate using AWS Route53 in Kubernetes menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-route53 - name: Route53 - parent: certificate - weight: 50 + product_voyager_5.0.0-rc.11: + identifier: route53-dns + name: AWS Route53 + parent: dns-certificate + weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- @@ -31,7 +33,7 @@ Deploy Voyager operator following instructions [here](/docs/setup/install.md). ```console # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=aws --run-on-master ``` @@ -39,7 +41,7 @@ If you are trying this on a RBAC enabled cluster, pass the flag `--rbac` to inst ```console # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=aws --run-on-master --rbac ``` diff --git a/docs/guides/certificate/faq.md b/docs/guides/certificate/faq.md index f7efd6d85..6c85e92d0 100644 --- a/docs/guides/certificate/faq.md +++ b/docs/guides/certificate/faq.md @@ -1,12 +1,13 @@ --- +title: Certificate FAQ | Voyager menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-faq + product_voyager_5.0.0-rc.11: + identifier: faq-certificate name: FAQ - parent: certificate - weight: 70 + parent: certificate-guides + weight: 25 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- @@ -25,6 +26,7 @@ kubectl describe certificate --namespace ``` You can also check the logs for voyager operator pod and look for anything suspicious. + ```console kubectl logs -f -n kube-system ``` @@ -34,6 +36,7 @@ Please consult the official document on this matter: https://letsencrypt.org/doc ### How to use Let's Encrypt staging servers? If you are just testing Voyager and want to avoid hitting the rate limits in LE productoion environment, you have 2 options: + - Buy a cheap domain for testing. There are lot of $0.99/yr domains available these days. - You can tell voyager to use the LE staging servers for issuing the certificate. The issued certificate is not trusted, hence should not be used in production websites. But this works great for testing purposes. To use the staging environment, set the key `ACME_SERVER_URL` in your acme secret in addition to your email address. @@ -67,8 +70,9 @@ type: Opaque ### How can I distribute the issued ssl certificates? There are several options: -- If you are trying to distribute the same ssl certificate across different namespaces of a cluster, you can use a tool like [kubed](https://github.com/appscode/kubed/blob/master/docs/guides/config-syncer.md). -- If you want to distribute the issued certificates across different clusters, you can setup Voyager to issue certificates independently on each cluster. Please read the rate limiting restrictions for LE. The other option is to use [Kubernetes cluster federation](https://kubernetes.io/docs/guides/administer-federation/secret/) but it might not be worth the trouble if this is your only usecase for cluster federation. + +- If you are trying to distribute the same ssl certificate across different namespaces of a cluster, you can use a tool like [kubed](https://appscode.com/products/kubed). +- If you want to distribute the issued certificates across different clusters, you can setup Voyager to issue certificates independently on each cluster. Please read the rate limiting restrictions for LE. The other option is to use [kubed](https://appscode.com/products/kubed). - Just manually copy paste the `tls-***` secret to your destination cluster or namespace. diff --git a/docs/guides/certificate/http/_index.md b/docs/guides/certificate/http/_index.md new file mode 100644 index 000000000..f1b5362b3 --- /dev/null +++ b/docs/guides/certificate/http/_index.md @@ -0,0 +1,11 @@ +--- +title: HTTP Challenger +description: HTTP Challenger +menu: + product_voyager_5.0.0-rc.11: + identifier: http-certificate + parent: certificate-guides + name: HTTP Challenger + weight: 10 +menu_name: product_voyager_5.0.0-rc.11 +--- diff --git a/docs/guides/certificate/http.md b/docs/guides/certificate/http/overview.md similarity index 93% rename from docs/guides/certificate/http.md rename to docs/guides/certificate/http/overview.md index df80188da..a23dc91f6 100644 --- a/docs/guides/certificate/http.md +++ b/docs/guides/certificate/http/overview.md @@ -1,12 +1,14 @@ --- +title: Issue Let's Encrypt certificate using HTTP-01 challenge +description: Issue Let's Encrypt certificate using HTTP-01 challenge in Kubernetes menu: - product_voyager_5.0.0-rc.10: - identifier: certificate-http - name: HTTP - parent: certificate - weight: 20 + product_voyager_5.0.0-rc.11: + identifier: overview-http + name: Overview + parent: http-certificate + weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- @@ -18,7 +20,7 @@ Deploy Voyager operator following instructions [here](/docs/setup/install.md). ```console # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=gke ``` @@ -26,7 +28,7 @@ If you are trying this on a RBAC enabled cluster, pass the flag `--rbac` to inst ```console # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=gke --rbac ``` @@ -42,7 +44,7 @@ kubectl expose deployment nginx --name=web --port=80 --target-port=80 3. Now create Ingress `ing.yaml` ```console -kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/docs/examples/certificate/http/ing.yaml +kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/docs/examples/certificate/http/ing.yaml ``` 4. Wait for the LoadBlanacer ip to be assigned. Once the IP is assigned update your DNS provider to set the LoadBlancer IP as the A record for test domain `kiteci.com` @@ -73,7 +75,7 @@ kubectl create secret generic acme-account --from-literal=ACME_EMAIL=me@example. 8. Create the Certificate CRD to issue TLS certificate from Let's Encrypt using HTTP challenge. ```console -kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/docs/examples/certificate/http/crt.yaml +kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/docs/examples/certificate/http/crt.yaml ``` 8. Now wait a bit and you should see a new secret named `tls-kitecicom`. This contains the `tls.crt` and `tls.key` . diff --git a/docs/guides/ingress/README.md b/docs/guides/ingress/README.md index b80fbc097..b2eb9adff 100644 --- a/docs/guides/ingress/README.md +++ b/docs/guides/ingress/README.md @@ -1,190 +1,54 @@ --- +title: Ingress | Voyager menu: - product_voyager_5.0.0-rc.10: - name: Overview - parent: ingress - weight: 8 + product_voyager_5.0.0-rc.11: + identifier: readme-ingress + name: Readme + parent: ingress-guides + weight: -1 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides -url: /products/voyager/5.0.0-rc.10/guides/ingress/ +url: /products/voyager/5.0.0-rc.11/guides/ingress/ aliases: - - /products/voyager/5.0.0-rc.10/guides/ingress/README/ + - /products/voyager/5.0.0-rc.11/guides/ingress/README/ --- -### Ingress -An Ingress is a collection of rules which allow inbound connections to reach the cluster services. -It can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, -offer name-based virtual hosting, etc. Users can request ingress by POSTing the Ingress resource to API server. [Read More](http://kubernetes.io/docs/guides/ingress/) +# Guides -### Appscode Ingress -An extended plugin of Kubernetes Ingress by AppsCode, to support both L7 and L4 load balancing via a single ingress. -This is built on top of the HAProxy, to support high availability, sticky sessions, name and path-based virtual -hosting. This plugin also support configurable application ports with all the features available in Kubernetes Ingress. [Read More](#what-is-appscode-ingress) +Guides show you how to use Voyager as a Kubernetes Ingress controller. -**Features** - - [HTTP](/docs/guides/ingress/http/single-service.md) and [TCP](/docs/guides/ingress/tcp/tcp.md) loadbalancing, - - [TLS Termination](/docs/guides/ingress/tls/tls.md), - - Multi-cloud support, - - [Name and Path based virtual hosting](/docs/guides/ingress/http/named-virtual-hosting.md), - - [Cross namespace routing support](/docs/guides/ingress/http/named-virtual-hosting.md#cross-namespace-traffic-routing), - - [URL and Request Header Re-writing](/docs/guides/ingress/http/header-rewrite.md), - - [Wildcard Name based virtual hosting](/docs/guides/ingress/http/named-virtual-hosting.md), - - Persistent sessions, Loadbalancer stats. - - [Route Traffic to StatefulSet Pods Based on Host Name](/docs/guides/ingress/http/statefulset-pod.md) - - [Weighted Loadbalancing for Canary Deployment](/docs/guides/ingress/http/weighted.md) - - [Customize generated HAProxy config via BackendRule](/docs/guides/ingress/configuration/backend-rule.md) (can be used for [http rewriting](https://www.haproxy.com/doc/aloha/7.0/haproxy/http_rewriting.html), add [health checks](https://www.haproxy.com/doc/aloha/7.0/haproxy/healthchecks.html), etc.) - - [Add Custom Annotation to LoadBalancer Service and Pods](/docs/guides/ingress/configuration/annotations.md) +- HTTP + - [Single Service Ingress](/docs/guides/ingress/http/single-service.md) + - [Name and Path based virtual hosting](/docs/guides/ingress/http/named-virtual-hosting.md) - [Supports Loadbalancer Source Range](/docs/guides/ingress/http/source-range.md) + - [URL and Request Header Re-writing](/docs/guides/ingress/http/header-rewrite.md) + - [Enable CORS](/docs/guides/ingress/http/cors.md) + - [Custom HTTP Port](/docs/guides/ingress/http/custom-http-port.md) - [Supports redirects/DNS resolution for `ExternalName` type service](/docs/guides/ingress/http/external-svc.md) - - [Expose HAProxy stats for Prometheus](/docs/guides/ingress/monitoring/stats-and-prometheus.md) + - [HSTS](/docs/guides/ingress/http/hsts.md) + - [Simple Fanout](/docs/guides/ingress/http/simple-fanout.md) + - [Route Traffic to StatefulSet Pods Based on Host Name](/docs/guides/ingress/http/statefulset-pod.md) + - [Configure Sticky session to Backends](/docs/guides/ingress/http/sticky-session.md) + - [Weighted Loadbalancing for Canary Deployment](/docs/guides/ingress/http/weighted.md) +- TLS/SSL + - [TLS Termination](/docs/guides/ingress/tls/tls.md) + - [Backend TLS](/docs/guides/ingress/tls/backend-tls.md) - [Supports AWS certificate manager](/docs/guides/ingress/tls/aws-cert-manager.md) - - [Scale load balancer using HorizontalPodAutoscaling](/docs/guides/ingress/replicas-and-autoscaling.md) - - [Configure Custom Timeouts for HAProxy](/docs/guides/ingress/configuration/configure-timeouts.md) - - [Custom port for HTTP](/docs/guides/ingress/http/custom-http-port.md) +- TCP + - [TCP LoadBalancing](/docs/guides/ingress/tcp/tcp.md) +- Configuration + - [Customize generated HAProxy config via BackendRule](/docs/guides/ingress/configuration/backend-rule.md) (can be used for [http rewriting](https://www.haproxy.com/doc/aloha/7.0/haproxy/http_rewriting.html), add [health checks](https://www.haproxy.com/doc/aloha/7.0/haproxy/healthchecks.html), etc.) + - [Apply Frontend Rules](/docs/guides/ingress/configuration/frontend-rule.md) + - [Supported Annotations](/docs/guides/ingress/configuration/annotations.md) - [Specify NodePort](/docs/guides/ingress/configuration/node-port.md) - - [Backend TLS](/docs/guides/ingress/tls/backend-tls.md) - - [Configure Options](/docs/guides/ingress/configuration/configure-options.md) + - [Configure global options](/docs/guides/ingress/configuration/configure-options.md) + - [Configure Custom Timeouts for HAProxy](/docs/guides/ingress/configuration/configure-timeouts.md) - [Using Custom HAProxy Templates](/docs/guides/ingress/configuration/custom-templates.md) +- Security - [Configure Basic Auth for HTTP Backends](/docs/guides/ingress/security/basic-auth.md) - - [Configure Sticky session to Backends](/docs/guides/ingress/http/sticky-session.md) - - [Apply Frontend Rules](/docs/guides/ingress/configuration/frontend-rule.md) - - [Supported Annotations](/docs/guides/ingress/configuration/annotations.md#ingress-annotations) - -### Comparison with Kubernetes -| Feauture | Kube Ingress | AppsCode Ingress | -|----------|--------------|------------------| -| HTTP Loadbalancing| :white_check_mark: | :white_check_mark: | -| TCP Loadbalancing | :x: | :white_check_mark: | -| TLS Termination | :white_check_mark: | :white_check_mark: | -| Name and Path based virtual hosting | :x: | :white_check_mark: | -| Cross Namespace service support | :x: | :white_check_mark: | -| URL and Header rewriting | :x: | :white_check_mark: | -| Wildcard name virtual hosting | :x: | :white_check_mark: | -| Loadbalancer statistics | :x: | :white_check_mark: | -| Route Traffic to StatefulSet Pods Based on Host Name | :x: | :white_check_mark: | -| Weighted Loadbalancing on Canary Deployment| :x: | :white_check_mark: | -| Supports full Spectrum of HAProxy backend rules | :x: | :white_check_mark: | -| Supports Loadbalancer Source Range | :x: | :white_check_mark: | -| Supports redirects/DNS resolve for `ExternalName` type service | :x: | :white_check_mark: | -| Expose HAProxy stats for Prometheus | :x: | :white_check_mark: | -| Supports AWS certificate manager | :x: | :white_check_mark: | - -## AppsCode Ingress Flow -Typically, services and pods have IPs only routable by the cluster network. All traffic that ends up at an -edge router is either dropped or forwarded elsewhere. An AppsCode Ingress is a collection of rules that allow -inbound connections to reach the app running in the cluster, and of course though it the applications are recongnized -via service the traffic will bypass service and go directly to pod. -AppsCode Ingress can also be configured to give services externally-reachable urls, load balance traffic, -terminate SSL, offer name based virtual hosting etc. - -This resource Type is backed by an controller called Voyager which monitors and manages the resources of AppsCode Ingress Kind. -Which is used for maintain and HAProxy backed loadbalancer to the cluster for open communications inside cluster -from internet via the loadbalancer.
-Even when a resource for AppsCode Ingress type is created, the controller will treat it as a new loadbalancer -request and will create a new loadbalancer, based on the configurations. - - -## Dive Into AppsCode Ingress -Multiple scenario can happen with loadbalancer. AppsCode Ingress intends to resolve all these scenario -for a high-availability loadbalancer, inside a kubernetes cluster. - -### The Endpoints are like: - -| VERB | ENDPOINT | ACTION | BODY -|---------|-------------------------------------------------------------|--------|------- -| GET | /apis/voyager.appscode.com/v1beta1/namespace/`ns`/ingresss | LIST | nil -| GET | /apis/voyager.appscode.com/v1beta1/namespace/`ns`/ingresss/`name` | GET | nil -| POST | /apis/voyager.appscode.com/v1beta1/namespace/`ns`/ingresss | CREATE | JSON -| PUT | /apis/voyager.appscode.com/v1beta1/namespace/`ns`/ingresss/`name` | UPDATE | JSON -| DELETE | /apis/voyager.appscode.com/v1beta1/namespace/`ns`/ingresss/`name` | DELETE | nil - -## Ingress Status -If an ingress is created as `ingress.appscode.com/type: LoadBalancer` the ingress status field will contain -the ip/host name for that LoadBalancer. For `HostPort` mode the ingress will open ports on the nodes selected to run HAProxy. - -### Configuration Options -Voyager operator allows customization of Ingress resource using annotation keys with `ingress.appscode.com/` prefix. -The ingress annotaiton keys are always string. Annotation values might have the following data types: - -| Value Type | Description | Example YAML | -|----------- |-------------|--------------| -| string | any valid string | 'v1'; "v2" | -| integer | any valid integer | '1'; "2" | -| bool | 1, t, T, TRUE, true, True considered _true_; everything else is considered _false_ | 'true' | -| array | json formatted array of string | '["v1", "v2"]' | -| map | json formatted string to string map | '{ "k1" : "v1", "k2": "v2" }' | -| enum | string which has a predefined set of valid values | 'E1'; "E2" | - -If you are using YAML to write your Ingress, you can use any valid YAML syntax, including multi-line string. Here is an example: -```yaml -annotations: - ingress.appscode.com/type: LoadBalancer - ingress.appscode.com/replicas: '2' - ingress.appscode.com/load-balancer-ip: '100.101.102.103' - ingress.appscode.com/stats: 'true' - ingress.appscode.com/stats-port: '2017' - ingress.appscode.com/stats-secret-name: my-secret - ingress.appscode.com/annotations-service: | - { - "service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "http", - "service.beta.kubernetes.io/aws-load-balancer-proxy-protocol": "*", - "service.beta.kubernetes.io/aws-load-balancer-ssl-cert": "arn:aws:acm:..." - } -``` - -Below is the full list of supported annotation keys, [voyager also support standard ingress annotations](./configuration/annotations.md#ingress-annotations): - -| Keys | Value | Default | Description | -|--------|-----------|----------|--------------| -| ingress.appscode.com/type | LoadBalancer, HostPort, NodePort, Internal | LoadBalancer | `Required`. Indicates type of service used to expose HAProxy to the internet | -| ingress.appscode.com/replicas | integer | 1 | `Optional`. Indicates number of replicas of HAProxy pods | -| ingress.appscode.com/load-balancer-ip | string | x | `Optional`. For "gce", "gke", "azure", "acs" cloud provider, if this value is set to a valid IPv4 address, it will be assigned to loadbalancer used to expose HAProxy. The IP should be pre-allocated in cloud provider account but not assigned to the load-balancer. Usually this is set to a static IP to preserve DNS configuration | -| ingress.appscode.com/node-selector | map | x | Indicates which hosts are selected to run HAProxy pods. This is a recommended annotation for `HostPort` type ingress. | -| ingress.appscode.com/sticky-session | bool | false | `Optional`. Indicates the session affinity for the traffic. If set, session affinity will apply to all the rulses. | -| ingress.appscode.com/annotations-service | map | x | `Optional`. Annotaiotns applied to service used to expose HAProxy | -| ingress.appscode.com/annotations-pod | map | x | `Optional`. Annotations applied to pods used to run HAProxy | -| ingress.appscode.com/keep-source-ip | bool | false | `Optional`. If set, preserves source IP for `LoadBalancer` type ingresses. The actual configuration generated depends on the underlying cloud provider. For gce, gke, azure: Adds annotation `service.beta.kubernetes.io/external-traffic: OnlyLocal` to services used to expose HAProxy. For aws, enforces the use of the PROXY protocol. | -| ingress.appscode.com/accept-proxy | bool | false | `Optional`. If set, enforces the use of the PROXY protocol. | -| ingress.appscode.com/stats | bool | false | `Optional`. If set, HAProxy stats will be exposed | -| ingress.appscode.com/stats-port | integer | 56789 | `Optional`. Port used to expose HAProxy stats | -| ingress.appscode.com/stats-secret-name | string | x | `Optional`. Secret used to provide username & password to secure HAProxy stats endpoint. Secret must contain keys `username` and `password` | -| ingress.appscode.com/stats-service-name | string | `voyager--stats` | ClusterIP type service used to expose HAproxy stats. This allows to avoid exposing stats to internet. | -| ingress.appscode.com/ip | | | Removed since 1.5.6. Use `ingress.appscode.com/load-balancer-ip` | -| ingress.appscode.com/persist | | | Removed since 1.5.6. | -| ingress.appscode.com/daemon.nodeSelector | | | Removed since 1.5.6. Use `ingress.appscode.com/node-selector` | -| ingress.appscode.com/stickySession | | | Removed since 1.5.6. Use `ingress.appscode.com/sticky-session` | -| ingress.appscode.com/annotationsService | | | Removed since 1.5.6. Use `ingress.appscode.com/annotations-service` | -| ingress.appscode.com/annotationsPod | | | Removed since 1.5.6. Use `ingress.appscode.com/annotations-pod` | -| ingress.appscode.com/statsSecretName | | | Removed since 1.5.6. Use `ingress.appscode.com/stats-secret-name` | - -**Following annotations for ingress are not modifiable. The configuration is applied only when an Ingress object is created. -If you need to update these annotations, then first delete the Ingress and then recreate.** -``` -ingress.appscode.com/type -ingress.appscode.com/node-selector -ingress.appscode.com/load-balaner-ip -``` -The issue is being [tracked here.](https://github.com/appscode/voyager/issues/143) - -## Next Reading -- [Single Service example](./http/single-service.md) -- [Simple Fanout](./http/simple-fanout.md) -- [Virtual Hosting](./http/named-virtual-hosting.md) -- [URL and Header Rewriting](./http/header-rewrite.md) -- [TCP Loadbalancing](./tcp/tcp.md) -- [TLS Termination](./tls/tls.md) -- [Route Traffic to StatefulSet Pods Based on Host Name](./http/statefulset-pod.md) -- [Weighted Loadbalancing on Canary Deployment](./http/weighted.md) -- [Supports full HAProxy Spectrum via BackendRule](./configuration/backend-rule.md) -- [Add Custom Annotation to LoadBalancer Service and Pods](./configuration/annotations.md) -- [Supports Loadbalancer Source Range](./http/source-range.md) -- [Supports redirects/DNS resolve for `ServiceTypeExternalName`](./http/external-svc.md) -- [Expose HAProxy stats and metrics, use prometheus with metrics](./monitoring/stats-and-prometheus.md) - -## Example -Check out examples for [complex ingress configurations](../../../hack/example/ingress.yaml). -This example generates to a HAProxy Configuration like [this](../../../hack/example/haproxy_generated.cfg). - -## Other CURD Operations -Applying other operation like update, delete to AppsCode Ingress is regular kubernetes resource operation. + - [TLS Authentication](/docs/guides/ingress/security/tls-auth.md) +- Monitoring + - [Exposing HAProxy Stats](/docs/guides/ingress/monitoring/stats-and-prometheus.md) +- [Scaling Ingress](/docs/guides/ingress/scaling.md) +- [Placement of Ingress Pods](/docs/guides/ingress/pod-placement.md) diff --git a/docs/guides/ingress/_index.md b/docs/guides/ingress/_index.md index c0cdc1dad..cc0caf44e 100644 --- a/docs/guides/ingress/_index.md +++ b/docs/guides/ingress/_index.md @@ -1,10 +1,10 @@ --- title: Ingress menu: - product_voyager_5.0.0-rc.10: - identifier: ingress + product_voyager_5.0.0-rc.11: + identifier: ingress-guides name: Ingress parent: guides weight: 100 -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/configuration/_index.md b/docs/guides/ingress/configuration/_index.md index efe03afa5..add7f8026 100644 --- a/docs/guides/ingress/configuration/_index.md +++ b/docs/guides/ingress/configuration/_index.md @@ -1,10 +1,10 @@ --- title: Configuration menu: - product_voyager_5.0.0-rc.10: - identifier: configuration + product_voyager_5.0.0-rc.11: + identifier: config-ingress name: Configuration - parent: ingress - weight: 20 -menu_name: product_voyager_5.0.0-rc.10 + parent: ingress-guides + weight: 25 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/configuration/annotations.md b/docs/guides/ingress/configuration/annotations.md index 2a3713ecb..bd2ed5e39 100644 --- a/docs/guides/ingress/configuration/annotations.md +++ b/docs/guides/ingress/configuration/annotations.md @@ -1,18 +1,18 @@ --- -title: Annotations +title: Supported Annotations | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: annotation-config name: Annotations - parent: configuration + parent: config-ingress weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides -aliases: - - /products/voyager/5.0.0-rc.10/guides/ingress/configuration/ --- -# Configuration Options +# Supported Annotations + Voyager operator allows customization of Ingress resource using annotation keys with `ingress.appscode.com/` prefix. The ingress annotaiton keys are always string. Annotation values might have the following data types: diff --git a/docs/guides/ingress/configuration/backend-rule.md b/docs/guides/ingress/configuration/backend-rule.md index 69f924204..000966a8c 100644 --- a/docs/guides/ingress/configuration/backend-rule.md +++ b/docs/guides/ingress/configuration/backend-rule.md @@ -1,16 +1,18 @@ --- -title: Backend Rule +title: Backend Rules | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: backend-config name: Backend Rule - parent: configuration + parent: config-ingress weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- -### BackendRule +# Backend Rules + Voyager supports full spectrum of HAProxy backend rules via `backendRule`. Read [more](https://cbonte.github.io/haproxy-dconv/1.7/configuration.html) about HAProxy backend rules. diff --git a/docs/guides/ingress/configuration/configure-options.md b/docs/guides/ingress/configuration/configure-options.md index bf1fed29e..26b8c4cea 100644 --- a/docs/guides/ingress/configuration/configure-options.md +++ b/docs/guides/ingress/configuration/configure-options.md @@ -1,15 +1,17 @@ --- -title: Configure Options +title: Default HAProxy Options | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: - name: Configure Options - parent: configuration + product_voyager_5.0.0-rc.11: + identifier: options-config + name: HAProxy Options + parent: config-ingress weight: 35 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Default HAProxy Options Voyager Supports all valid options for defaults section of HAProxy config https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.2-option%20abortonclose diff --git a/docs/guides/ingress/configuration/configure-timeouts.md b/docs/guides/ingress/configuration/configure-timeouts.md index 0ebf69006..d19ebf444 100644 --- a/docs/guides/ingress/configuration/configure-timeouts.md +++ b/docs/guides/ingress/configuration/configure-timeouts.md @@ -1,14 +1,17 @@ --- +title: Customize Ingress Timeouts | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: custom-timeouts-config name: Configure Timeouts - parent: configuration + parent: config-ingress weight: 40 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Customize Timeouts Custom timeouts can be configured for HAProxy via annotations. Supports all valid timeout option for defaults section of HAProxy. [Read More](https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.2-timeout%20check) diff --git a/docs/guides/ingress/configuration/custom-templates.md b/docs/guides/ingress/configuration/custom-templates.md index 6e29591ef..574f3d9bf 100644 --- a/docs/guides/ingress/configuration/custom-templates.md +++ b/docs/guides/ingress/configuration/custom-templates.md @@ -1,15 +1,16 @@ --- +title: Using Custom HAProxy Templates | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: custom-tpl-config name: Custom Templates - parent: configuration + parent: config-ingress weight: 55 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- - # Using Custom HAProxy Templates Since 3.2.0, Voyager can use custom templates provided by users to render HAProxy configuration. Voyager comes with a set of GO [text/templates](https://golang.org/pkg/text/template/) found [here](/hack/docker/voyager/templates). These templates are mounted at `/srv/voyager/templates`. You can mount a ConfigMap with matching template names when installing Voyager operator to a different location and pass that to Voyager operator using `--custom-templates` flag. Voyager will [load](https://github.com/appscode/voyager/blob/3ae30cd023ff8fa6301d2656bf9fbc5765529691/pkg/haproxy/template.go#L40) the built-in templates first and then load any custom templates if provided. As long as the custom templates have [same name](https://golang.org/pkg/text/template/#Template.ParseGlob) as the built-in templates, custom templates will be used render HAProxy config. You can overwrite any number of templates as you wish. Also note that templates are loaded when Voyager operator starts. So, if you want to reload custom templates, you need to restart the running Voyager operator pod (not HAProxy pods). @@ -49,7 +50,7 @@ $ kubectl create configmap -n kube-system voyager-templates --from-file=/tmp/def Now, the ConfigMap `voyager-templates` has to be mounted in the voyager operator pod and `--custom-templates` flag has to be set. To do this pass the `--template-cfgmap` flag to the Voyager installer script. ```console -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=minikube --template-cfgmap=voyager-templates ``` diff --git a/docs/guides/ingress/configuration/frontend-rule.md b/docs/guides/ingress/configuration/frontend-rule.md index deee4b756..c7e6e98e0 100644 --- a/docs/guides/ingress/configuration/frontend-rule.md +++ b/docs/guides/ingress/configuration/frontend-rule.md @@ -1,16 +1,18 @@ --- +title: Frontend Ingress Rules| Voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: frontend-rule-config name: Frontend Rule - parent: configuration + parent: config-ingress weight: 65 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Frontend Rules -## Frontend Rules Frontend rules specify a set of rules that are applied to HAProxy frontend configuration. The set of keywords are from here https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.1. Only frontend sections can be applied here. **It is up to user to provide valid sets of rules**. diff --git a/docs/guides/ingress/configuration/node-port.md b/docs/guides/ingress/configuration/node-port.md index 7096cf18d..da640e480 100644 --- a/docs/guides/ingress/configuration/node-port.md +++ b/docs/guides/ingress/configuration/node-port.md @@ -1,16 +1,17 @@ --- +title: Specify Ingress NodePort | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: - name: Node Port - parent: configuration + product_voyager_5.0.0-rc.11: + identifier: nodeport-config + name: Specify NodePort + parent: config-ingress weight: 90 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- - -## Specify NodePort +# Specify NodePort If you are using a `NodePort` or `LoadBalancer` type Ingress, a `NodePort` or `LoadBalancer` type Service is used to expose HAProxy pods respectively. If no node port is specified for each HAProxy Service port, Kubernetes will randomly assign one for you. diff --git a/docs/guides/ingress/http/_index.md b/docs/guides/ingress/http/_index.md index c56c22f51..d46f858d5 100644 --- a/docs/guides/ingress/http/_index.md +++ b/docs/guides/ingress/http/_index.md @@ -1,10 +1,10 @@ --- title: HTTP menu: - product_voyager_5.0.0-rc.10: - identifier: http + product_voyager_5.0.0-rc.11: + identifier: http-ingress name: HTTP - parent: ingress - weight: 40 -menu_name: product_voyager_5.0.0-rc.10 + parent: ingress-guides + weight: 10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/http/cors.md b/docs/guides/ingress/http/cors.md index 2567f5c18..6da623810 100644 --- a/docs/guides/ingress/http/cors.md +++ b/docs/guides/ingress/http/cors.md @@ -1,17 +1,19 @@ --- +title: CORS | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: cors-http name: CORS - parent: http + parent: http-ingress weight: 45 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides - - /products/voyager/5.0.0-rc.10/guides/ingress/http/ + - /products/voyager/5.0.0-rc.11/guides/ingress/http/ --- +# CORS -## Enable CORS Applying `ingress.kubenretes.io/enable-cors` annotation in ingress enables CORS for all HTTP Frontend. ```yaml diff --git a/docs/guides/ingress/http/custom-http-port.md b/docs/guides/ingress/http/custom-http-port.md index 2041ec594..c28e29704 100644 --- a/docs/guides/ingress/http/custom-http-port.md +++ b/docs/guides/ingress/http/custom-http-port.md @@ -1,17 +1,18 @@ --- +title: Custom HTTP Port | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: custom-port-http name: Custom HTTP Port - parent: http + parent: http-ingress weight: 50 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Custom HTTP Port - -## Custom HTTP Port Voyager 3.2+ supports using any non-standard port (beyond 80 and 443) for L7 traffic. If no port is specified, port 80 or 443 will be used depending on whether TLS is used or not. ```yaml diff --git a/docs/guides/ingress/http/external-svc.md b/docs/guides/ingress/http/external-svc.md index 86a844178..90b764bca 100644 --- a/docs/guides/ingress/http/external-svc.md +++ b/docs/guides/ingress/http/external-svc.md @@ -1,11 +1,13 @@ --- +title: Using External Service as Ingress Backend | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: external-svc-backend-http name: External SVC - parent: http + parent: http-ingress weight: 60 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/http/header-rewrite.md b/docs/guides/ingress/http/header-rewrite.md index 1bdce060b..a64c7410f 100644 --- a/docs/guides/ingress/http/header-rewrite.md +++ b/docs/guides/ingress/http/header-rewrite.md @@ -1,16 +1,18 @@ --- +title: Header and URL Rewriting | Voayger menu: - product_voyager_5.0.0-rc.10: - name: Header Rewrite - parent: http + product_voyager_5.0.0-rc.11: + identifier: rewrite-http + name: Rewrite Support + parent: http-ingress weight: 70 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Header and URL Rewriting -### Header and URL Rewriting AppsCode Ingress support header and URL modification at the loadbalancer level. To ensure simplicity, the header and rewrite rules follow the HAProxy syntax as it is. To add some rewrite rules in a http rule, the syntax is: diff --git a/docs/guides/ingress/http/hsts.md b/docs/guides/ingress/http/hsts.md index 7f1530a11..c46335be0 100644 --- a/docs/guides/ingress/http/hsts.md +++ b/docs/guides/ingress/http/hsts.md @@ -1,16 +1,18 @@ --- +title: HSTS | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: + identifier: hsts-http name: HSTS - parent: http + parent: http-ingress weight: 75 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# HSTS -## HSTS HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking. It allows web servers to declare that web browsers (or other complying user agents) should only interact with it using secure diff --git a/docs/guides/ingress/http/simple-fanout.md b/docs/guides/ingress/http/simple-fanout.md index 816f17495..9a7382362 100644 --- a/docs/guides/ingress/http/simple-fanout.md +++ b/docs/guides/ingress/http/simple-fanout.md @@ -1,15 +1,17 @@ --- +http: Simple Fanout | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Simple Fanout - parent: http + parent: http-ingress weight: 100 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- -### Simple Fanout +# Simple Fanout + As described previously, pods within kubernetes have ips only visible on the cluster network. So, we need something at the edge accepting ingress traffic and proxy-ing it to right endpoints. This component is usually a highly available loadbalancer(s). An Ingress allows you to keep number of loadbalancers @@ -22,6 +24,7 @@ foo.bar.com -> load balancer -> / foo s1:80 ``` would require an Ingress such as: + ```yaml apiVersion: voyager.appscode.com/v1beta1 kind: Ingress @@ -42,11 +45,13 @@ spec: serviceName: s2 servicePort: '80' ``` + The Ingress controller will provision an implementation specific loadbalancer that satisfies the Ingress, as long as the services (s1, s2) exist. When it has done so, you will see the address of the loadbalancer under the Status of Ingress. In Voyager, **the order of rules and paths is important** as Voyager will use them in the order provided by user, instead of automatically reordering them. So, to add a catch-all service for all other paths, you can add a `/` path to the end. + ```yaml apiVersion: voyager.appscode.com/v1beta1 kind: Ingress @@ -71,11 +76,3 @@ spec: serviceName: catch-all servicePort: '80' ``` - - -## Next Reading -- [Virtual Hosting](named-virtual-hosting.md) -- [URL and Header Rewriting](header-rewrite.md) -- [TCP Loadbalancing](../tcp/tcp.md) -- [TLS Termination](../tls/tls.md) -- [Configure Custom Timeouts for HAProxy](../configuration/configure-timeouts.md) diff --git a/docs/guides/ingress/http/single-service.md b/docs/guides/ingress/http/single-service.md index 0c2a29207..536a90055 100644 --- a/docs/guides/ingress/http/single-service.md +++ b/docs/guides/ingress/http/single-service.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Single Service - parent: http + parent: http-ingress weight: 105 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/http/source-range.md b/docs/guides/ingress/http/source-range.md index c24cb2f42..8c2fba806 100644 --- a/docs/guides/ingress/http/source-range.md +++ b/docs/guides/ingress/http/source-range.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Source Range - parent: http + parent: http-ingress weight: 110 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/http/statefulset-pod.md b/docs/guides/ingress/http/statefulset-pod.md index 0b666cab5..b25f9a33d 100644 --- a/docs/guides/ingress/http/statefulset-pod.md +++ b/docs/guides/ingress/http/statefulset-pod.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Statefulset Pod - parent: http + parent: http-ingress weight: 115 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/http/sticky-session.md b/docs/guides/ingress/http/sticky-session.md index 29b9d2c53..a2369bdb0 100644 --- a/docs/guides/ingress/http/sticky-session.md +++ b/docs/guides/ingress/http/sticky-session.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Sticky Session - parent: http + parent: http-ingress weight: 125 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/http/named-virtual-hosting.md b/docs/guides/ingress/http/virtual-hosting.md similarity index 88% rename from docs/guides/ingress/http/named-virtual-hosting.md rename to docs/guides/ingress/http/virtual-hosting.md index b6aadb04f..86a378a82 100644 --- a/docs/guides/ingress/http/named-virtual-hosting.md +++ b/docs/guides/ingress/http/virtual-hosting.md @@ -1,16 +1,18 @@ --- +title: Virtual Hosting | Kubernetes Ingress menu: - product_voyager_5.0.0-rc.10: - name: Named Virtual Hosting - parent: http + product_voyager_5.0.0-rc.11: + identifier: virtual-hosting-http + name: Virtual Hosting + parent: http-ingress weight: 85 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Virtual Hosting -### Name based virtual hosting Name-based virtual hosts use multiple host names for the same IP address. ``` diff --git a/docs/guides/ingress/http/weighted.md b/docs/guides/ingress/http/weighted.md index ebad442c4..610962139 100644 --- a/docs/guides/ingress/http/weighted.md +++ b/docs/guides/ingress/http/weighted.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Weighted - parent: http + parent: http-ingress weight: 140 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/monitoring/_index.md b/docs/guides/ingress/monitoring/_index.md index f04f213ef..7ddb0dd10 100644 --- a/docs/guides/ingress/monitoring/_index.md +++ b/docs/guides/ingress/monitoring/_index.md @@ -1,10 +1,10 @@ --- title: Monitoring menu: - product_voyager_5.0.0-rc.10: - identifier: monitoring + product_voyager_5.0.0-rc.11: + identifier: monitoring-ingress name: Monitoring - parent: ingress - weight: 50 -menu_name: product_voyager_5.0.0-rc.10 + parent: ingress-guides + weight: 40 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/monitoring/coreos-prometheus-operator.md b/docs/guides/ingress/monitoring/coreos-prometheus-operator.md index 15dda3d12..643ad2ba3 100644 --- a/docs/guides/ingress/monitoring/coreos-prometheus-operator.md +++ b/docs/guides/ingress/monitoring/coreos-prometheus-operator.md @@ -1,16 +1,3 @@ ---- -menu: - product_voyager_5.0.0-rc.10: - name: CoreOS Prometheus - parent: monitoring - weight: 10 -product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: guides -aliases: - - /products/voyager/5.0.0-rc.10/guides/ingress/monitoring/ ---- - ```console $ kubectl create -f ./docs/examples/monitoring/demo-0.yaml @@ -70,15 +57,15 @@ prometheus-operated None 9090/TCP 37 test-server 10.0.0.28 80/TCP 9m voyager-test-ingress 10.0.0.81 80:30446/TCP 9m voyager-test-ingress-stats 10.0.0.36 56789/TCP,56790/TCP 6s -~/g/s/g/a/v/h/deploy (d2) $ +~/g/s/g/a/v/h/deploy (d2) $ ~/g/s/g/a/v/h/deploy (d2) $ kubectl get servicemonitor -n demo NAME KIND voyager-demo-test-ingress ServiceMonitor.v1alpha1.monitoring.coreos.com ~/g/s/g/a/v/h/deploy (d2) $ kubectl get servicemonitor -n demo NAME KIND voyager-demo-test-ingress ServiceMonitor.v1alpha1.monitoring.coreos.com -~/g/s/g/a/v/h/deploy (d2) $ -~/g/s/g/a/v/h/deploy (d2) $ +~/g/s/g/a/v/h/deploy (d2) $ +~/g/s/g/a/v/h/deploy (d2) $ ~/g/s/g/a/v/h/deploy (d2) $ kubectl get servicemonitor -n demo -o yaml apiVersion: v1 items: @@ -151,7 +138,7 @@ spec: type: ClusterIP status: loadBalancer: {} -~/g/s/g/a/v/h/deploy (d2) $ +~/g/s/g/a/v/h/deploy (d2) $ ``` diff --git a/docs/guides/ingress/monitoring/stats-and-prometheus.md b/docs/guides/ingress/monitoring/stats-and-prometheus.md index bdbd4a3ca..f690b9b77 100644 --- a/docs/guides/ingress/monitoring/stats-and-prometheus.md +++ b/docs/guides/ingress/monitoring/stats-and-prometheus.md @@ -1,17 +1,16 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Stats and Prometheus - parent: ingress + parent: monitoring-ingress weight: 120 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- +# Exposing HAProxy Stats - -## Exposing HAProxy Stats To expose HAProxy stats, please use the following annotations: ### Stats annotations diff --git a/docs/guides/ingress/pod-placement.md b/docs/guides/ingress/pod-placement.md index 2f518aef8..61fef3af1 100644 --- a/docs/guides/ingress/pod-placement.md +++ b/docs/guides/ingress/pod-placement.md @@ -1,4 +1,17 @@ -# Placement of HAProxy Pods +--- +title: Placement of Ingress Pods | Voyager +menu: + product_voyager_5.0.0-rc.11: + identifier: pod-placement-ingress + name: Pod Placement + parent: ingress-guides + weight: 50 +product_name: voyager +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: guides +--- + +# Placement of Ingress Pods Voyager has rich support for how HAProxy pods are placed on cluster nodes. Please check [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/) to understand Kubernetes' support for pod placement. @@ -6,19 +19,19 @@ Voyager has rich support for how HAProxy pods are placed on cluster nodes. Pleas At first, you need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. If you do not already have a cluster, you can create one by using [Minikube](https://github.com/kubernetes/minikube). -Now, install Voyager operator in your `minikube` cluster following the steps [here](/docs/install.md). +Now, install Voyager operator in your `minikube` cluster following the steps [here](/docs/setup/install.md). ```console minikube start # install without RBAC -curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- minikube ``` To keep things isolated, this tutorial uses a separate namespace called `demo` throughout this tutorial. Run the following command to prepare your cluster for this tutorial: ```console -$ curl -fSsL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/docs/examples/ingress/pod-placement/deploy-servers.sh | bash +$ curl -fSsL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/docs/examples/ingress/pod-placement/deploy-servers.sh | bash + kubectl create namespace demo namespace "demo" created + kubectl run nginx --image=nginx --namespace=demo @@ -36,7 +49,7 @@ service "rest" exposed [Node selectors](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector) can be used assign HAProxy ingress pods to specific nodes. The node selector is passed as a JSON map type value of `ingress.appscode.com/node-selector` annotation key. Below is an example where ingress pods are run on node with name`minikube`. ```console -kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/docs/examples/ingress/pod-placement/ingress-w-node-selector.yaml +kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/docs/examples/ingress/pod-placement/ingress-w-node-selector.yaml ``` ```yaml @@ -69,7 +82,7 @@ spec: [Affinity rules](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity) can be used assign HAProxy ingress pods to specific nodes or ensure that 2 separate HAProxy ingress pods are not placed on same node. Affinity rules are set via `spec.affinity` field in Voyager Ingress CRD. Below is an example where ingress pods are spread over run on node with name`minikube`. ```console -kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/docs/examples/ingress/pod-placement/ingress-w-pod-anti-affinity.yaml +kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/docs/examples/ingress/pod-placement/ingress-w-pod-anti-affinity.yaml ``` ```yaml @@ -118,7 +131,7 @@ Using [taints and toleration](https://kubernetes.io/docs/concepts/configuration/ # taint nodes where only HAProxy ingress pods will run kubectl taint nodes minikube IngressOnly=true:NoSchedule -kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/docs/examples/ingress/pod-placement/ingress-w-toleration.yaml +kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/docs/examples/ingress/pod-placement/ingress-w-toleration.yaml ``` ```yaml diff --git a/docs/guides/ingress/replicas-and-autoscaling.md b/docs/guides/ingress/scaling.md similarity index 90% rename from docs/guides/ingress/replicas-and-autoscaling.md rename to docs/guides/ingress/scaling.md index bb96458d8..66a8b0460 100644 --- a/docs/guides/ingress/replicas-and-autoscaling.md +++ b/docs/guides/ingress/scaling.md @@ -1,15 +1,19 @@ --- +title: Scaling Ingress | Voyager menu: - product_voyager_5.0.0-rc.10: - name: Replicas And Autoscaling - parent: ingress - weight: 95 + product_voyager_5.0.0-rc.11: + identifier: scaling-ingress + name: Scaling Ingress + parent: ingress-guides + weight: 45 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- -# Replicas +# Scaling Ingress + +## Replicas For each Ingress resource, Voyager deploys HAProxy in a Deployment prefixed by `voyager-` and the name of the Ingress. diff --git a/docs/guides/ingress/security/_index.md b/docs/guides/ingress/security/_index.md index 5897a1c4a..5bcdcc4f3 100644 --- a/docs/guides/ingress/security/_index.md +++ b/docs/guides/ingress/security/_index.md @@ -1,10 +1,10 @@ --- title: Security menu: - product_voyager_5.0.0-rc.10: - identifier: security + product_voyager_5.0.0-rc.11: + identifier: security-ingress name: Security - parent: ingress - weight: 55 -menu_name: product_voyager_5.0.0-rc.10 + parent: ingress-guides + weight: 35 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/security/basic-auth.md b/docs/guides/ingress/security/basic-auth.md index bcd4480c6..693266e58 100644 --- a/docs/guides/ingress/security/basic-auth.md +++ b/docs/guides/ingress/security/basic-auth.md @@ -1,14 +1,14 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Basic Auth - parent: security + parent: security-ingress weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides aliases: - - /products/voyager/5.0.0-rc.10/guides/ingress/security/ + - /products/voyager/5.0.0-rc.11/guides/ingress/security/ --- # Basic Authentication diff --git a/docs/guides/ingress/security/tls-auth.md b/docs/guides/ingress/security/tls-auth.md index 8f42bb8a0..c45cb07e9 100644 --- a/docs/guides/ingress/security/tls-auth.md +++ b/docs/guides/ingress/security/tls-auth.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: TLS Auth - parent: security + parent: security-ingress weight: 40 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/tcp/_index.md b/docs/guides/ingress/tcp/_index.md index a8db43799..daa7b2913 100644 --- a/docs/guides/ingress/tcp/_index.md +++ b/docs/guides/ingress/tcp/_index.md @@ -1,10 +1,10 @@ --- title: TCP menu: - product_voyager_5.0.0-rc.10: - identifier: tcp + product_voyager_5.0.0-rc.11: + identifier: tcp-ingress name: TCP - parent: ingress - weight: 60 -menu_name: product_voyager_5.0.0-rc.10 + parent: ingress-guides + weight: 20 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/tcp/tcp.md b/docs/guides/ingress/tcp/tcp.md index 5f20cd0f8..30f9f6bfc 100644 --- a/docs/guides/ingress/tcp/tcp.md +++ b/docs/guides/ingress/tcp/tcp.md @@ -1,14 +1,14 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: TCP - parent: tcp + parent: tcp-ingress weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides aliases: - - /products/voyager/5.0.0-rc.10/guides/ingress/tcp/ + - /products/voyager/5.0.0-rc.11/guides/ingress/tcp/ --- diff --git a/docs/guides/ingress/tls/_index.md b/docs/guides/ingress/tls/_index.md index bbeaacb5c..55bad8c45 100644 --- a/docs/guides/ingress/tls/_index.md +++ b/docs/guides/ingress/tls/_index.md @@ -1,10 +1,10 @@ --- title: TLS menu: - product_voyager_5.0.0-rc.10: - identifier: tls + product_voyager_5.0.0-rc.11: + identifier: tls-ingress name: TLS - parent: ingress - weight: 70 -menu_name: product_voyager_5.0.0-rc.10 + parent: ingress-guides + weight: 15 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/guides/ingress/tls/aws-cert-manager.md b/docs/guides/ingress/tls/aws-cert-manager.md index b6426e83b..221f54ef7 100644 --- a/docs/guides/ingress/tls/aws-cert-manager.md +++ b/docs/guides/ingress/tls/aws-cert-manager.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: AWS Cert Manager - parent: tls + parent: tls-ingress weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/tls/backend-tls.md b/docs/guides/ingress/tls/backend-tls.md index 4b38a58ed..a571ba4b1 100644 --- a/docs/guides/ingress/tls/backend-tls.md +++ b/docs/guides/ingress/tls/backend-tls.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: Backend TLS - parent: tls + parent: tls-ingress weight: 30 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- diff --git a/docs/guides/ingress/tls/tls.md b/docs/guides/ingress/tls/tls.md index 577283a8d..c708092ea 100644 --- a/docs/guides/ingress/tls/tls.md +++ b/docs/guides/ingress/tls/tls.md @@ -1,11 +1,11 @@ --- menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: name: TLS - parent: ingress + parent: tls-ingress weight: 135 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: guides --- > New to Voyager? Please start [here](/docs). diff --git a/docs/reference/_index.md b/docs/reference/_index.md index d170a7b6a..a8e28094e 100644 --- a/docs/reference/_index.md +++ b/docs/reference/_index.md @@ -2,9 +2,9 @@ title: Reference description: Voyager CLI Reference menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: reference name: Reference weight: 1000 -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/reference/voyager.md b/docs/reference/voyager.md index ace6ec64a..a1f50e3f0 100644 --- a/docs/reference/voyager.md +++ b/docs/reference/voyager.md @@ -1,17 +1,17 @@ --- title: Voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager name: Voyager parent: reference weight: 0 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference aliases: - - products/voyager/5.0.0-rc.10/reference/ + - products/voyager/5.0.0-rc.11/reference/ --- ## voyager diff --git a/docs/reference/voyager_check.md b/docs/reference/voyager_check.md index 559f4f25e..ea586ddb6 100644 --- a/docs/reference/voyager_check.md +++ b/docs/reference/voyager_check.md @@ -1,12 +1,12 @@ --- title: Voyager Check menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-check name: Voyager Check parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager check diff --git a/docs/reference/voyager_export.md b/docs/reference/voyager_export.md index 62c5da6ce..0d537c5e6 100644 --- a/docs/reference/voyager_export.md +++ b/docs/reference/voyager_export.md @@ -1,12 +1,12 @@ --- title: Voyager Export menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-export name: Voyager Export parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager export diff --git a/docs/reference/voyager_kloader.md b/docs/reference/voyager_kloader.md index 1599ac4a9..1abf80394 100644 --- a/docs/reference/voyager_kloader.md +++ b/docs/reference/voyager_kloader.md @@ -1,12 +1,12 @@ --- title: Voyager Kloader menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-kloader name: Voyager Kloader parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager kloader diff --git a/docs/reference/voyager_kloader_check.md b/docs/reference/voyager_kloader_check.md index b59f6b8b4..e8434988c 100644 --- a/docs/reference/voyager_kloader_check.md +++ b/docs/reference/voyager_kloader_check.md @@ -1,12 +1,12 @@ --- title: Voyager Kloader Check menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-kloader-check name: Voyager Kloader Check parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager kloader check diff --git a/docs/reference/voyager_kloader_run.md b/docs/reference/voyager_kloader_run.md index be5fd2c6c..bba7f3715 100644 --- a/docs/reference/voyager_kloader_run.md +++ b/docs/reference/voyager_kloader_run.md @@ -1,12 +1,12 @@ --- title: Voyager Kloader Run menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-kloader-run name: Voyager Kloader Run parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager kloader run diff --git a/docs/reference/voyager_run.md b/docs/reference/voyager_run.md index 4f6396178..681a1a164 100644 --- a/docs/reference/voyager_run.md +++ b/docs/reference/voyager_run.md @@ -1,12 +1,12 @@ --- title: Voyager Run menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-run name: Voyager Run parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager run @@ -29,8 +29,8 @@ voyager run [flags] --cloud-config string The path to the cloud provider configuration file. Empty string for no configuration file. -c, --cloud-provider string Name of cloud provider --custom-templates string Glob pattern of custom HAProxy template files used to override built-in templates - --exporter-sidecar-image string Docker image containing Prometheus exporter (default "appscode/voyager:5.0.0-rc.10") - --haproxy-image string Docker image containing HAProxy binary (default "appscode/haproxy:1.7.9-5.0.0-rc.10") + --exporter-sidecar-image string Docker image containing Prometheus exporter (default "appscode/voyager:5.0.0-rc.11") + --haproxy-image string Docker image containing HAProxy binary (default "appscode/haproxy:1.7.9-5.0.0-rc.11") --haproxy.server-metric-fields string Comma-separated list of exported server metrics. See http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#9.1 (default "2,3,4,5,6,7,8,9,13,14,15,16,17,18,21,24,33,35,38,39,40,41,42,43,44") --haproxy.timeout duration Timeout for trying to get stats from HAProxy. (default 5s) -h, --help help for run diff --git a/docs/reference/voyager_tls-mounter.md b/docs/reference/voyager_tls-mounter.md index c50a82f34..85901849a 100644 --- a/docs/reference/voyager_tls-mounter.md +++ b/docs/reference/voyager_tls-mounter.md @@ -1,12 +1,12 @@ --- title: Voyager Tls-Mounter menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-tls-mounter name: Voyager Tls-Mounter parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager tls-mounter diff --git a/docs/reference/voyager_version.md b/docs/reference/voyager_version.md index a44a276a3..c448e3c55 100644 --- a/docs/reference/voyager_version.md +++ b/docs/reference/voyager_version.md @@ -1,12 +1,12 @@ --- title: Voyager Version menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: voyager-version name: Voyager Version parent: reference product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 section_menu_id: reference --- ## voyager version diff --git a/docs/roadmap.md b/docs/roadmap.md index 336759025..8383b8eea 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,25 +1,28 @@ --- title: Roadmap | Voyager -description: Roadmap of Voyager +description: Roadmap of voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: roadmap-voyager name: Roadmap - parent: getting-started - weight: 30 + parent: welcome + weight: 15 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/roadmap/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: welcome +url: /products/voyager/5.0.0-rc.11/welcome/roadmap/ +aliases: + - /products/voyager/5.0.0-rc.11/roadmap/ --- # Versioning Policy There are 2 parts to versioning policy: + - Operator version: Voyager __does not follow semver__, rather the _major_ version of operator points to the Kubernetes [client-go](https://github.com/kubernetes/client-go#branches-and-tags) version. You can verify this from the `glide.yaml` file. This means there might be breaking changes between point releases of the operator. This generally manifests as changed annotation keys or their meaning. Please always check the release notes for upgrade instructions. - - TPR version: appscode.com/v1beta1 is considered in beta. This means any changes to the YAML format will be backward + - CRD version: appscode.com/v1beta1 is considered in beta. This means any changes to the YAML format will be backward compatible among different versions of the operator. diff --git a/docs/setup/README.md b/docs/setup/README.md new file mode 100644 index 000000000..b9f549b86 --- /dev/null +++ b/docs/setup/README.md @@ -0,0 +1,25 @@ +--- +title: Table of Contents | Setup +description: Table of Contents | Setup +menu: + product_voyager_5.0.0-rc.11: + identifier: setup-readme + name: Readme + parent: setup + weight: -1 +product_name: voyager +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: setup +url: /products/voyager/5.0.0-rc.11/setup/ +aliases: + - /products/voyager/5.0.0-rc.11/setup/README/ +--- +# Setup + +Setup contains instructions for installing the Voyager and its various components in Kubernetes. + +- [Install Voyager](/docs/setup/install.md). Installation instructions for Voyager. +- [Uninstall Voyager](/docs/setup/uninstall.md). Instructions for uninstallating Voyager. +- Developer Guide + - [Overview](/docs/setup/developer-guide/overview.md). Outlines everything you need to know from setting up your dev environment to how to build and test Voyager. + - [Release process](/docs/setup/developer-guide/release.md). Steps for releasing a new version of Voyager. diff --git a/docs/setup/_index.md b/docs/setup/_index.md index 011aa40e2..3af87c8f2 100644 --- a/docs/setup/_index.md +++ b/docs/setup/_index.md @@ -1,10 +1,9 @@ --- -title: Setup -description: Voyager Setup +title: Setup | Voyager menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: setup name: Setup weight: 30 -menu_name: product_voyager_5.0.0-rc.10 +menu_name: product_voyager_5.0.0-rc.11 --- diff --git a/docs/setup/developer-guide/_index.md b/docs/setup/developer-guide/_index.md index 568a91d94..5069685e3 100644 --- a/docs/setup/developer-guide/_index.md +++ b/docs/setup/developer-guide/_index.md @@ -2,10 +2,10 @@ title: Developer Guide | Voyager description: Voyager Developer Guide menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: developer-guide name: Developer Guide parent: setup weight: 40 -menu_name: product_voyager_5.0.0-rc.10 ---- \ No newline at end of file +menu_name: product_voyager_5.0.0-rc.11 +--- diff --git a/docs/setup/developer-guide/README.md b/docs/setup/developer-guide/overview.md similarity index 95% rename from docs/setup/developer-guide/README.md rename to docs/setup/developer-guide/overview.md index 9e9941222..7b3b9df56 100644 --- a/docs/setup/developer-guide/README.md +++ b/docs/setup/developer-guide/overview.md @@ -2,17 +2,14 @@ title: Overview | Developer Guide description: Developer Guide Overview menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: developer-guide-readme name: Overview parent: developer-guide weight: 15 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: developer-guide -url: /products/voyager/5.0.0-rc.10/developer-guide/ -aliases: - - /products/voyager/5.0.0-rc.10/developer-guide/README/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: setup --- ## Development Guide @@ -170,5 +167,5 @@ Following configurations can be enabled for test via flags in `./hack/make.py te ```console # Create Third Party Resources -$ kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/apis/voyager/v1beta1/crds.yaml +$ kubectl apply -f https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/apis/voyager/v1beta1/crds.yaml ``` diff --git a/docs/setup/developer-guide/release.md b/docs/setup/developer-guide/release.md index 3f521d384..f63cea56a 100644 --- a/docs/setup/developer-guide/release.md +++ b/docs/setup/developer-guide/release.md @@ -2,16 +2,15 @@ title: Release | Voyager description: Voyager Release menu: - product_voyager_5.0.0-rc.10: - identifier: release + product_voyager_5.0.0-rc.11: + identifier: release name: Release parent: developer-guide weight: 15 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: developer-guide +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: setup --- - # Release Process The following steps must be done from a Linux x64 bit machine. diff --git a/docs/setup/install.md b/docs/setup/install.md index eb83faaf1..53ca640a7 100644 --- a/docs/setup/install.md +++ b/docs/setup/install.md @@ -1,24 +1,21 @@ --- -title: Install | Voyager +title: Install Voyager description: Voyager Install menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: install-voyager name: Install - parent: getting-started - weight: 35 + parent: setup + weight: 10 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/install/ -aliases: - - /products/voyager/5.0.0-rc.10/install/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: setup --- # Installation Guide ## Using YAML -Voyager can be installed via installer script included in the [/hack/deploy](https://github.com/appscode/voyager/tree/5.0.0-rc.10/hack) folder. +Voyager can be installed via installer script included in the [/hack/deploy](https://github.com/appscode/voyager/tree/5.0.0-rc.11/hack/deploy) folder. ```console # provider=acs @@ -30,7 +27,7 @@ Voyager can be installed via installer script included in the [/hack/deploy](htt # provider=minikube # provider=openstack -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh | bash -s -- -h +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh | bash -s -- -h voyager.sh - install voyager operator voyager.sh [options] @@ -45,18 +42,18 @@ options: --template-cfgmap=CONFIGMAP name of configmap with custom templates # install without RBAC roles -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=$provider # Install with RBAC roles -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=$provider --rbac ``` If you would like to run Voyager operator pod in `master` instances, pass the `--run-on-master` flag: ```console -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=$provider --run-on-master [--rbac] ``` @@ -64,7 +61,7 @@ Voyager operator will be installed in a `kube-system` namespace by default. If y ```console $ kubectl create namespace voyager -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=$provider --namespace=voyager [--run-on-master] [--rbac] ``` @@ -72,18 +69,18 @@ By default, Voyager operator will watch Ingress objects in any namespace. If you ```console $ kubectl create namespace voyager -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/voyager.sh \ +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/voyager.sh \ | bash -s -- --provider=$provider --restrict-to-namespace [--namespace=voyager] [--run-on-master] [--rbac] ``` ## Using Helm -Voyager can be installed via [Helm](https://helm.sh/) using the [chart](/chart/stable/voyager) included in this repository or from official charts repository. To install the chart with the release name `my-release`: +Voyager can be installed via [Helm](https://helm.sh/) using the [chart](https://github.com/appscode/voyager/tree/5.0.0-rc.11/chart/stable/voyager) included in this repository or from official charts repository. To install the chart with the release name `my-release`: ```console $ helm repo update $ helm install stable/voyager --name my-release ``` -To see the detailed configuration options, visit [here](/chart/stable/voyager/README.md). +To see the detailed configuration options, visit [here](https://github.com/appscode/voyager/tree/5.0.0-rc.11/chart/stable/voyager). ## Verify installation @@ -124,12 +121,12 @@ $ POD_NAMESPACE=kube-system $ POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app=voyager -o jsonpath={.items[0].metadata.name}) $ kubectl exec -it $POD_NAME -n $POD_NAMESPACE voyager version -Version = 5.0.0-rc.10 +Version = 5.0.0-rc.11 VersionStrategy = tag Os = alpine Arch = amd64 CommitHash = ab0b38d8f5d5b4b4508768a594a9d98f2c76abd8 GitBranch = release-4.0 -GitTag = 5.0.0-rc.10 +GitTag = 5.0.0-rc.11 CommitTimestamp = 2017-10-08T12:45:26 ``` diff --git a/docs/setup/uninstall.md b/docs/setup/uninstall.md index 814c53d20..7221bd5d2 100644 --- a/docs/setup/uninstall.md +++ b/docs/setup/uninstall.md @@ -1,26 +1,25 @@ --- -title: Uninstall | Voyager +title: Uninstall Voyager description: Voyager Uninstall menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: uninstall-voyager name: Uninstall - parent: getting-started - weight: 50 + parent: setup + weight: 20 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/uninstall/ -aliases: - - /products/voyager/5.0.0-rc.10/uninstall/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: setup --- # Uninstall Voyager + Please follow the steps below to uninstall Voyager: -1. Delete the deployment and service used for Voyager operator. +- Delete the deployment and service used for Voyager operator. + ```console -$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/uninstall.sh | bash +$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/uninstall.sh | bash + kubectl delete deployment -l app=voyager -n kube-system deployment "voyager-operator" deleted @@ -34,24 +33,28 @@ No resources found No resources found ``` -2. Now, wait several seconds for Voyager to stop running. To confirm that Voyager operator pod(s) have stopped running, run: +- Now, wait several seconds for Voyager to stop running. To confirm that Voyager operator pod(s) have stopped running, run: + ```console $ kubectl get pods --all-namespaces -l app=voyager ``` -3. To keep a copy of your existing Voyager objects, run: +- To keep a copy of your existing Voyager objects, run: + ```console $ kubectl get ingress.voyager.appscode.com --all-namespaces -o yaml > ingress.yaml $ kubectl get certificate.voyager.appscode.com --all-namespaces -o yaml > certificate.yaml ``` -4. To delete existing Voyager objects from all namespaces, run the following command in each namespace one by one. +- To delete existing Voyager objects from all namespaces, run the following command in each namespace one by one. + ```console $ kubectl delete ingress.voyager.appscode.com --all --cascade=false $ kubectl delete certificate.voyager.appscode.com --all --cascade=false ``` -5. Delete the old CRD-registration. +- Delete the old CRD-registration. + ```console kubectl delete crd -l app=voyager ``` diff --git a/docs/support.md b/docs/support.md index 4f07a8601..6c56bc8b1 100644 --- a/docs/support.md +++ b/docs/support.md @@ -2,19 +2,21 @@ title: Support | Voyager description: Support menu: - product_voyager_5.0.0-rc.10: + product_voyager_5.0.0-rc.11: identifier: support-voyager name: Support - parent: getting-started - weight: 45 + parent: welcome + weight: 25 product_name: voyager -menu_name: product_voyager_5.0.0-rc.10 -section_menu_id: getting-started -url: /products/voyager/5.0.0-rc.10/getting-started/support/ +menu_name: product_voyager_5.0.0-rc.11 +section_menu_id: welcome +url: /products/voyager/5.0.0-rc.11/welcome/support/ +aliases: + - /products/voyager/5.0.0-rc.11/support/ --- # Support -If you have any questions, you can reach out to us. -* [Slack](https://slack.appscode.com) -* [Twitter](https://twitter.com/AppsCodeHQ) +We use Slack for public discussions. To chit chat with us or the rest of the community, join us in the [AppsCode Slack team](https://appscode.slack.com/messages/C0XQFLGRM/details/) channel `#general`. To sign up, use our [Slack inviter](https://slack.appscode.com/). + +If you have found a bug with Voyager or want to request for new features, please [file an issue](https://github.com/appscode/voyager/issues/new). diff --git a/hack/deploy/operator-with-custom-tpl.yaml b/hack/deploy/operator-with-custom-tpl.yaml index 0218bb63c..dc6cc35dc 100644 --- a/hack/deploy/operator-with-custom-tpl.yaml +++ b/hack/deploy/operator-with-custom-tpl.yaml @@ -26,7 +26,7 @@ spec: - --ingress-class=$VOYAGER_INGRESS_CLASS - --restrict-to-operator-namespace=$VOYAGER_RESTRICT_TO_NAMESPACE - --custom-templates=/srv/voyager/custom/*.cfg - image: appscode/voyager:5.0.0-rc.10 + image: appscode/voyager:5.0.0-rc.11 ports: - containerPort: 56790 name: ops diff --git a/hack/deploy/operator.yaml b/hack/deploy/operator.yaml index e38cb0c8a..85fc049cd 100644 --- a/hack/deploy/operator.yaml +++ b/hack/deploy/operator.yaml @@ -25,7 +25,7 @@ spec: - --cloud-config=$VOYAGER_CLOUD_CONFIG # ie. /etc/kubernetes/azure.json for azure - --ingress-class=$VOYAGER_INGRESS_CLASS - --restrict-to-operator-namespace=$VOYAGER_RESTRICT_TO_NAMESPACE - image: appscode/voyager:5.0.0-rc.10 + image: appscode/voyager:5.0.0-rc.11 ports: - containerPort: 56790 name: ops diff --git a/hack/deploy/voyager.sh b/hack/deploy/voyager.sh index aaaa23369..fa853ddd3 100755 --- a/hack/deploy/voyager.sh +++ b/hack/deploy/voyager.sh @@ -130,21 +130,21 @@ env | sort | grep VOYAGER* echo "" if [ -z "$VOYAGER_TEMPLATE_CONFIGMAP" ]; then - curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/operator.yaml | envsubst | kubectl apply -f - + curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/operator.yaml | envsubst | kubectl apply -f - else kubectl get configmap -n $VOYAGER_NAMESPACE $VOYAGER_TEMPLATE_CONFIGMAP >/dev/null 2>&1 if [ "$?" -ne 0 ]; then echo "Missing configmap $VOYAGER_NAMESPACE/$VOYAGER_TEMPLATE_CONFIGMAP" exit 1 fi - curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/operator-with-custom-tpl.yaml | envsubst | kubectl apply -f - + curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/operator-with-custom-tpl.yaml | envsubst | kubectl apply -f - fi if [ "$VOYAGER_ENABLE_RBAC" = true ]; then - curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/rbac.yaml | envsubst | kubectl apply -f - + curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/rbac.yaml | envsubst | kubectl apply -f - fi if [ "$VOYAGER_RUN_ON_MASTER" -eq 1 ]; then kubectl patch deploy voyager-operator -n $VOYAGER_NAMESPACE \ - --patch="$(curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.10/hack/deploy/run-on-master.yaml)" + --patch="$(curl -fsSL https://raw.githubusercontent.com/appscode/voyager/5.0.0-rc.11/hack/deploy/run-on-master.yaml)" fi diff --git a/hack/gendocs/main.go b/hack/gendocs/main.go index df6414b6b..dcda6e3c4 100644 --- a/hack/gendocs/main.go +++ b/hack/gendocs/main.go @@ -16,7 +16,7 @@ import ( ) const ( - version = "5.0.0-rc.10" + version = "5.0.0-rc.11" ) var ( diff --git a/pkg/cmds/run.go b/pkg/cmds/run.go index c8ade92ca..ae6a7c8a7 100644 --- a/pkg/cmds/run.go +++ b/pkg/cmds/run.go @@ -36,8 +36,8 @@ var ( haProxyServerMetricFields = hpe.ServerMetrics.String() haProxyTimeout = 5 * time.Second opt = config.Options{ - HAProxyImage: "appscode/haproxy:1.7.9-5.0.0-rc.10", - ExporterSidecarImage: "appscode/voyager:5.0.0-rc.10", + HAProxyImage: "appscode/haproxy:1.7.9-5.0.0-rc.11", + ExporterSidecarImage: "appscode/voyager:5.0.0-rc.11", OperatorNamespace: meta.Namespace(), OperatorService: "voyager-operator", EnableRBAC: false, diff --git a/test/framework/configs.go b/test/framework/configs.go index f0c03ebdd..69f797725 100644 --- a/test/framework/configs.go +++ b/test/framework/configs.go @@ -17,7 +17,7 @@ func init() { flag.StringVar(&testConfigs.Master, "master", "", "The address of the Kubernetes API server (overrides any value in kubeconfig)") flag.StringVar(&testConfigs.KubeConfig, "kubeconfig", "", "Path to kubeconfig file with authorization information (the master location is set by the master flag).") flag.StringVar(&testConfigs.CloudProviderName, "cloud-provider", "", "Name of cloud provider") - flag.StringVar(&testConfigs.HAProxyImageName, "haproxy-image", "appscode/haproxy:1.7.9-5.0.0-rc.10", "haproxy image name to be run") + flag.StringVar(&testConfigs.HAProxyImageName, "haproxy-image", "appscode/haproxy:1.7.9-5.0.0-rc.11", "haproxy image name to be run") flag.StringVar(&testConfigs.IngressClass, "ingress-class", "", "Ingress class handled by voyager. Unset by default. Set to voyager to only handle ingress with annotation kubernetes.io/ingress.class=voyager.") flag.BoolVar(&testConfigs.Cleanup, "cleanup", true, "") flag.BoolVar(&testConfigs.InCluster, "in-cluster", false, "")