From abc1f5c9b464db2b2ffa9b6ecac2df6297139fbe Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Wed, 4 May 2022 23:02:13 +0530 Subject: [PATCH 01/11] Added sandbox deployment Signed-off-by: Yuvraj --- charts/flyte-core/values-sandbox.yaml | 96 ++++++++++++++ docker/sandbox/Dockerfile | 1 + docker/sandbox/flyte-entrypoint-default.sh | 29 ++++- docker/sandbox/wait-for-flyte.sh | 6 +- rsts/deployment/plugin_setup/k8s/index.rst | 32 ++--- .../plugin_setup/webapi/snowflake.rst | 13 +- rsts/deployment/sandbox.rst | 121 ++++-------------- 7 files changed, 159 insertions(+), 139 deletions(-) create mode 100644 charts/flyte-core/values-sandbox.yaml diff --git a/charts/flyte-core/values-sandbox.yaml b/charts/flyte-core/values-sandbox.yaml new file mode 100644 index 0000000000..a402f418e7 --- /dev/null +++ b/charts/flyte-core/values-sandbox.yaml @@ -0,0 +1,96 @@ + +flyteadmin: + service: + annotations: + projectcontour.io/upstream-protocol.h2c: grpc + type: ClusterIP + loadBalancerSourceRanges: [] + +datacatalog: + service: + annotations: + projectcontour.io/upstream-protocol.h2c: grpc + type: NodePort + +flyteconsole: + ga: + enabled: true + tracking_id: "G-0QW4DJWJ20" + +deployRedoc: true + +common: + databaseSecret: + # -- Specify name of K8s Secret which contains Database password. Leave it empty if you don't need this Secret + name: "" + + # -- Specify your Secret (with sensitive data) or pseudo-manifest (without sensitive data). See https://github.com/godaddy/kubernetes-external-secrets + secretManifest: {} + ingress: + host: "" + webpackHMR: true + +db: + datacatalog: + database: + port: 5432 + username: postgres + host: postgres + dbname: "datacatalog" + admin: + database: + port: 5432 + username: postgres + host: postgres + dbname: "flyteadmin" + +configmap: + console: + CONFIG_DIR: /etc/flyte/config + DISABLE_AUTH: "1" + + + # -- Kubernetes specific Flyte configuration + k8s: + plugins: + # -- Configuration section for all K8s specific plugins [Configuration structure](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/pluginmachinery/flytek8s/config) + k8s: + # DEFAULT_ENV_VAR: VALUE + default-cpus: 100m + default-env-vars: + - FLYTE_AWS_ENDPOINT: "http://minio.flyte.svc.cluster.local:9000" + - FLYTE_AWS_ACCESS_KEY_ID: minio + - FLYTE_AWS_SECRET_ACCESS_KEY: flyte + default-memory: 200Mi + + remoteData: + remoteData: + region: "us-east-1" + scheme: "local" + signedUrls: + durationMinutes: 3 + + # -- Resource manager configuration + resource_manager: + # -- resource manager configuration + propeller: + resourcemanager: + type: noop + redis: null + + task_logs: + plugins: + logs: + kubernetes-enabled: true + kubernetes-template-uri: 'http://localhost:30082/#/log/{{ "{{" }} .namespace {{ "}}" }}/{{ "{{" }} .podName {{ "}}" }}/pod?namespace={{ "{{" }} .namespace {{ "}}" }}' + # -- One option is to enable cloudwatch logging for EKS, update the region and log group accordingly + cloudwatch-enabled: false + +workflow_notifications: + enabled: false + config: {} + +redis: + # --- enable or disable Redis Statefulset installation + enabled: false + diff --git a/docker/sandbox/Dockerfile b/docker/sandbox/Dockerfile index f41fe56edf..2a77a20472 100644 --- a/docker/sandbox/Dockerfile +++ b/docker/sandbox/Dockerfile @@ -35,6 +35,7 @@ RUN wget -q -O - https://raw.githubusercontent.com/flyteorg/flytectl/master/inst # Copy flyte chart COPY charts/flyte/ /flyteorg/share/flyte COPY charts/flyte-core/ /flyteorg/share/flyte-core +COPY charts/flyte-deps/ /flyteorg/share/flyte-deps # Copy scripts COPY docker/sandbox/kubectl docker/sandbox/cgroup-v2-hack.sh docker/sandbox/wait-for-flyte.sh /flyteorg/bin/ diff --git a/docker/sandbox/flyte-entrypoint-default.sh b/docker/sandbox/flyte-entrypoint-default.sh index 32bc72e89b..21d4ea134e 100755 --- a/docker/sandbox/flyte-entrypoint-default.sh +++ b/docker/sandbox/flyte-entrypoint-default.sh @@ -36,6 +36,7 @@ K3S_PID=$! timeout 600 sh -c "until k3s kubectl explain deployment &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the Kubernetes cluster to start"; exit 1 ) echo "Done." +echo "Deploying Flyte..." FLYTE_VERSION=${FLYTE_VERSION:-latest} if [[ $FLYTE_VERSION = "latest" ]] then @@ -43,16 +44,32 @@ then fi # Deploy flyte -echo "Deploying Flyte..." +helm repo add flyteorg https://flyteorg.github.io/flyte + +echo "Deploying Flyte-deps..." +version="" +charts="/flyteorg/share/flyte-deps" + +if [[ $FLYTE_TEST = "release" ]] +then + version="--version $FLYTE_VERSION" + charts="flyteorg/flyte-deps" +fi + +if [[ $FLYTE_TEST = "local" ]] +then + helm dep update $charts +fi + +helm upgrade -n flyte --create-namespace flyte-deps $charts --kubeconfig /etc/rancher/k3s/k3s.yaml --install $version --set webhook.enabled=false,contour.enabled=true --wait + version="" -charts="/flyteorg/share/flyte" +charts="/flyteorg/share/flyte-core" if [[ $FLYTE_TEST = "release" ]] then - helm repo add flyteorg https://flyteorg.github.io/flyte - helm fetch flyteorg/flyte --version=$FLYTE_VERSION version="--version $FLYTE_VERSION" - charts="flyteorg/flyte" + charts="flyteorg/flyte-core" fi if [[ $FLYTE_TEST = "local" ]] @@ -60,7 +77,7 @@ then helm dep update $charts fi -helm upgrade -n flyte --create-namespace flyte $charts --kubeconfig /etc/rancher/k3s/k3s.yaml --install $version +helm upgrade -n flyte --create-namespace flyte-core $charts --kubeconfig /etc/rancher/k3s/k3s.yaml --install $version -f /flyteorg/share/flyte-core/values-sandbox.yaml wait-for-flyte.sh diff --git a/docker/sandbox/wait-for-flyte.sh b/docker/sandbox/wait-for-flyte.sh index 303487c27a..e444f190b9 100755 --- a/docker/sandbox/wait-for-flyte.sh +++ b/docker/sandbox/wait-for-flyte.sh @@ -19,11 +19,9 @@ timeout $FLYTE_TIMEOUT sh -c "until k3s kubectl rollout status deployment dataca timeout $FLYTE_TIMEOUT sh -c "until k3s kubectl rollout status deployment flyteadmin -n flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the flyteadmin rollout to be created"; exit 1 ) timeout $FLYTE_TIMEOUT sh -c "until k3s kubectl rollout status deployment flyteconsole -n flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the flyteconsole rollout to be created"; exit 1 ) timeout $FLYTE_TIMEOUT sh -c "until k3s kubectl rollout status deployment flytepropeller -n flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the flytepropeller rollout to be created"; exit 1 ) +timeout $FLYTE_TIMEOUT sh -c "until k3s kubectl rollout status deployment flyte-deps-contour-contour -n flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the flytepropeller rollout to be created"; exit 1 ) # Wait for flyte deployment -k3s kubectl wait --for=condition=available deployment/datacatalog deployment/flyteadmin deployment/flyteconsole deployment/flytepropeller -n flyte --timeout=10m || ( echo >&2 "Timed out while waiting for the Flyte deployment to start"; exit 1 ) - -# Wait for envoy proxy to become ready -timeout $FLYTE_TIMEOUT sh -c 'until [[ $(k3s kubectl get daemonset flyte-contour-envoy -n flyte -o jsonpath="{.status.numberReady}") -eq 1 ]]; do sleep 1; done' || ( echo >&2 "Timed out while waiting for the Flyte envoy proxy to start"; exit 1 ) +k3s kubectl wait --for=condition=available deployment/datacatalog deployment/flyteadmin deployment/flyteconsole deployment/flytepropeller deployment/flyte-deps-contour-contour -n flyte --timeout=10m || ( echo >&2 "Timed out while waiting for the Flyte deployment to start"; exit 1 ) echo "Flyte is ready! Flyte UI is available at http://localhost:30081/console." diff --git a/rsts/deployment/plugin_setup/k8s/index.rst b/rsts/deployment/plugin_setup/k8s/index.rst index 664e525275..1eac32d6cb 100644 --- a/rsts/deployment/plugin_setup/k8s/index.rst +++ b/rsts/deployment/plugin_setup/k8s/index.rst @@ -476,18 +476,9 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo 5. Upgrade the Flyte Helm release. -.. tabbed:: Sandbox - - .. code-block:: bash - - helm upgrade flyte flyteorg/flyte -f values-override.yaml -n flyte - -.. tabbed:: AWS/GCP - - .. code-block:: bash - - helm upgrade flyte flyteorg/flyte-core -f values-override.yaml -n flyte +.. code-block:: bash + helm upgrade flyte flyteorg/flyte-core -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml -f values-override.yaml -n flyte 6. Register the plugin example. @@ -496,26 +487,26 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo .. code-block:: bash - flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.2.225/snacks-cookbook-integrations-kubernetes-kfpytorch.tar.gz --archive -p flytesnacks -d development --version latest + flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.3.75/snacks-cookbook-integrations-kubernetes-kfpytorch.tar.gz --archive -p flytesnacks -d development --version latest .. tabbed:: TensorFlow Operator .. code-block:: bash # TODO: https://github.com/flyteorg/flyte/issues/1757 - flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.2.225/.tar.gz --archive -p flytesnacks -d development --version latest + flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.3.75/snacks-cookbook-integrations-kubernetes-kftensorflow.tar.gz --archive -p flytesnacks -d development --version latest .. tabbed:: MPI Operator .. code-block:: bash - flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.2.226/snacks-cookbook-integrations-kubernetes-kfmpi.tar.gz --archive -p flytesnacks -d development --version latest + flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.3.75/snacks-cookbook-integrations-kubernetes-kfmpi.tar.gz --archive -p flytesnacks -d development --version latest .. tabbed:: Spark Operator .. code-block:: bash - flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.2.226/snacks-cookbook-integrations-kubernetes-k8s_spark.tar.gz --archive -p flytesnacks -d development --version latest + flytectl register files --config ~/.flyte/config.yaml https://github.com/flyteorg/flytesnacks/releases/download/v0.3.75/snacks-cookbook-integrations-kubernetes-k8s_spark.tar.gz --archive -p flytesnacks -d development --version latest 7. Launch an execution @@ -524,6 +515,7 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo * Navigate to the Flyte Console's UI (e.g. `sandbox `_) and find the relevant workflow * Click on `Launch` to open up a launch form + * Give **spark** as the service account if launching a spark example * Submit the form to launch an execution .. tabbed:: Flytectl @@ -534,7 +526,7 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo .. code-block:: bash - flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development kfpytorch.pytorch_mnist.pytorch_training_wf --latest --execFile exec_spec.yaml --config ~/.flyte/config.yaml + flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development kfpytorch.pytorch_mnist.pytorch_training_wf --latest --execFile exec_spec.yaml * Launch! 🚀 @@ -548,7 +540,7 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo .. code-block:: bash - flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development --latest --execFile exec_spec.yaml --config ~/.flyte/config.yaml + flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development --latest --execFile exec_spec.yaml * Launch! 🚀 @@ -562,7 +554,7 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo .. code-block:: bash - flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development kfmpi.mpi_mnist.horovod_training_wf --latest --execFile exec_spec.yaml --config ~/.flyte/config.yaml + flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development kfmpi.mpi_mnist.horovod_training_wf --latest --execFile exec_spec.yaml * Launch! 🚀 @@ -576,7 +568,9 @@ This guide gives an overview of setting up the K8s Operator backend plugin in yo .. code-block:: bash - flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development k8s_spark.pyspark_pi.my_spark --latest --execFile exec_spec.yaml --config ~/.flyte/config.yaml + flytectl get launchplan --config ~/.flyte/config.yaml --project flytesnacks --domain development k8s_spark.pyspark_pi.my_spark --latest --execFile exec_spec.yaml + + * Fill in the ``kubeServiceAcct`` as **spark** in the ``exec_spec.yaml`` file * Launch! 🚀 diff --git a/rsts/deployment/plugin_setup/webapi/snowflake.rst b/rsts/deployment/plugin_setup/webapi/snowflake.rst index 067042ecfd..2d9ff70a60 100644 --- a/rsts/deployment/plugin_setup/webapi/snowflake.rst +++ b/rsts/deployment/plugin_setup/webapi/snowflake.rst @@ -88,18 +88,9 @@ Replace ```` with your JWT token. 6. Upgrade the Flyte Helm release. -.. tabbed:: Sandbox - - .. code-block:: bash - - helm upgrade -n flyte -f values-override.yaml flyteorg/flyte --kubeconfig=~/.flyte/k3s/k3s.yaml - -.. tabbed:: AWS/GCP - - .. code-block:: bash - - helm upgrade -n flyte -f values-override.yaml flyteorg/flyte-core +.. code-block:: bash + helm upgrade -n flyte -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml -f values-override.yaml flyteorg/flyte-core 7. Register the Snowflake plugin example. diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index 5724ef7e74..8a03001d77 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -67,100 +67,16 @@ This installs all the dependencies as Kubernetes deployments. We call this a San Deploy Flyte Sandbox environment laptop / workstation / single machine ======================================================================= + Ensure ``kubectl`` is installed. Follow `kubectl installation docs `__. On Mac:: brew install kubectl -.. tabbed:: Docker Image - - Recommend using ``flytectl sandbox`` as describe in :ref:`getting-started` - - .. prompt:: bash $ - - docker run --rm --privileged -p 30081:30081 -p 30084:30084 -p 30088:30088 cr.flyte.org/flyteorg/flyte-sandbox - -.. tabbed:: k3d - - .. TODO:: - - Allow installing latest version of k3d once this `issue is fixed `__ - - #. Install k3d Using ``curl``:: - - curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v4.2.0 bash - - Or Using ``wget`` :: - - wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v4.2.0 bash - - - #. Start a new K3s cluster called Flyte :: - - k3d cluster create flyte -p 30081:30081 --no-lb --k3s-server-arg '–no-deploy=traefik' --k3s-server-arg '–no-deploy=servicelb' - - - #. Ensure the context is set to the new cluster:: - - kubectl config set-context flyte - - #. Install Flyte:: - - kubectl create ns flyte - kubectl create -f https://raw.githubusercontent.com/flyteorg/flyte/master/deployment/sandbox/flyte_helm_generated.yaml - - - #. Connect to `FlyteConsole `__ - #. [Optional] You can delete the cluster once you are done with the tutorial using - :: - - k3d cluster delete flyte - - .. note:: +Recommend using ``flytectl sandbox start`` as describe in :ref:`getting-started` - #. Sometimes Flyteconsole will not open up. This is probably because your docker networking is impacted. One solution is to restart docker and repeat the previous steps. - #. To debug you can try a simple exercise - run nginx as follows:: - - docker run -it --rm -p 8083:80 nginx - - Now connect to `locahost:8083 `__. If this does not work, then the networking is most probably impacted. Please restart docker daemon. - -.. tabbed:: Docker-Mac + K8s - - .. TODO:: - - These instructions currently still rely on the old kustomize setup, and will be moved over to the Helm chart soon. - - #. Install Docker for mac with Kubernetes as explained `here `_ - #. Make sure Kubernetes is started and once started make sure your kubectx is set to the `docker-desktop` cluster, typically :: - - kubectl config set-context docker-desktop - - #. Install Flyte:: - - kubectl create -f https://raw.githubusercontent.com/flyteorg/flyte/master/deployment/sandbox/flyte_generated.yaml - - #. Connect to `FlyteConsole `__ - -.. tabbed:: Using Minikube (Not recommended) - - .. TODO:: - - These instructions currently still rely on the old kustomize setup, and will be moved over to the Helm chart soon. - - #. Install `Minikube `_ - - #. Install Flyte:: - - kubectl create -f https://raw.githubusercontent.com/flyteorg/flyte/master/deployment/sandbox/flyte_generated.yaml - - .. note:: - - - Minikube runs in a Virtual Machine on your host - - So if you try to access the flyte console on localhost, that will not work, because the Virtual Machine has a different IP address. - - Flyte runs within Kubernetes (minikube), so to access FlyteConsole, you cannot just use https://localhost:30081/console. You need to use the IP address of the minikube VM instead of the localhost - - Refer to https://kubernetes.io/docs/tutorials/hello-minikube/ to understand how to run a sample app on kubernetes using minikube and Katacoda. To register workflows, tasks, etc. or use the CLI to query Flyte services, you have to use the IP address. - - If you are building an image locally and want to execute on Minikube hosted Flyte environment, please push the image to docker registry running on the Minikube VM. - - Another alternative is to change the docker host, to build the docker image on the Minikube hosted docker daemon. https://minikube.sigs.k8s.io/docs/handbook/pushing/ provides more detailed information about this process. Flyte can only run images that are accessible to Kubernetes. To make an image accessible, you could either push it to a remote registry or to a registry that is available to Kubernetes. In the minikube case, this registry is the one that is running on the VM. +.. prompt:: bash $ + docker run --rm --privileged -p 30081:30081 -p 30084:30084 -p 30088:30088 cr.flyte.org/flyteorg/flyte-sandbox .. _deployment-sandbox-dedicated-k8s-cluster: @@ -186,31 +102,38 @@ We'll proceed like with :ref:`locally hosted flyte ` with Flyte configuration on your remote cluster. -#. The Flyte sandbox can be deployed via a helm chart. From the root dir of the flyte repo run :: +#. Add Helm repo for flyte - helm repo add flyte https://flyteorg.github.io/flyte - helm install -n flyte -f values.yaml --create-namespace flyte flyte/flyte + helm repo add flyteorg https://helm.flyte.org -#. For customizations instructions, see ``/charts/flyte/README.md`` in the flyte repo. +#. Install Flyte dependency helm chart(It will install the minio,postgres,kubernetes-dashboard and contour) :: -#. You can now port-forward (or if you have load-balancer enabled then get an LB) to connect to remote FlyteConsole, as follows :: + helm install -n flyte flyte-deps flyteorg/flyte-deps --create-namespace --set webhook.enabled=false,minio.service.type=LoadBalancer,contour.enabled=true,contour.envoy.service.type=LoadBalancer,kubernetes-dashboard.service.type=LoadBalancer - kubectl port-forward --address 0.0.0.0 svc/flyte-contour-envoy 30081:80 -n flyte +#. Install flyte-core chart :: -#. Open the console http://localhost:30081/console. + helm install flyte flyteorg/flyte-core -n flyte -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml --wait + +#. Verify Flyte deployment :: + + kubect get pods -n flyte + +#. Get Flyte deployment URL :: + + kubect get service -n flyte #. In order to interact with your Flyte instance using ``flytectl``, initialise your configuration to point to this host :: - flytectl config init --host='localhost:30081' --insecure + flytectl config init --host='' --insecure -#. Open the minio console http://localhost:30088. Your minio username is `minio` and password is `miniostorage`. +#. Open the minio console http://. Your minio username is `minio` and password is `miniostorage`. -#. Open the Kubernetes dashboard http://localhost:30082. +#. Open the Kubernetes dashboard http://. #. You can port-forward to connect postgres using :: kubectl port-forward --address 0.0.0.0 svc/postgres 5432:5432 -n flyte - + #. Now use these credentials for postgres .. code-block:: From dbc3c05eaee01ef1eebea0d69f6fa391b5ec2557 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Fri, 6 May 2022 18:05:02 +0530 Subject: [PATCH 02/11] fix sandbox helm values Signed-off-by: Yuvraj --- charts/flyte-core/values-sandbox.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/flyte-core/values-sandbox.yaml b/charts/flyte-core/values-sandbox.yaml index a402f418e7..ac3552dfdb 100644 --- a/charts/flyte-core/values-sandbox.yaml +++ b/charts/flyte-core/values-sandbox.yaml @@ -60,7 +60,7 @@ configmap: default-env-vars: - FLYTE_AWS_ENDPOINT: "http://minio.flyte.svc.cluster.local:9000" - FLYTE_AWS_ACCESS_KEY_ID: minio - - FLYTE_AWS_SECRET_ACCESS_KEY: flyte + - FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage default-memory: 200Mi remoteData: From 4649a5ef5f780fbb9754cfb012ccd22a5e5cb5ee Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Fri, 6 May 2022 18:54:39 +0530 Subject: [PATCH 03/11] docs fixes Signed-off-by: Yuvraj --- rsts/deployment/sandbox.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index 8a03001d77..c287de5a84 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -64,7 +64,7 @@ This installs all the dependencies as Kubernetes deployments. We call this a San .. _deploy-sandbox-local: -Deploy Flyte Sandbox environment laptop / workstation / single machine +Deploy Flyte Sandbox environment on laptop/workstation/single machine ======================================================================= @@ -72,7 +72,7 @@ Ensure ``kubectl`` is installed. Follow `kubectl installation docs ` with Flyte configuration on your remote cluster. -#. Add Helm repo for flyte +#. Add Helm repo for flyte :: helm repo add flyteorg https://helm.flyte.org -#. Install Flyte dependency helm chart(It will install the minio,postgres,kubernetes-dashboard and contour) :: +#. Install Flyte dependency helm chart (this will install the minio, Postgres, Kubernetes-dashboard, and contour) :: helm install -n flyte flyte-deps flyteorg/flyte-deps --create-namespace --set webhook.enabled=false,minio.service.type=LoadBalancer,contour.enabled=true,contour.envoy.service.type=LoadBalancer,kubernetes-dashboard.service.type=LoadBalancer @@ -130,11 +130,11 @@ Flyte configuration on your remote cluster. #. Open the Kubernetes dashboard http://. -#. You can port-forward to connect postgres using :: +#. Port-forward to connect Postgres using the following command: :: kubectl port-forward --address 0.0.0.0 svc/postgres 5432:5432 -n flyte -#. Now use these credentials for postgres +#. Use the following credentials for Postgres: .. code-block:: From 318456a13f655bc0fbc38afa24020306bd533b62 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Fri, 6 May 2022 19:23:01 +0530 Subject: [PATCH 04/11] make helm Signed-off-by: Yuvraj --- charts/flyte/README.md | 2 ++ charts/flyte/README.md.gotmpl | 2 ++ 2 files changed, 4 insertions(+) diff --git a/charts/flyte/README.md b/charts/flyte/README.md index 50fd522faa..e42ccac563 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -13,6 +13,8 @@ A Helm chart for Flyte Sandbox | https://googlecloudplatform.github.io/spark-on-k8s-operator | sparkoperator(spark-operator) | 1.1.15 | | https://kubernetes.github.io/dashboard/ | kubernetes-dashboard | 4.0.2 | +**NOTE:** Flyte sandbox helm chart is depricated, From now follow the sandbox [docs](https://docs.flyte.org/en/latest/deployment/sandbox.html) for installing it on cloud + ### SANDBOX INSTALLATION: - [Install helm 3](https://helm.sh/docs/intro/install/) - Install Flyte sandbox: diff --git a/charts/flyte/README.md.gotmpl b/charts/flyte/README.md.gotmpl index f5b94e6646..8d016e4fca 100644 --- a/charts/flyte/README.md.gotmpl +++ b/charts/flyte/README.md.gotmpl @@ -13,6 +13,8 @@ {{ template "chart.requirementsSection" . }} +**NOTE:** Flyte sandbox helm chart is depricated, From now follow the sandbox [docs](https://docs.flyte.org/en/latest/deployment/sandbox.html) for installing it on cloud + ### SANDBOX INSTALLATION: - [Install helm 3](https://helm.sh/docs/intro/install/) - Install Flyte sandbox: From df00046137d03af112adbbff4d251adad06f1db7 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Sat, 7 May 2022 21:30:50 +0530 Subject: [PATCH 05/11] more changes Signed-off-by: Yuvraj --- rsts/deployment/sandbox.rst | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index c287de5a84..9fb62b81a2 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -114,13 +114,17 @@ Flyte configuration on your remote cluster. helm install flyte flyteorg/flyte-core -n flyte -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml --wait -#. Verify Flyte deployment :: +#. Verify Flyte deployment using the following command :: kubect get pods -n flyte -#. Get Flyte deployment URL :: +.. note:: + + Make sure all pods are in Running condition. If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller. + +#. Get the URL of the ingress service :: - kubect get service -n flyte + kubect get ingress -n flyte #. In order to interact with your Flyte instance using ``flytectl``, initialise your configuration to point to this host :: From baa131f0b4236eabb86a0c6c0c1dcf1a23586e8f Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Sat, 7 May 2022 21:34:10 +0530 Subject: [PATCH 06/11] more changes Signed-off-by: Yuvraj --- rsts/deployment/sandbox.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index 9fb62b81a2..b08ad63db9 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -118,11 +118,11 @@ Flyte configuration on your remote cluster. kubect get pods -n flyte -.. note:: + .. note:: - Make sure all pods are in Running condition. If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller. + Make sure all pods are in Running condition. If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller. -#. Get the URL of the ingress service :: +#. Get the URL of the ingress service :: kubect get ingress -n flyte From 47abc564b766b6176a7e72ae56a4260cb2c71773 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Tue, 10 May 2022 18:41:28 +0530 Subject: [PATCH 07/11] added sandbox values in flyte-deps helm chart Signed-off-by: Yuvraj --- charts/flyte-deps/values-sandbox.yaml | 18 ++++++++++++++++++ rsts/deployment/sandbox.rst | 6 +++--- 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 charts/flyte-deps/values-sandbox.yaml diff --git a/charts/flyte-deps/values-sandbox.yaml b/charts/flyte-deps/values-sandbox.yaml new file mode 100755 index 0000000000..d7ffc76241 --- /dev/null +++ b/charts/flyte-deps/values-sandbox.yaml @@ -0,0 +1,18 @@ +webhook: + enabled: false + +minio: + service: + type: LoadBalancer + +contour: + enabled: true + envoy: + service: + type: LoadBalancer + +kubernetes-dashboard: + service: + type: LoadBalancer + externalPort: 30082 + nodePort: 30082 \ No newline at end of file diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index b08ad63db9..2fdb12085d 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -108,7 +108,7 @@ Flyte configuration on your remote cluster. #. Install Flyte dependency helm chart (this will install the minio, Postgres, Kubernetes-dashboard, and contour) :: - helm install -n flyte flyte-deps flyteorg/flyte-deps --create-namespace --set webhook.enabled=false,minio.service.type=LoadBalancer,contour.enabled=true,contour.envoy.service.type=LoadBalancer,kubernetes-dashboard.service.type=LoadBalancer + helm install -n flyte flyte-deps flyteorg/flyte-deps --create-namespace -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml #. Install flyte-core chart :: @@ -118,9 +118,9 @@ Flyte configuration on your remote cluster. kubect get pods -n flyte - .. note:: +.. note:: - Make sure all pods are in Running condition. If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller. + Make sure all pods are in Running condition. If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller. #. Get the URL of the ingress service :: From 8a6c81516b2ab80cf311ff46454bd0e4f2de9322 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Tue, 10 May 2022 20:06:51 +0530 Subject: [PATCH 08/11] make helm Signed-off-by: Yuvraj --- charts/flyte-core/README.md | 6 +++--- charts/flyte/README.md | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index c1b8fbbe44..573ca25e9b 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -57,7 +57,7 @@ helm install gateway bitnami/contour -n flyte | cluster_resource_manager.service_account_name | string | `"flyteadmin"` | Service account name to run with | | cluster_resource_manager.templates | list | `[{"key":"aa_namespace","value":"apiVersion: v1\nkind: Namespace\nmetadata:\n name: {{ namespace }}\nspec:\n finalizers:\n - kubernetes\n"},{"key":"ab_project_resource_quota","value":"apiVersion: v1\nkind: ResourceQuota\nmetadata:\n name: project-quota\n namespace: {{ namespace }}\nspec:\n hard:\n limits.cpu: {{ projectQuotaCpu }}\n limits.memory: {{ projectQuotaMemory }}\n"}]` | Resource templates that should be applied | | cluster_resource_manager.templates[0] | object | `{"key":"aa_namespace","value":"apiVersion: v1\nkind: Namespace\nmetadata:\n name: {{ namespace }}\nspec:\n finalizers:\n - kubernetes\n"}` | Template for namespaces resources | -| common | object | `{"databaseSecret":{"name":"","secretManifest":{}},"flyteNamespaceTemplate":{"enabled":false},"ingress":{"albSSLRedirect":false,"annotations":{"nginx.ingress.kubernetes.io/app-root":"/console"},"enabled":true,"separateGrpcIngress":false,"separateGrpcIngressAnnotations":{"nginx.ingress.kubernetes.io/backend-protocol":"GRPC"},"tls":{"enabled":false},"webpackHMR":false}}` | ---------------------------------------------- COMMON SETTINGS | +| common | object | `{"databaseSecret":{"name":"","secretManifest":{}},"flyteNamespaceTemplate":{"enabled":false},"ingress":{"albSSLRedirect":false,"annotations":{"nginx.ingress.kubernetes.io/app-root":"/console"},"enabled":true,"separateGrpcIngress":false,"separateGrpcIngressAnnotations":{"nginx.ingress.kubernetes.io/backend-protocol":"GRPC"},"tls":{"enabled":false},"webpackHMR":false}}` | ---------------------------------------------- COMMON SETTINGS | | common.databaseSecret.name | string | `""` | Specify name of K8s Secret which contains Database password. Leave it empty if you don't need this Secret | | common.databaseSecret.secretManifest | object | `{}` | Specify your Secret (with sensitive data) or pseudo-manifest (without sensitive data). See https://github.com/godaddy/kubernetes-external-secrets | | common.flyteNamespaceTemplate.enabled | bool | `false` | - Enable or disable creating Flyte namespace in template. Enable when using helm as template-engine only. Disable when using `helm install ...`. | @@ -133,7 +133,7 @@ helm install gateway bitnami/contour -n flyte | flyteadmin.affinity | object | `{}` | affinity for Flyteadmin deployment | | flyteadmin.configPath | string | `"/etc/flyte/config/*.yaml"` | Default regex string for searching configuration files | | flyteadmin.enabled | bool | `true` | | -| flyteadmin.env | list | `[]` | Additional flyteadmin container environment variables e.g. SendGrid's API key - name: SENDGRID_API_KEY value: "" e.g. secret environment variable (you can combine it with .additionalVolumes): - name: SENDGRID_API_KEY valueFrom: secretKeyRef: name: sendgrid-secret key: api_key | +| flyteadmin.env | list | `[]` | Additional flyteadmin container environment variables e.g. SendGrid's API key - name: SENDGRID_API_KEY value: "" e.g. secret environment variable (you can combine it with .additionalVolumes): - name: SENDGRID_API_KEY valueFrom: secretKeyRef: name: sendgrid-secret key: api_key | | flyteadmin.extraArgs | object | `{}` | Appends extra command line arguments to the serve command | | flyteadmin.image.pullPolicy | string | `"IfNotPresent"` | | | flyteadmin.image.repository | string | `"cr.flyte.org/flyteorg/flyteadmin"` | Docker image for Flyteadmin deployment | @@ -209,7 +209,7 @@ helm install gateway bitnami/contour -n flyte | sparkoperator.enabled | bool | `false` | - enable or disable Sparkoperator deployment installation | | sparkoperator.plugin_config | object | `{"plugins":{"spark":{"spark-config-default":[{"spark.hadoop.fs.s3a.aws.credentials.provider":"com.amazonaws.auth.DefaultAWSCredentialsProviderChain"},{"spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version":"2"},{"spark.kubernetes.allocation.batch.size":"50"},{"spark.hadoop.fs.s3a.acl.default":"BucketOwnerFullControl"},{"spark.hadoop.fs.s3n.impl":"org.apache.hadoop.fs.s3a.S3AFileSystem"},{"spark.hadoop.fs.AbstractFileSystem.s3n.impl":"org.apache.hadoop.fs.s3a.S3A"},{"spark.hadoop.fs.s3.impl":"org.apache.hadoop.fs.s3a.S3AFileSystem"},{"spark.hadoop.fs.AbstractFileSystem.s3.impl":"org.apache.hadoop.fs.s3a.S3A"},{"spark.hadoop.fs.s3a.impl":"org.apache.hadoop.fs.s3a.S3AFileSystem"},{"spark.hadoop.fs.AbstractFileSystem.s3a.impl":"org.apache.hadoop.fs.s3a.S3A"},{"spark.hadoop.fs.s3a.multipart.threshold":"536870912"},{"spark.blacklist.enabled":"true"},{"spark.blacklist.timeout":"5m"},{"spark.task.maxfailures":"8"}]}}}` | Spark plugin configuration | | sparkoperator.plugin_config.plugins.spark.spark-config-default | list | `[{"spark.hadoop.fs.s3a.aws.credentials.provider":"com.amazonaws.auth.DefaultAWSCredentialsProviderChain"},{"spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version":"2"},{"spark.kubernetes.allocation.batch.size":"50"},{"spark.hadoop.fs.s3a.acl.default":"BucketOwnerFullControl"},{"spark.hadoop.fs.s3n.impl":"org.apache.hadoop.fs.s3a.S3AFileSystem"},{"spark.hadoop.fs.AbstractFileSystem.s3n.impl":"org.apache.hadoop.fs.s3a.S3A"},{"spark.hadoop.fs.s3.impl":"org.apache.hadoop.fs.s3a.S3AFileSystem"},{"spark.hadoop.fs.AbstractFileSystem.s3.impl":"org.apache.hadoop.fs.s3a.S3A"},{"spark.hadoop.fs.s3a.impl":"org.apache.hadoop.fs.s3a.S3AFileSystem"},{"spark.hadoop.fs.AbstractFileSystem.s3a.impl":"org.apache.hadoop.fs.s3a.S3A"},{"spark.hadoop.fs.s3a.multipart.threshold":"536870912"},{"spark.blacklist.enabled":"true"},{"spark.blacklist.timeout":"5m"},{"spark.task.maxfailures":"8"}]` | Spark default configuration | -| storage | object | `{"bucketName":"my-s3-bucket","custom":{},"gcs":null,"s3":{"region":"us-east-1"},"type":"sandbox"}` | ---------------------------------------------------- STORAGE SETTINGS | +| storage | object | `{"bucketName":"my-s3-bucket","custom":{},"gcs":null,"s3":{"region":"us-east-1"},"type":"sandbox"}` | ---------------------------------------------------- STORAGE SETTINGS | | storage.bucketName | string | `"my-s3-bucket"` | bucketName defines the storage bucket flyte will use. Required for all types except for sandbox. | | storage.custom | object | `{}` | Settings for storage type custom. See https://github:com/graymeta/stow for supported storage providers/settings. | | storage.gcs | string | `nil` | settings for storage type gcs | diff --git a/charts/flyte/README.md b/charts/flyte/README.md index e42ccac563..90365905d1 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -74,7 +74,7 @@ helm upgrade -f values-sandbox.yaml flyte . | flyte.cluster_resource_manager.enabled | bool | `true` | Enables the Cluster resource manager component | | flyte.cluster_resource_manager.templates | list | `[{"key":"aa_namespace","value":"apiVersion: v1\nkind: Namespace\nmetadata:\n name: {{ namespace }}\nspec:\n finalizers:\n - kubernetes\n"},{"key":"ab_project_resource_quota","value":"apiVersion: v1\nkind: ResourceQuota\nmetadata:\n name: project-quota\n namespace: {{ namespace }}\nspec:\n hard:\n limits.cpu: {{ projectQuotaCpu }}\n limits.memory: {{ projectQuotaMemory }}\n"}]` | Resource templates that should be applied | | flyte.cluster_resource_manager.templates[0] | object | `{"key":"aa_namespace","value":"apiVersion: v1\nkind: Namespace\nmetadata:\n name: {{ namespace }}\nspec:\n finalizers:\n - kubernetes\n"}` | Template for namespaces resources | -| flyte.common | object | `{"databaseSecret":{"name":"","secretManifest":{}},"flyteNamespaceTemplate":{"enabled":false},"ingress":{"albSSLRedirect":false,"annotations":{"nginx.ingress.kubernetes.io/app-root":"/console"},"enabled":true,"host":"","separateGrpcIngress":false,"separateGrpcIngressAnnotations":{"nginx.ingress.kubernetes.io/backend-protocol":"GRPC"},"tls":{"enabled":false},"webpackHMR":true}}` | ---------------------------------------------- COMMON SETTINGS | +| flyte.common | object | `{"databaseSecret":{"name":"","secretManifest":{}},"flyteNamespaceTemplate":{"enabled":false},"ingress":{"albSSLRedirect":false,"annotations":{"nginx.ingress.kubernetes.io/app-root":"/console"},"enabled":true,"host":"","separateGrpcIngress":false,"separateGrpcIngressAnnotations":{"nginx.ingress.kubernetes.io/backend-protocol":"GRPC"},"tls":{"enabled":false},"webpackHMR":true}}` | ---------------------------------------------- COMMON SETTINGS | | flyte.common.databaseSecret.name | string | `""` | Specify name of K8s Secret which contains Database password. Leave it empty if you don't need this Secret | | flyte.common.databaseSecret.secretManifest | object | `{}` | Specify your Secret (with sensitive data) or pseudo-manifest (without sensitive data). See https://github.com/godaddy/kubernetes-external-secrets | | flyte.common.flyteNamespaceTemplate.enabled | bool | `false` | - Enable or disable creating Flyte namespace in template. Enable when using helm as template-engine only. Disable when using `helm install ...`. | @@ -86,7 +86,7 @@ helm upgrade -f values-sandbox.yaml flyte . | flyte.common.ingress.separateGrpcIngressAnnotations | object | `{"nginx.ingress.kubernetes.io/backend-protocol":"GRPC"}` | - Extra Ingress annotations applied only to the GRPC ingress. Only makes sense if `separateGrpcIngress` is enabled. | | flyte.common.ingress.tls | object | `{"enabled":false}` | - TLS Settings | | flyte.common.ingress.webpackHMR | bool | `true` | - Enable or disable HMR route to flyteconsole. This is useful only for frontend development. | -| flyte.configmap | object | `{"adminServer":{"auth":{"appAuth":{"thirdPartyConfig":{"flyteClient":{"clientId":"flytectl","redirectUri":"http://localhost:53593/callback","scopes":["offline","all"]}}},"authorizedUris":["https://localhost:30081","http://flyteadmin:80","http://flyteadmin.flyte.svc.cluster.local:80"],"userAuth":{"openId":{"baseUrl":"https://accounts.google.com","clientId":"657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com","scopes":["profile","openid"]}}},"flyteadmin":{"eventVersion":2,"metadataStoragePrefix":["metadata","admin"],"metricsScope":"flyte:","profilerPort":10254,"roleNameKey":"iam.amazonaws.com/role","testing":{"host":"http://flyteadmin"}},"server":{"grpcPort":8089,"httpPort":8088,"security":{"allowCors":true,"allowedHeaders":["Content-Type","flyte-authorization"],"allowedOrigins":["*"],"secure":false,"useAuth":false}}},"catalog":{"catalog-cache":{"endpoint":"datacatalog:89","insecure":true,"type":"datacatalog"}},"console":{"BASE_URL":"/console","CONFIG_DIR":"/etc/flyte/config","DISABLE_AUTH":"1"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v0.0.24","name":"flyte-copilot-","start-timeout":"30s"}}}},"core":{"propeller":{"downstream-eval-duration":"30s","enable-admin-launcher":true,"leader-election":{"enabled":true,"lease-duration":"15s","lock-config-map":{"name":"propeller-leader","namespace":"flyte"},"renew-deadline":"10s","retry-period":"2s"},"limit-namespace":"all","max-workflow-retries":30,"metadata-prefix":"metadata/propeller","metrics-prefix":"flyte","prof-port":10254,"queue":{"batch-size":-1,"batching-interval":"2s","queue":{"base-delay":"5s","capacity":1000,"max-delay":"120s","rate":100,"type":"maxof"},"sub-queue":{"capacity":100,"rate":10,"type":"bucket"},"type":"batch"},"rawoutput-prefix":"s3://my-s3-bucket/","workers":4,"workflow-reeval-duration":"30s"},"webhook":{"certDir":"/etc/webhook/certs","serviceName":"flyte-pod-webhook"}},"datacatalogServer":{"application":{"grpcPort":8089,"grpcServerReflection":true,"httpPort":8080},"datacatalog":{"metrics-scope":"datacatalog","profiler-port":10254,"storage-prefix":"metadata/datacatalog"}},"domain":{"domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}]},"enabled_plugins":{"tasks":{"task-plugins":{"default-for-task-types":{"container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array"]}}},"k8s":{"plugins":{"k8s":{"default-cpus":"100m","default-env-vars":[{"FLYTE_AWS_ENDPOINT":"http://minio.flyte:9000"},{"FLYTE_AWS_ACCESS_KEY_ID":"minio"},{"FLYTE_AWS_SECRET_ACCESS_KEY":"miniostorage"}],"default-memory":"200Mi"}}},"logger":{"logger":{"level":5,"show-source":true}},"remoteData":{"remoteData":{"region":"us-east-1","scheme":"local","signedUrls":{"durationMinutes":3}}},"resource_manager":{"propeller":{"resourcemanager":{"redis":null,"type":"noop"}}},"task_logs":{"plugins":{"logs":{"cloudwatch-enabled":false,"kubernetes-enabled":true,"kubernetes-template-uri":"http://localhost:30082/#/log/{{ \"{{\" }} .namespace {{ \"}}\" }}/{{ \"{{\" }} .podName {{ \"}}\" }}/pod?namespace={{ \"{{\" }} .namespace {{ \"}}\" }}"}}},"task_resource_defaults":{"task_resources":{"defaults":{"cpu":"100m","memory":"200Mi","storage":"5Mi"},"limits":{"cpu":2,"gpu":1,"memory":"1Gi","storage":"20Mi"}}}}` | ----------------------------------------------------------------- CONFIGMAPS SETTINGS | +| flyte.configmap | object | `{"adminServer":{"auth":{"appAuth":{"thirdPartyConfig":{"flyteClient":{"clientId":"flytectl","redirectUri":"http://localhost:53593/callback","scopes":["offline","all"]}}},"authorizedUris":["https://localhost:30081","http://flyteadmin:80","http://flyteadmin.flyte.svc.cluster.local:80"],"userAuth":{"openId":{"baseUrl":"https://accounts.google.com","clientId":"657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com","scopes":["profile","openid"]}}},"flyteadmin":{"eventVersion":2,"metadataStoragePrefix":["metadata","admin"],"metricsScope":"flyte:","profilerPort":10254,"roleNameKey":"iam.amazonaws.com/role","testing":{"host":"http://flyteadmin"}},"server":{"grpcPort":8089,"httpPort":8088,"security":{"allowCors":true,"allowedHeaders":["Content-Type","flyte-authorization"],"allowedOrigins":["*"],"secure":false,"useAuth":false}}},"catalog":{"catalog-cache":{"endpoint":"datacatalog:89","insecure":true,"type":"datacatalog"}},"console":{"BASE_URL":"/console","CONFIG_DIR":"/etc/flyte/config","DISABLE_AUTH":"1"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v0.0.24","name":"flyte-copilot-","start-timeout":"30s"}}}},"core":{"propeller":{"downstream-eval-duration":"30s","enable-admin-launcher":true,"leader-election":{"enabled":true,"lease-duration":"15s","lock-config-map":{"name":"propeller-leader","namespace":"flyte"},"renew-deadline":"10s","retry-period":"2s"},"limit-namespace":"all","max-workflow-retries":30,"metadata-prefix":"metadata/propeller","metrics-prefix":"flyte","prof-port":10254,"queue":{"batch-size":-1,"batching-interval":"2s","queue":{"base-delay":"5s","capacity":1000,"max-delay":"120s","rate":100,"type":"maxof"},"sub-queue":{"capacity":100,"rate":10,"type":"bucket"},"type":"batch"},"rawoutput-prefix":"s3://my-s3-bucket/","workers":4,"workflow-reeval-duration":"30s"},"webhook":{"certDir":"/etc/webhook/certs","serviceName":"flyte-pod-webhook"}},"datacatalogServer":{"application":{"grpcPort":8089,"grpcServerReflection":true,"httpPort":8080},"datacatalog":{"metrics-scope":"datacatalog","profiler-port":10254,"storage-prefix":"metadata/datacatalog"}},"domain":{"domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}]},"enabled_plugins":{"tasks":{"task-plugins":{"default-for-task-types":{"container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array"]}}},"k8s":{"plugins":{"k8s":{"default-cpus":"100m","default-env-vars":[{"FLYTE_AWS_ENDPOINT":"http://minio.flyte:9000"},{"FLYTE_AWS_ACCESS_KEY_ID":"minio"},{"FLYTE_AWS_SECRET_ACCESS_KEY":"miniostorage"}],"default-memory":"200Mi"}}},"logger":{"logger":{"level":5,"show-source":true}},"remoteData":{"remoteData":{"region":"us-east-1","scheme":"local","signedUrls":{"durationMinutes":3}}},"resource_manager":{"propeller":{"resourcemanager":{"redis":null,"type":"noop"}}},"task_logs":{"plugins":{"logs":{"cloudwatch-enabled":false,"kubernetes-enabled":true,"kubernetes-template-uri":"http://localhost:30082/#/log/{{ \"{{\" }} .namespace {{ \"}}\" }}/{{ \"{{\" }} .podName {{ \"}}\" }}/pod?namespace={{ \"{{\" }} .namespace {{ \"}}\" }}"}}},"task_resource_defaults":{"task_resources":{"defaults":{"cpu":"100m","memory":"200Mi","storage":"5Mi"},"limits":{"cpu":2,"gpu":1,"memory":"1Gi","storage":"20Mi"}}}}` | ----------------------------------------------------------------- CONFIGMAPS SETTINGS | | flyte.configmap.adminServer | object | `{"auth":{"appAuth":{"thirdPartyConfig":{"flyteClient":{"clientId":"flytectl","redirectUri":"http://localhost:53593/callback","scopes":["offline","all"]}}},"authorizedUris":["https://localhost:30081","http://flyteadmin:80","http://flyteadmin.flyte.svc.cluster.local:80"],"userAuth":{"openId":{"baseUrl":"https://accounts.google.com","clientId":"657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com","scopes":["profile","openid"]}}},"flyteadmin":{"eventVersion":2,"metadataStoragePrefix":["metadata","admin"],"metricsScope":"flyte:","profilerPort":10254,"roleNameKey":"iam.amazonaws.com/role","testing":{"host":"http://flyteadmin"}},"server":{"grpcPort":8089,"httpPort":8088,"security":{"allowCors":true,"allowedHeaders":["Content-Type","flyte-authorization"],"allowedOrigins":["*"],"secure":false,"useAuth":false}}}` | FlyteAdmin server configuration | | flyte.configmap.adminServer.auth | object | `{"appAuth":{"thirdPartyConfig":{"flyteClient":{"clientId":"flytectl","redirectUri":"http://localhost:53593/callback","scopes":["offline","all"]}}},"authorizedUris":["https://localhost:30081","http://flyteadmin:80","http://flyteadmin.flyte.svc.cluster.local:80"],"userAuth":{"openId":{"baseUrl":"https://accounts.google.com","clientId":"657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com","scopes":["profile","openid"]}}}` | Authentication configuration | | flyte.configmap.adminServer.server.security.secure | bool | `false` | Controls whether to serve requests over SSL/TLS. | @@ -128,7 +128,7 @@ helm upgrade -f values-sandbox.yaml flyte . | flyte.datacatalog.tolerations | list | `[]` | tolerations for Datacatalog deployment | | flyte.flyteadmin.affinity | object | `{}` | affinity for Flyteadmin deployment | | flyte.flyteadmin.configPath | string | `"/etc/flyte/config/*.yaml"` | Default regex string for searching configuration files | -| flyte.flyteadmin.env | list | `[]` | Additional flyteadmin container environment variables e.g. SendGrid's API key - name: SENDGRID_API_KEY value: "" e.g. secret environment variable (you can combine it with .additionalVolumes): - name: SENDGRID_API_KEY valueFrom: secretKeyRef: name: sendgrid-secret key: api_key | +| flyte.flyteadmin.env | list | `[]` | Additional flyteadmin container environment variables e.g. SendGrid's API key - name: SENDGRID_API_KEY value: "" e.g. secret environment variable (you can combine it with .additionalVolumes): - name: SENDGRID_API_KEY valueFrom: secretKeyRef: name: sendgrid-secret key: api_key | | flyte.flyteadmin.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy | | flyte.flyteadmin.image.repository | string | `"cr.flyte.org/flyteorg/flyteadmin"` | Docker image for Flyteadmin deployment | | flyte.flyteadmin.image.tag | string | `"v1.0.0"` | Docker image tag | @@ -180,7 +180,7 @@ helm upgrade -f values-sandbox.yaml flyte . | flyte.flytescheduler.serviceAccount.create | bool | `true` | Should a service account be created for Flytescheduler | | flyte.flytescheduler.serviceAccount.imagePullSecrets | object | `{}` | ImapgePullSecrets to automatically assign to the service account | | flyte.flytescheduler.tolerations | list | `[]` | tolerations for Flytescheduler deployment | -| flyte.storage | object | `{"bucketName":"my-s3-bucket","custom":{},"gcs":null,"s3":{"region":"us-east-1"},"type":"sandbox"}` | ---------------------------------------------------- STORAGE SETTINGS | +| flyte.storage | object | `{"bucketName":"my-s3-bucket","custom":{},"gcs":null,"s3":{"region":"us-east-1"},"type":"sandbox"}` | ---------------------------------------------------- STORAGE SETTINGS | | flyte.storage.bucketName | string | `"my-s3-bucket"` | bucketName defines the storage bucket flyte will use. Required for all types except for sandbox. | | flyte.storage.custom | object | `{}` | Settings for storage type custom. See https://github:com/graymeta/stow for supported storage providers/settings. | | flyte.storage.gcs | string | `nil` | settings for storage type gcs | @@ -227,7 +227,7 @@ helm upgrade -f values-sandbox.yaml flyte . | postgres.resources | object | `{"limits":{"cpu":"1000m","memory":"512Mi"},"requests":{"cpu":"10m","memory":"128Mi"}}` | Default resources requests and limits for Postgres deployment | | postgres.service | object | `{"annotations":{},"type":"NodePort"}` | Service settings for Postgres | | postgres.tolerations | list | `[]` | tolerations for Postgres deployment | -| redis | object | `{"enabled":false}` | --------------------------------------------- REDIS SETTINGS | +| redis | object | `{"enabled":false}` | --------------------------------------------- REDIS SETTINGS | | redis.enabled | bool | `false` | - enable or disable Redis Statefulset installation | | redoc.affinity | object | `{}` | affinity for Minio deployment | | redoc.enabled | bool | `true` | - enable or disable Minio deployment installation | From c15f16e62f9589523b7499f146e8ca22d9487a55 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Mon, 16 May 2022 19:01:05 +0530 Subject: [PATCH 09/11] fix formating Signed-off-by: Yuvraj --- rsts/deployment/sandbox.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index 2fdb12085d..f8012e77de 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -114,14 +114,10 @@ Flyte configuration on your remote cluster. helm install flyte flyteorg/flyte-core -n flyte -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml --wait -#. Verify Flyte deployment using the following command :: +#. Make sure all pods are in Running condition, If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller, Verify Flyte deployment using the following command :: kubect get pods -n flyte -.. note:: - - Make sure all pods are in Running condition. If you see anything that's crashing, check them in this order: postgres, minio, flyteadmin, datacatalog, flytepropeller. - #. Get the URL of the ingress service :: kubect get ingress -n flyte @@ -130,6 +126,10 @@ Flyte configuration on your remote cluster. flytectl config init --host='' --insecure +#. Get Minio & Kubernetes dashboard LB Url by running :: + + kubectl get service -n flyte + #. Open the minio console http://. Your minio username is `minio` and password is `miniostorage`. #. Open the Kubernetes dashboard http://. @@ -138,7 +138,7 @@ Flyte configuration on your remote cluster. kubectl port-forward --address 0.0.0.0 svc/postgres 5432:5432 -n flyte -#. Use the following credentials for Postgres: +#. Use the following credentials for Postgres :: .. code-block:: From 929b8b7f9798d6670807a12fd615a3f90cbb4fbe Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Mon, 16 May 2022 21:03:57 +0530 Subject: [PATCH 10/11] more changes Signed-off-by: Yuvraj --- rsts/deployment/sandbox.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index f8012e77de..d68d60e6ca 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -108,7 +108,7 @@ Flyte configuration on your remote cluster. #. Install Flyte dependency helm chart (this will install the minio, Postgres, Kubernetes-dashboard, and contour) :: - helm install -n flyte flyte-deps flyteorg/flyte-deps --create-namespace -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-core/values-sandbox.yaml + helm install -n flyte flyte-deps flyteorg/flyte-deps --create-namespace -f https://raw.githubusercontent.com/flyteorg/flyte/master/charts/flyte-deps/values-sandbox.yaml #. Install flyte-core chart :: @@ -126,7 +126,7 @@ Flyte configuration on your remote cluster. flytectl config init --host='' --insecure -#. Get Minio & Kubernetes dashboard LB Url by running :: +#. Get Minio & Kubernetes dashboard LB URL by running :: kubectl get service -n flyte From 00c1f9f0fd5c990fc1d5708cc96c74d8b0929a8d Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Tue, 17 May 2022 21:54:00 +0530 Subject: [PATCH 11/11] fix formating Signed-off-by: Yuvraj --- rsts/deployment/sandbox.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rsts/deployment/sandbox.rst b/rsts/deployment/sandbox.rst index d68d60e6ca..c1c27fdead 100644 --- a/rsts/deployment/sandbox.rst +++ b/rsts/deployment/sandbox.rst @@ -137,8 +137,8 @@ Flyte configuration on your remote cluster. #. Port-forward to connect Postgres using the following command: :: kubectl port-forward --address 0.0.0.0 svc/postgres 5432:5432 -n flyte - -#. Use the following credentials for Postgres :: + +#. Use the following credentials for Postgres : .. code-block::