Skip to content

Commit

Permalink
Updates to deployment guides (#3994)
Browse files Browse the repository at this point in the history
* Updates to deployment guides

Signed-off-by: davidmirror-ops <[email protected]>

* Update multicluster docs round 2

Signed-off-by: davidmirror-ops <[email protected]>

* Updates instructions from last run

Signed-off-by: davidmirror-ops <[email protected]>

* Add instructions to add clusters

Signed-off-by: davidmirror-ops <[email protected]>

* Fix typos

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON indentation in example

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON indentation in example 2nd try

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON missing blank line

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON missing blank line 3rd try

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON missing blank line 4th try

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON syntax

Signed-off-by: davidmirror-ops <[email protected]>

* Fix JSON syntax 6th try

Signed-off-by: davidmirror-ops <[email protected]>

* Remove JSON block

Signed-off-by: davidmirror-ops <[email protected]>

* Fix error in line 57

Signed-off-by: davidmirror-ops <[email protected]>

* Fix spelling

Signed-off-by: davidmirror-ops <[email protected]>

* Apply feedback from review

Signed-off-by: davidmirror-ops <[email protected]>

* Fix hyperlink

Signed-off-by: davidmirror-ops <[email protected]>

* Fix blank space

Signed-off-by: davidmirror-ops <[email protected]>

* Incorporate review

Signed-off-by: davidmirror-ops <[email protected]>

* Incorporate 2nd round of review

Signed-off-by: davidmirror-ops <[email protected]>

* Instructions using 2 IAM Roles

Signed-off-by: davidmirror-ops <[email protected]>

* Incorporate 3rd round of feedback

Signed-off-by: davidmirror-ops <[email protected]>

* Add instructions to enable controlplane wf execution

Signed-off-by: davidmirror-ops <[email protected]>

* Incorporate 4th round of reviews

Signed-off-by: davidmirror-ops <[email protected]>

---------

Signed-off-by: davidmirror-ops <[email protected]>
  • Loading branch information
davidmirror-ops authored Oct 7, 2023
1 parent a18da03 commit 8d66d05
Show file tree
Hide file tree
Showing 6 changed files with 574 additions and 199 deletions.
2 changes: 1 addition & 1 deletion charts/flyte-binary/eks-production.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ ingress:
nginx.ingress.kubernetes.io/app-root: /console
grpcAnnotations:
nginx.ingress.kubernetes.io/backend-protocol: GRPC
host: development.uniondemo.run
host: <your-Flyte-URL> # change for the URL you'll use to connect to Flyte
rbac:
extraRules:
- apiGroups:
Expand Down
52 changes: 35 additions & 17 deletions rsts/deployment/deployment/cloud_production.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,48 @@ guide already contains the ingress rules, but they are not enabled by default.

To turn on ingress, update your ``values.yaml`` file to include the following block.

.. tabbed:: AWS - ``flyte-binary``
.. tabs::

.. group-tab:: ``flyte-binary`` on EKS using NGINX

.. literalinclude:: ../../../charts/flyte-binary/eks-production.yaml
:caption: charts/flyte-binary/eks-production.yaml
:language: yaml
:lines: 123-131
.. literalinclude:: ../../../charts/flyte-binary/eks-production.yaml
:caption: charts/flyte-binary/eks-production.yaml
:language: yaml
:lines: 127-135

.. group-tab:: ``flyte-binary``/ on EKS using ALB

.. code-block:: yaml
ingress:
create: true
commonAnnotations:
alb.ingress.kubernetes.io/certificate-arn: '<your-SSL-certificate-ARN>'
alb.ingress.kubernetes.io/group.name: flyte
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
httpAnnotations:
alb.ingress.kubernetes.io/actions.app-root: '{"Type": "redirect", "RedirectConfig": {"Path": "/console", "StatusCode": "HTTP_302"}}'
grpcAnnotations:
alb.ingress.kubernetes.io/backend-protocol-version: GRPC
host: <your-URL> #use a DNS CNAME pointing to your ALB
.. group-tab:: ``flyte-core`` on GCP using NGINX

.. literalinclude:: ../../../charts/flyte-core/values-gcp.yaml
:caption: charts/flyte-core/values-gcp.yaml
:language: yaml
:lines: 156-164

.. note::

This currently assumes that you have nginx ingress. We'll be updating these
in the near future to use the ALB ingress controller instead.

***************
Authentication
***************

Authentication comes with Flyte in the form of OAuth 2. Please see the
Authentication comes with Flyte in the form of OAuth 2.0. Please see the
`authentication guide <deployment-configuration-auth-setup>`__ for instructions.

.. note::
Expand All @@ -60,10 +85,3 @@ compatibility being maintained, for the most part.

If you're using the :ref:`multi-cluster <deployment-deployment-multicluster>`
deployment model for Flyte, components should be upgraded together.

.. note::

Expect to see minor version releases roughly 4-6 times a year - we aim to
release monthly, or whenever there is a large enough set of features to
warrant a release. Expect to see patch releases at more regular intervals,
especially for flytekit, the Python SDK.
8 changes: 8 additions & 0 deletions rsts/deployment/deployment/cloud_simple.rst
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,14 @@ hello world example:
cd flytesnacks/cookbook
pyflyte run --remote core/flyte_basics/hello_world.py my_wf

***********************************
Flyte in on-premises infrastructure
***********************************

Sometimes, it's also helpful to be able to set up a Flyte environment in an on-premises Kubernetes environment or even on a laptop for testing and development purposes.
Check out `this community-maintained tutorial <https://github.com/davidmirror-ops/flyte-the-hard-way/blob/main/docs/on-premises/001-configure-local-k8s.md>`__ to learn how to setup the required dependencies and deploy the `flyte-binary` chart to a local Kubernetes cluster.


*************
What's Next?
*************
Expand Down
35 changes: 9 additions & 26 deletions rsts/deployment/deployment/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,29 +49,6 @@ deployment comes with a containerized `Minio <https://min.io/>`__, which offers
- **GCP**: `GCS <https://cloud.google.com/storage/>`__
- **Azure**: `Azure Blob Storage <https://azure.microsoft.com/en-us/products/storage/blobs>`__


Cluster Configuration
=====================

Flyte configures K8s clusters to work with it. For example, as your Flyte userbase evolves, adding new projects is as
simple as registering them through the command line:

.. prompt:: bash $

flytectl create project \
--id my-flyte-project \
--name "My Flyte Project" \
--description "My first project onboarding onto Flyte"

Once you invoke this command, this project should immediately show up in the Flyte console after refreshing.

Flyte runs at a configurable cadence that ensures that all Kubernetes resources necessary for the new project are
created and new workflows can successfully be registered and executed within it.

.. note::

For more information, see :std:ref:`flytectl <flytectl:flytectl_create_project>`.

************************
Flyte Deployment Paths
************************
Expand Down Expand Up @@ -108,7 +85,10 @@ There are three different paths for deploying a Flyte cluster:
This option is appropriate if all your compute can `fit on one EKS cluster <https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html>`__ .
As of this writing, a single Flyte cluster can handle more than 13,000 nodes.

Whatever path you choose, note that ``FlytePropeller`` itself can be sharded as well, though typically it's not required.
Regardless of using single or multiple Kubernetes clusters for Flyte, note that ``FlytePropeller`` -the main data plane component- can be scaled out as well by using ``sharding`` if scale demands require it.
See `Automatic scale-out <https://docs.flyte.org/en/latest/deployment/configuration/performance.html#automatic-scale-out>`__ to learn more about the sharding mechanism.



Helm
====
Expand Down Expand Up @@ -156,10 +136,13 @@ Deployment Tips and Tricks

Due to the many choices and constraints that you may face in your organization, the specific steps for deploying Flyte
can vary significantly. For example, which cloud platform to use is typically a big fork in the road for many, and there
are many choices to make in terms of ingresses, auth providers, and versions of different dependent libraries that
are many choices to make in terms of Ingress controllers, auth providers, and versions of different dependent libraries that
may interact with other parts of your stack.

In addition to searching and posting on the `Flyte Slack community <https://flyte-org.slack.com/archives/C01P3B761A6>`__,
Considering the above, we recommend checking out the `"Flyte The Hard Way" <https://github.com/davidmirror-ops/flyte-the-hard-way/tree/main#flyte-the-hard-way>`__ set of community-maintained tutorials that can guide you through the process of preparing the infrastructure and
deploying Flyte.

In addition to searching and posting on the `#flyte-deployment Slack channel <https://flyte-org.slack.com/archives/C01P3B761A6>`__,
we have a `Github Discussion <https://github.com/flyteorg/flyte/discussions/categories/deployment-tips-tricks>`__
section dedicated to deploying Flyte. Feel free to submit any hints you've found helpful as a discussion, ask questions,
or simply document what worked or what didn't work for you.
Expand Down
Loading

0 comments on commit 8d66d05

Please sign in to comment.