From 430b391a58e96b30450318088acb9e43af09dcb7 Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Thu, 2 Mar 2017 14:19:10 -0700 Subject: [PATCH 1/9] feat(ingress): Experimental Native Ingress Adding documentation changes for Kubernetes ingress support. Non breaking change, as users must opt-in to the feature. --- charts/workflow/values.yaml | 10 +++ mkdocs.yml | 1 + .../experimental-native-ingress.md | 80 +++++++++++++++++++ src/installing-workflow/index.md | 4 + src/quickstart/deploy-an-app.md | 38 +++++++-- 5 files changed, 125 insertions(+), 8 deletions(-) create mode 100644 src/installing-workflow/experimental-native-ingress.md diff --git a/charts/workflow/values.yaml b/charts/workflow/values.yaml index 127b9689..0fa79a7b 100644 --- a/charts/workflow/values.yaml +++ b/charts/workflow/values.yaml @@ -51,6 +51,16 @@ global: host_port: 5555 # Prefix for the imagepull secret created when using private registry secret_prefix: "private-registry" + # The public resolvable hostname to build your cluster with. + # + # This will be the hostname that is used to build endpoints such as "deis.$HOSTNAME" + hostname: "" + # Experimental feature to toggle using kubernetes ingress instead of the Deis router. + # + # Valid values are: + # - true: The Deis router will NOT be deployed. Inherently workflow will not be usable until a Kubernetes ingress controller is installed. + # - false: The default mode, and the default behavior of Deis workflow. + experimental_native_ingress: false s3: diff --git a/mkdocs.yml b/mkdocs.yml index e9870e9a..c73fe8fa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -37,6 +37,7 @@ pages: - Configuring Postgres: installing-workflow/configuring-postgres.md - Configuring the Registry: installing-workflow/configuring-registry.md - Chart Provenance: installing-workflow/chart-provenance.md + - Experimental Native Ingress: installing-workflow/experimental-native-ingress.md - Users: - Command Line Interface: users/cli.md - Users and Registration: users/registration.md diff --git a/src/installing-workflow/experimental-native-ingress.md b/src/installing-workflow/experimental-native-ingress.md new file mode 100644 index 00000000..f7b34051 --- /dev/null +++ b/src/installing-workflow/experimental-native-ingress.md @@ -0,0 +1,80 @@ +# Experimental Native Ingress + +## Install Deis Workflow (With experimental native ingress support) + +Now that Helm is installed and the repository has been added, install Workflow with a native ingress by running: + +``` +$ helm install deis/workflow --namespace deis --set experimental_native_ingress=true,global.hostname="deis.com" +``` + +Where `global.hostname` is a **required** parameter that is traditionally not required for Workflow. In this example we are using `deis.com` for `$hostname`. + + + +Helm will install a variety of Kubernetes resources in the `deis` namespace. +Wait for the pods that Helm launched to be ready. Monitor their status by running: + +``` +$ kubectl --namespace=deis get pods +``` + +You should also notice that a Kubernetes ingress has been installed on your cluster. You can view it by running: + +``` +$ kubectl get ingress --namespace deis +``` + + +Depending on the order in which the Workflow components initialize, some pods may restart. This is common during the +installation: if a component's dependencies are not yet available, that component will exit and Kubernetes will +automatically restart it. + +Here, it can be seen that the controller, builder and registry all took a few loops before they were able to start: + +``` +$ kubectl --namespace=deis get pods +NAME READY STATUS RESTARTS AGE +deis-builder-hy3xv 1/1 Running 5 5m +deis-controller-g3cu8 1/1 Running 5 5m +deis-database-rad1o 1/1 Running 0 5m +deis-logger-fluentd-1v8uk 1/1 Running 0 5m +deis-logger-fluentd-esm60 1/1 Running 0 5m +deis-logger-sm8b3 1/1 Running 0 5m +deis-minio-4ww3t 1/1 Running 0 5m +deis-registry-asozo 1/1 Running 1 5m +deis-workflow-manager-68nu6 1/1 Running 0 5m +``` + +## Install a Kubernetes Ingress Controller + +Now that Workflow has been deployed with the `global.exerpimental_native_ingress` flag set to `true`, we will need a Kubernetes ingress controller in place to begin routing traffic. + +Here is an example of how to use [traefik](https://traefik.io/) as an ingress controller for Workflow. Of course, you are welcome to use any controller you wish. + +``` +$ helm install stable/traefik --name deis-ingress-001 --namespace kube-system +``` + +## Configure DNS + +The experimental ingress feature requires a user to set up a hostname, and assumes the `deis.$host` convention. + +We need to point the `deis.$host` record to the public IP address of your ingress controller. You can get the public IP using the following command. + +``` +$ kubectl get svc deis-ingress-001 --namespace kube-system +NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE +deis-ingress-001 10.23.253.220 104.154.159.184 80:30231/TCP,443:32264/TCP 19m +``` + +If we were using `deis.com` as a hostname we would need to create the following A DNS record. + +| Name | Type | Value | +| ----------------- |:-------------:| ---------------:| +| deis.deis.com | A | 104.154.159.184 | + + +Once all of the pods are in the `READY` state, and `deis.$host` resolves to the external IP found above Workflow is up an running! + +After installing Workflow, [register a user and deploy an application](../quickstart/deploy-an-app.md). diff --git a/src/installing-workflow/index.md b/src/installing-workflow/index.md index 3a0a00a2..37690bf1 100644 --- a/src/installing-workflow/index.md +++ b/src/installing-workflow/index.md @@ -33,6 +33,10 @@ More rigorous installations would benefit from using outside sources for the fol * [Redis](../managing-workflow/platform-logging.md#configuring-off-cluster-redis) - Such as AWS Elasticache * [InfluxDB](../managing-workflow/platform-monitoring.md#configuring-off-cluster-influxdb) and [Grafana](../managing-workflow/platform-monitoring.md#off-cluster-grafana) +#### (Experimental) Kubernetes Native Ingress + +Workflow now offers [experimental native ingress](experimental-native-ingress.md) that will allow users to take advantage of native Kubernetes ingress with their cluster. Users will be able to use and define any compatible Kubernetes ingress controller. Feel free to start following along with the [experimental native ingress](experimental-native-ingress.md) guide now. + ## Add the Deis Chart Repository The Deis Chart Repository contains everything needed to install Deis Workflow onto a Kubernetes cluster, with a single `helm install deis/workflow --namespace deis` command. diff --git a/src/quickstart/deploy-an-app.md b/src/quickstart/deploy-an-app.md index 9a94fdbf..24e8d1f5 100644 --- a/src/quickstart/deploy-an-app.md +++ b/src/quickstart/deploy-an-app.md @@ -1,18 +1,38 @@ -## Register an Admin User +## Determine your host and hostname values -The first user to register against Deis Workflow will automatically be given administrative privileges. +For the rest of this example we will refer to a special variables called `$hostname`. Please choose one of the two methods for building your `$hostname`. + +#### Option 1: Standard Installation -If you installed Deis on GKE or AWS, Deis automatically creates a load balancer for the cluster. To get the IP of this load balancer, run `kubectl --namespace=deis describe svc deis-router`. +For a standard installation you can build the hostname using public IP address and a wildcard DNS solution. Instead of setting up DNS records, this example will use `nip.io`. + +If your router IP is `1.1.1.1`, its `$hostname` will be `1.1.1.1.nip.io`. You can find your IP address by running: + +``` +kubectl --namespace=deis describe svc deis-router +``` If you do not have an load balancer IP, the router automatically forwards traffic from a kubernetes node to the router. In this case, use the IP of a kubernetes node and the node port that routes to port 80 on the controller. -Deis requires a wildcard DNS record to dynamically map app names to the router. Instead of setting up DNS records, this example will use `nip.io`. If your router IP is `1.1.1.1`, its url will be `1.1.1.1.nip.io`. The URL of the controller component will be `deis.1.1.1.1.nip.io`. +Deis requires a wildcard DNS record to dynamically map app names to the router. + +**$hostname**: 1.1.1.1.nip.io + +#### Option 2: Experimental Native Ingress Installation + +In this example, the user should already have DNS set up pointing to their known host. The `$hostname` value can be build by appending `deis.` to the value set in `global.exerpimental_native_ingress`. -Use the controller url to register a user in the cluster. +**$hostname**: deis.com + +## Register an Admin User + +The first user to register against Deis Workflow will automatically be given administrative privileges. + +Use the controller `$hostname` to register a user in the cluster. ``` -$ deis register http://deis.104.197.125.75.nip.io +$ deis register http://$hostname username: admin password: password (confirm): @@ -20,7 +40,7 @@ email: jhansen@deis.com Registered admin Logged in as admin $ deis whoami -You are admin at http://deis.104.197.125.75.nip.io +You are admin at http://$hostname ``` You have now registered your first user and you are ready to deploy an application. @@ -50,10 +70,12 @@ Let's use the CLI to tell the platform to deploy an application and then use cur ``` $ deis pull deis/example-go -a proper-barbecue Creating build... done -$ curl http://proper-barbecue.104.197.125.75.nip.io +$ curl http://proper-barbecue.$hostname Powered by Deis ``` + + !!! note If you see a 404 error, make sure you specified your application name with `-a `! From 81c9f2c3eb9aa65349d0b5fecb3e2ed023e4d564 Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Thu, 2 Mar 2017 14:21:30 -0700 Subject: [PATCH 2/9] chore(ingress): Remove extra spaces Remove extra spaces to clean up deploy-an-app.md Non breaking change. --- src/quickstart/deploy-an-app.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/quickstart/deploy-an-app.md b/src/quickstart/deploy-an-app.md index 24e8d1f5..07e5579f 100644 --- a/src/quickstart/deploy-an-app.md +++ b/src/quickstart/deploy-an-app.md @@ -74,8 +74,6 @@ $ curl http://proper-barbecue.$hostname Powered by Deis ``` - - !!! note If you see a 404 error, make sure you specified your application name with `-a `! From 9ed34ea774ffb28861148137e3d5173f62617c4c Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Wed, 8 Mar 2017 07:53:25 -0700 Subject: [PATCH 3/9] feat(ingress): Support enable/disable conditions in Workflow chart A few semantic changes, and supporting enabled/disable in requirements.yaml Non breaking change. --- charts/workflow/requirements.yaml | 1 + charts/workflow/values.yaml | 10 +++++----- src/quickstart/deploy-an-app.md | 2 -- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/charts/workflow/requirements.yaml b/charts/workflow/requirements.yaml index f811c5a5..ae12371b 100644 --- a/charts/workflow/requirements.yaml +++ b/charts/workflow/requirements.yaml @@ -45,6 +45,7 @@ dependencies: version: repository: https://charts.deis.com/registry-token-refresher - name: router + condition: !global.experimental_native_engress version: repository: https://charts.deis.com/router - name: workflow-manager diff --git a/charts/workflow/values.yaml b/charts/workflow/values.yaml index 0fa79a7b..7e9782ce 100644 --- a/charts/workflow/values.yaml +++ b/charts/workflow/values.yaml @@ -51,10 +51,6 @@ global: host_port: 5555 # Prefix for the imagepull secret created when using private registry secret_prefix: "private-registry" - # The public resolvable hostname to build your cluster with. - # - # This will be the hostname that is used to build endpoints such as "deis.$HOSTNAME" - hostname: "" # Experimental feature to toggle using kubernetes ingress instead of the Deis router. # # Valid values are: @@ -117,7 +113,11 @@ controller: # disabled - turns off open registration # admin_only - allows for registration by an admin only. registration_mode: "admin_only" - + # The public resolvable hostname to build your cluster with. + # + # This will be the hostname that is used to build endpoints such as "deis.$HOSTNAME" + platform_domain: "" + database: # The username and password to be used by the on-cluster database. # If left empty they will be generated using randAlphaNum diff --git a/src/quickstart/deploy-an-app.md b/src/quickstart/deploy-an-app.md index 07e5579f..d61efeb0 100644 --- a/src/quickstart/deploy-an-app.md +++ b/src/quickstart/deploy-an-app.md @@ -17,8 +17,6 @@ port that routes to port 80 on the controller. Deis requires a wildcard DNS record to dynamically map app names to the router. -**$hostname**: 1.1.1.1.nip.io - #### Option 2: Experimental Native Ingress Installation In this example, the user should already have DNS set up pointing to their known host. The `$hostname` value can be build by appending `deis.` to the value set in `global.exerpimental_native_ingress`. From 62d8684ed9605e9bb9e3d854895e5464d309a08d Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Wed, 8 Mar 2017 08:27:16 -0700 Subject: [PATCH 4/9] chore(ingress): Fix example usage in docs to match new YAML We changed the helm charts for this, just updating docs to match Non breaking change. --- charts/workflow/values.yaml | 2 +- src/installing-workflow/experimental-native-ingress.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/workflow/values.yaml b/charts/workflow/values.yaml index 7e9782ce..3e64ccdb 100644 --- a/charts/workflow/values.yaml +++ b/charts/workflow/values.yaml @@ -117,7 +117,7 @@ controller: # # This will be the hostname that is used to build endpoints such as "deis.$HOSTNAME" platform_domain: "" - + database: # The username and password to be used by the on-cluster database. # If left empty they will be generated using randAlphaNum diff --git a/src/installing-workflow/experimental-native-ingress.md b/src/installing-workflow/experimental-native-ingress.md index f7b34051..811602b8 100644 --- a/src/installing-workflow/experimental-native-ingress.md +++ b/src/installing-workflow/experimental-native-ingress.md @@ -5,7 +5,7 @@ Now that Helm is installed and the repository has been added, install Workflow with a native ingress by running: ``` -$ helm install deis/workflow --namespace deis --set experimental_native_ingress=true,global.hostname="deis.com" +$ helm install deis/workflow --namespace deis --set global.experimental_native_ingress=true,controller.platform_domain=deis.com ``` Where `global.hostname` is a **required** parameter that is traditionally not required for Workflow. In this example we are using `deis.com` for `$hostname`. From 2f585c1965cfa693b26db9cfd8ce518af56cd6b7 Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Thu, 9 Mar 2017 10:13:42 -0700 Subject: [PATCH 5/9] chore(ingress): Fix typo s/engress/ingress Breaking change (as the feature wasn't working before the typo fix) --- charts/workflow/requirements.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/workflow/requirements.yaml b/charts/workflow/requirements.yaml index ae12371b..15aa052a 100644 --- a/charts/workflow/requirements.yaml +++ b/charts/workflow/requirements.yaml @@ -45,7 +45,7 @@ dependencies: version: repository: https://charts.deis.com/registry-token-refresher - name: router - condition: !global.experimental_native_engress + condition: !global.experimental_native_ingress version: repository: https://charts.deis.com/router - name: workflow-manager From d8b6f8cf11e00f361a46a4dea43dab033916995e Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Tue, 14 Mar 2017 10:07:31 -0600 Subject: [PATCH 6/9] chore(ingress): Revert to using if statements in router Go back to working if statements, until we can resolve https://github.com/kubernetes/helm/issues/2111 Non breaking change --- charts/workflow/requirements.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/charts/workflow/requirements.yaml b/charts/workflow/requirements.yaml index 15aa052a..f811c5a5 100644 --- a/charts/workflow/requirements.yaml +++ b/charts/workflow/requirements.yaml @@ -45,7 +45,6 @@ dependencies: version: repository: https://charts.deis.com/registry-token-refresher - name: router - condition: !global.experimental_native_ingress version: repository: https://charts.deis.com/router - name: workflow-manager From 8f3b76920ffc95cd7aab7f92e36d2d7a080ca0e9 Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Tue, 14 Mar 2017 10:52:49 -0600 Subject: [PATCH 7/9] chore(ingress): Documentation updates from code review Changing documentation per the code review, mostly typos and wordsmithing. Non breaking change --- charts/workflow/values.yaml | 8 ++++---- src/installing-workflow/experimental-native-ingress.md | 10 +++++++--- src/installing-workflow/index.md | 3 +-- src/quickstart/deploy-an-app.md | 8 ++++---- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/charts/workflow/values.yaml b/charts/workflow/values.yaml index 3e64ccdb..362cf13d 100644 --- a/charts/workflow/values.yaml +++ b/charts/workflow/values.yaml @@ -51,11 +51,11 @@ global: host_port: 5555 # Prefix for the imagepull secret created when using private registry secret_prefix: "private-registry" - # Experimental feature to toggle using kubernetes ingress instead of the Deis router. + # Experimental feature to use Kubernetes ingress instead of Workflow's deis-router. # # Valid values are: - # - true: The Deis router will NOT be deployed. Inherently workflow will not be usable until a Kubernetes ingress controller is installed. - # - false: The default mode, and the default behavior of Deis workflow. + # - true: deis-router will not be deployed. Workflow will not be usable until a Kubernetes ingress controller is installed. + # - false: deis-router will be deployed (default). experimental_native_ingress: false @@ -113,7 +113,7 @@ controller: # disabled - turns off open registration # admin_only - allows for registration by an admin only. registration_mode: "admin_only" - # The public resolvable hostname to build your cluster with. + # The publicly resolvable hostname to build your cluster with. # # This will be the hostname that is used to build endpoints such as "deis.$HOSTNAME" platform_domain: "" diff --git a/src/installing-workflow/experimental-native-ingress.md b/src/installing-workflow/experimental-native-ingress.md index 811602b8..916632cf 100644 --- a/src/installing-workflow/experimental-native-ingress.md +++ b/src/installing-workflow/experimental-native-ingress.md @@ -8,7 +8,7 @@ Now that Helm is installed and the repository has been added, install Workflow w $ helm install deis/workflow --namespace deis --set global.experimental_native_ingress=true,controller.platform_domain=deis.com ``` -Where `global.hostname` is a **required** parameter that is traditionally not required for Workflow. In this example we are using `deis.com` for `$hostname`. +Where `controller.platform_domain` is a **required** parameter that is traditionally not required for Workflow. In this example we are using `deis.com` for `$hostname`. @@ -19,7 +19,7 @@ Wait for the pods that Helm launched to be ready. Monitor their status by runnin $ kubectl --namespace=deis get pods ``` -You should also notice that a Kubernetes ingress has been installed on your cluster. You can view it by running: +You should also notice that several Kubernetes ingresses has been installed on your cluster. You can view it by running: ``` $ kubectl get ingress --namespace deis @@ -60,7 +60,7 @@ $ helm install stable/traefik --name deis-ingress-001 --namespace kube-system The experimental ingress feature requires a user to set up a hostname, and assumes the `deis.$host` convention. -We need to point the `deis.$host` record to the public IP address of your ingress controller. You can get the public IP using the following command. +We need to point the `*.$host` record to the public IP address of your ingress controller. You can get the public IP using the following command. A wildcard entry is necessary here as apps will use the same rule after they are deployed. ``` $ kubectl get svc deis-ingress-001 --namespace kube-system @@ -78,3 +78,7 @@ If we were using `deis.com` as a hostname we would need to create the following Once all of the pods are in the `READY` state, and `deis.$host` resolves to the external IP found above Workflow is up an running! After installing Workflow, [register a user and deploy an application](../quickstart/deploy-an-app.md). + +##### Feedback + +While this feature is experimental we welcome feedback on the issue. We would like to learn more about use cases, and user experience. Please [open a new issue](https://github.com/deis/workflow/issues/new) for feedback. diff --git a/src/installing-workflow/index.md b/src/installing-workflow/index.md index 37690bf1..bb2727a9 100644 --- a/src/installing-workflow/index.md +++ b/src/installing-workflow/index.md @@ -35,8 +35,7 @@ More rigorous installations would benefit from using outside sources for the fol #### (Experimental) Kubernetes Native Ingress -Workflow now offers [experimental native ingress](experimental-native-ingress.md) that will allow users to take advantage of native Kubernetes ingress with their cluster. Users will be able to use and define any compatible Kubernetes ingress controller. Feel free to start following along with the [experimental native ingress](experimental-native-ingress.md) guide now. - +Workflow now offers [experimental native ingress](experimental-native-ingress.md) to take advantage of native Kubernetes routing. Any compatible Kubernetes ingress controller can be used in place of Workflow's nginx-based deis-router. Follow [this guide](experimental-native-ingress.md) to enable experimental native ingress. ## Add the Deis Chart Repository The Deis Chart Repository contains everything needed to install Deis Workflow onto a Kubernetes cluster, with a single `helm install deis/workflow --namespace deis` command. diff --git a/src/quickstart/deploy-an-app.md b/src/quickstart/deploy-an-app.md index d61efeb0..d9dfbe11 100644 --- a/src/quickstart/deploy-an-app.md +++ b/src/quickstart/deploy-an-app.md @@ -1,10 +1,10 @@ -## Determine your host and hostname values +## Determine Your Host and Hostname Values For the rest of this example we will refer to a special variables called `$hostname`. Please choose one of the two methods for building your `$hostname`. #### Option 1: Standard Installation -For a standard installation you can build the hostname using public IP address and a wildcard DNS solution. Instead of setting up DNS records, this example will use `nip.io`. +For a standard installation that includes deis-router, you can calculate the hostname value using its public IP address and a wildcard DNS record. If your router IP is `1.1.1.1`, its `$hostname` will be `1.1.1.1.nip.io`. You can find your IP address by running: @@ -15,11 +15,11 @@ kubectl --namespace=deis describe svc deis-router If you do not have an load balancer IP, the router automatically forwards traffic from a kubernetes node to the router. In this case, use the IP of a kubernetes node and the node port that routes to port 80 on the controller. -Deis requires a wildcard DNS record to dynamically map app names to the router. +Deis workflow requires a wildcard DNS record to dynamically map app names to the router. #### Option 2: Experimental Native Ingress Installation -In this example, the user should already have DNS set up pointing to their known host. The `$hostname` value can be build by appending `deis.` to the value set in `global.exerpimental_native_ingress`. +In this example, the user should already have DNS set up pointing to their known host. The `$hostname` value can be calculated by prepending `deis.` to the value set in `controller.platform_domain`. **$hostname**: deis.com From e8c4692b9b1788c3d2c9431b0f8afb1543f0bbf5 Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Tue, 14 Mar 2017 10:53:53 -0600 Subject: [PATCH 8/9] chore(ingress): Typo in `experimental` Fixing typo in `experimental` Non breaking change --- src/installing-workflow/experimental-native-ingress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installing-workflow/experimental-native-ingress.md b/src/installing-workflow/experimental-native-ingress.md index 916632cf..4ed778b5 100644 --- a/src/installing-workflow/experimental-native-ingress.md +++ b/src/installing-workflow/experimental-native-ingress.md @@ -48,7 +48,7 @@ deis-workflow-manager-68nu6 1/1 Running 0 5m ## Install a Kubernetes Ingress Controller -Now that Workflow has been deployed with the `global.exerpimental_native_ingress` flag set to `true`, we will need a Kubernetes ingress controller in place to begin routing traffic. +Now that Workflow has been deployed with the `global.experimental_native_ingress` flag set to `true`, we will need a Kubernetes ingress controller in place to begin routing traffic. Here is an example of how to use [traefik](https://traefik.io/) as an ingress controller for Workflow. Of course, you are welcome to use any controller you wish. From 69c5dad2d35520f1725a04189806ccf7698ab8eb Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Thu, 16 Mar 2017 13:35:33 -0600 Subject: [PATCH 9/9] fix(ingress): Documentation touch ups Fixing extraneous new lines, and wordsmithing. Non breaking change --- src/installing-workflow/experimental-native-ingress.md | 7 ++----- src/installing-workflow/index.md | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/installing-workflow/experimental-native-ingress.md b/src/installing-workflow/experimental-native-ingress.md index 4ed778b5..6ca5bae7 100644 --- a/src/installing-workflow/experimental-native-ingress.md +++ b/src/installing-workflow/experimental-native-ingress.md @@ -8,9 +8,7 @@ Now that Helm is installed and the repository has been added, install Workflow w $ helm install deis/workflow --namespace deis --set global.experimental_native_ingress=true,controller.platform_domain=deis.com ``` -Where `controller.platform_domain` is a **required** parameter that is traditionally not required for Workflow. In this example we are using `deis.com` for `$hostname`. - - +Where `controller.platform_domain` is a **required** parameter that is traditionally not required for Workflow that is explained in the next section. In this example we are using `deis.com` for `$hostname`. Helm will install a variety of Kubernetes resources in the `deis` namespace. Wait for the pods that Helm launched to be ready. Monitor their status by running: @@ -25,12 +23,11 @@ You should also notice that several Kubernetes ingresses has been installed on y $ kubectl get ingress --namespace deis ``` - Depending on the order in which the Workflow components initialize, some pods may restart. This is common during the installation: if a component's dependencies are not yet available, that component will exit and Kubernetes will automatically restart it. -Here, it can be seen that the controller, builder and registry all took a few loops before they were able to start: +Here, it can be seen that the controller, builder and registry all took a few loops waiting for minio before they were able to start: ``` $ kubectl --namespace=deis get pods diff --git a/src/installing-workflow/index.md b/src/installing-workflow/index.md index bb2727a9..b614dcef 100644 --- a/src/installing-workflow/index.md +++ b/src/installing-workflow/index.md @@ -36,6 +36,7 @@ More rigorous installations would benefit from using outside sources for the fol #### (Experimental) Kubernetes Native Ingress Workflow now offers [experimental native ingress](experimental-native-ingress.md) to take advantage of native Kubernetes routing. Any compatible Kubernetes ingress controller can be used in place of Workflow's nginx-based deis-router. Follow [this guide](experimental-native-ingress.md) to enable experimental native ingress. + ## Add the Deis Chart Repository The Deis Chart Repository contains everything needed to install Deis Workflow onto a Kubernetes cluster, with a single `helm install deis/workflow --namespace deis` command.