diff --git a/.gitattributes b/.gitattributes
index e4b260b693..cbaca9f35c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1 +1,5 @@
docs/**/*html linguist-generated=true
+flyteidl/gen/** linguist-generated=true
+flyteidl/protos/**/*.rst linguist-generated=true
+flyteidl/clients/go/assets/admin.swagger.json linguist-generated=true
+
diff --git a/.github/workflows/flyteidl-release.yml b/.github/workflows/flyteidl-release.yml
index 2ba5740886..7e34f54f29 100644
--- a/.github/workflows/flyteidl-release.yml
+++ b/.github/workflows/flyteidl-release.yml
@@ -33,6 +33,7 @@ jobs:
run:
working-directory: flyteidl
steps:
+ - uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12.x"
diff --git a/.github/workflows/generate_flyte_manifest.yml b/.github/workflows/generate_flyte_manifest.yml
index e0c9c589ab..b2cdb2f2d6 100644
--- a/.github/workflows/generate_flyte_manifest.yml
+++ b/.github/workflows/generate_flyte_manifest.yml
@@ -23,7 +23,6 @@ jobs:
VERSION: ${{ github.event.inputs.next-version }}
run: |
make release_automation
- make kustomize
make helm
- name: Create Pull Request
id: cpr
@@ -39,17 +38,12 @@ jobs:
title: 'Update Flyte components'
body: |
Updated flyte deployment
- - Updated GCP Flyte kustomize generated manifest file
- - Updated EKS Flyte kustomize generated manifest file
- - Updated Sandbox Flyte kustomize generated manifest file
- - Updated TEST Flyte kustomize generated manifest file
- Updated GCP Flyte helm generated manifest file
- Updated EKS Flyte helm generated manifest file
- Updated Sandbox Flyte helm generated manifest file
- Updated TEST Flyte helm generated manifest file
- Auto-generated by [flyte-bot]
labels: |
- kustomize
helm
team-reviewers: |
flyte-maintainers
diff --git a/.github/workflows/lite-image-manual.yml b/.github/workflows/lite-image-manual.yml
deleted file mode 100644
index 8b5831b0e2..0000000000
--- a/.github/workflows/lite-image-manual.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-name: Manually push
-
-on:
- workflow_dispatch:
- inputs:
- flyte_version:
- description: 'flyte version'
- required: true
- default: 'latest'
- type: string
-
-jobs:
- sandbox-lite-build-dind:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- fetch-depth: "0"
- - name: Set flyte version to release
- id: set_version
- run: |
- echo ::set-output name=flyte_version::$(echo ${{ github.event.inputs.flyte_version }})
- - name: Prepare DIND Image Names
- id: dind-names
- uses: docker/metadata-action@v3
- with:
- # list of Docker images to use as base name for tags
- images: |
- ghcr.io/${{ github.repository_owner }}/flyte-sandbox-lite
- tags: |
- ${{ steps.set_version.outputs.flyte_version }}
- type=sha,format=long, prefix=dind-
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v1
- - name: Set up Docker Buildx
- id: buildx
- uses: docker/setup-buildx-action@v1
- - name: Cache Docker layers
- uses: actions/cache@v2
- with:
- path: /tmp/.buildx-cache
- key: ${{ runner.os }}-single-buildx-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-single-buildx
- - name: Login to GitHub Container Registry
- uses: docker/login-action@v1
- with:
- registry: ghcr.io
- username: "${{ secrets.FLYTE_BOT_USERNAME }}"
- password: "${{ secrets.FLYTE_BOT_PAT }}"
- - name: Build and push DIND Image
- uses: docker/build-push-action@v2
- with:
- context: .
- platforms: linux/arm64, linux/amd64
- push: true
- target: dind
- tags: ${{ steps.dind-names.outputs.tags }}
- build-args: "FLYTE_VERSION=${{ steps.set_version.outputs.flyte_version }}"
- file: Dockerfile.sandbox-lite
- cache-from: type=local,src=/tmp/.buildx-cache
- cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new
- - # Temp fix
- # https://github.com/docker/build-push-action/issues/252
- # https://github.com/moby/buildkit/issues/1896
- name: Move cache
- run: |
- rm -rf /tmp/.buildx-cache
- mv /tmp/.buildx-cache-new /tmp/.buildx-cache
diff --git a/.github/workflows/sandbox.yml b/.github/workflows/sandbox.yml
index dc78d4b559..5b9a6056a4 100644
--- a/.github/workflows/sandbox.yml
+++ b/.github/workflows/sandbox.yml
@@ -62,60 +62,3 @@ jobs:
tags: ${{ steps.dind-names.outputs.tags }}
build-args: "FLYTE_VERSION=${{ steps.set_version.outputs.flyte_version }}"
file: docker/sandbox/Dockerfile
-
- trigger-sandbox-lite-build:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- fetch-depth: "0"
- - name: Setup Golang caches
- uses: actions/cache@v3
- with:
- path: |
- /root/.cache/go-build
- /root/go/pkg/mod
- key: ${{ runner.os }}-golang-${{ hashFiles('go.sum') }}
- restore-keys: |
- ${{ runner.os }}-golang-
- - name: Set flyte version to release
- id: set_version
- run: |
- if [ ${{ github.event_name}} = "release" ]; then
- echo ::set-output name=flyte_version::$(echo ${{ github.event.release.tag_name }})
- else
- echo ::set-output name=flyte_version::latest
- fi
- - name: Prepare DIND Image Names
- id: dind-names
- uses: docker/metadata-action@v3
- with:
- # list of Docker images to use as base name for tags
- images: |
- ghcr.io/${{ github.repository_owner }}/flyte-sandbox-lite
- tags: |
- ${{ steps.set_version.outputs.flyte_version }}
- type=sha,format=long
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v1
- - name: Set up Docker Buildx
- id: buildx
- uses: docker/setup-buildx-action@v1
- - name: Login to GitHub Container Registry
- if: ${{ github.event_name == 'release' }}
- uses: docker/login-action@v1
- with:
- registry: ghcr.io
- username: "${{ secrets.FLYTE_BOT_USERNAME }}"
- password: "${{ secrets.FLYTE_BOT_PAT }}"
- - name: Build and push DIND Image
- uses: docker/build-push-action@v2
- with:
- context: .
- platforms: linux/arm64, linux/amd64
- push: ${{ github.event_name == 'release' }}
- target: dind
- tags: ${{ steps.dind-names.outputs.tags }}
- build-args: "FLYTE_VERSION=${{ steps.set_version.outputs.flyte_version }}"
- file: Dockerfile.sandbox-lite
diff --git a/.github/workflows/single-binary.yml b/.github/workflows/single-binary.yml
index 9a2c19a52c..793a08e01b 100644
--- a/.github/workflows/single-binary.yml
+++ b/.github/workflows/single-binary.yml
@@ -156,7 +156,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
- python-version: "3.11"
+ python-version: "3.12"
- uses: unionai/flytectl-setup-action@v0.0.1
- name: Setup sandbox
run: |
@@ -181,17 +181,17 @@ jobs:
with:
repository: flyteorg/flytesnacks
path: flytesnacks
- # TODO: Enable this once refactored version produces a release tag
- # ref: ${{ env.FLYTESNACKS_VERSION }}
+ ref: ${{ env.FLYTESNACKS_VERSION }}
- name: Register specific tests
run: |
+ flytekit_version=$(pip show flytekit | grep -i version | awk '{ print $2 }')
while read -r line;
do
pyflyte --config ./boilerplate/flyte/end2end/functional-test-config.yaml \
register \
--project flytesnacks \
--domain development \
- --image cr.flyte.org/flyteorg/flytekit:py3.11-latest \
+ --image cr.flyte.org/flyteorg/flytekit:py3.12-${flytekit_version} \
--version ${{ env.FLYTESNACKS_VERSION }} \
flytesnacks/$line;
done < flytesnacks/flyte_tests.txt
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index aea9e0fabb..28813360de 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -27,20 +27,35 @@ jobs:
docs:
runs-on: ubuntu-latest
steps:
- - name: Fetch the code
+ - name: Fetch flyte code
+ uses: actions/checkout@v4
+ with:
+ path: "${{ github.workspace }}/flyte"
+ - name: Fetch flytekit code
uses: actions/checkout@v4
+ with:
+ repository: flyteorg/flytekit
+ path: "${{ github.workspace }}/flytekit"
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: 3.9
- shell: bash -el {0}
+ working-directory: ${{ github.workspace }}/flyte
run: |
conda install -c conda-forge conda-lock
conda-lock install -n monodocs-env monodocs-environment.lock.yaml
- shell: bash -el {0}
+ working-directory: ${{ github.workspace }}/flyte
run: |
conda activate monodocs-env
+ export SETUPTOOLS_SCM_PRETEND_VERSION="2.0.0"
pip install -e ./flyteidl
+ - shell: bash -el {0}
+ working-directory: ${{ github.workspace }}/flytekit
+ run: |
+ conda activate monodocs-env
+ pip install -e .
conda info
conda list
conda config --show-sources
@@ -49,21 +64,12 @@ jobs:
- name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v1
- name: Build the documentation
+ working-directory: ${{ github.workspace }}/flyte
shell: bash -el {0}
run: |
conda activate monodocs-env
make docs
- generate_kustomize:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-go@v2
- with:
- go-version: "1.21"
- - name: Kustomize and diff
- run: DELTA_CHECK=true make kustomize
-
generate_helm:
runs-on: ubuntu-latest
steps:
diff --git a/.github/workflows/validate-helm-charts.yaml b/.github/workflows/validate-helm-charts.yaml
new file mode 100644
index 0000000000..7b4ee9cce6
--- /dev/null
+++ b/.github/workflows/validate-helm-charts.yaml
@@ -0,0 +1,89 @@
+name: Validate helm charts & manifests
+
+on:
+ pull_request:
+ branches:
+ - master
+ paths:
+ - "charts/**"
+ - "deployment/**"
+ - "docker/sandbox-bundled/manifests/**"
+
+jobs:
+ lint-and-test-charts:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ sparse-checkout: charts
+
+ - name: Install Helm
+ uses: azure/setup-helm@v4
+
+ - name: Setup Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.10"
+ check-latest: true
+
+ - uses: unionai/flytectl-setup-action@v0.0.1
+ name: Setup flytectl
+
+ - name: Set up chart-testing
+ uses: helm/chart-testing-action@v2
+
+ - name: Detect charts changed (list-changed)
+ id: charts-changed
+ run: |
+ changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
+ if [[ -n "$changed" ]]; then
+ echo "changed=true" >> "$GITHUB_OUTPUT"
+ fi
+
+ - name: Run chart-testing (lint)
+ if: steps.charts-changed.outputs.changed == 'true'
+ run: |
+ ct lint \
+ --target-branch ${{ github.event.repository.default_branch }} \
+ --validate-maintainers=false \
+ --check-version-increment=false \
+ --chart-repos spark-operator=https://kubeflow.github.io/spark-operator \
+ --chart-repos dask=https://helm.dask.org \
+ --chart-repos bitnami=https://charts.bitnami.com/bitnami \
+ --chart-repos twuni=https://helm.twun.io \
+ --chart-repos kubernetes-dashboard=https://kubernetes.github.io/dashboard
+
+ validate-manifests:
+ needs:
+ - lint-and-test-charts
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ strategy:
+ matrix:
+ k8s_versions: [ "1.29.2", "1.28.7", "1.27.11" ]
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ sparse-checkout: |
+ deployment
+ docker/sandbox-bundled/manifests
+
+ - name: Install Helm
+ uses: azure/setup-helm@v4
+
+ - name: Install kubeconform
+ run: |
+ curl -L -o kubeconform.tar.gz https://github.com/yannh/kubeconform/releases/download/v0.6.4/kubeconform-linux-amd64.tar.gz
+ tar -zvxf kubeconform.tar.gz
+ chmod +x kubeconform
+ sudo mv kubeconform /usr/local/bin/kubeconform
+
+ - name: Validate manifests
+ run: |
+ kubeconform -strict -summary -skip CustomResourceDefinition -ignore-filename-pattern "deployment/stats/prometheus/*" -kubernetes-version ${{ matrix.k8s_versions }} ./deployment ./docker/sandbox-bundled/manifests
diff --git a/.gitignore b/.gitignore
index a8e78b52d6..301bf266a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,8 +20,6 @@ __pycache__/
/charts/flyteagent/Chart.lock
/charts/flyte-deps/Chart.lock
/charts/flyte-core/Chart.lock
-/docker/sandbox-lite/storage/charts
-/docker/sandbox-lite/storage/Chart.lock
**/*.bak-
.python-version
dist/
diff --git a/CHANGELOG/CHANGELOG-v0.11.0.md b/CHANGELOG/CHANGELOG-v0.11.0.md
index ab19f1e21a..f6008fc291 100644
--- a/CHANGELOG/CHANGELOG-v0.11.0.md
+++ b/CHANGELOG/CHANGELOG-v0.11.0.md
@@ -4,7 +4,7 @@
* New to flyte? https://start.flyte.org takes you through first run experience. (Thanks to @jeevb)
* [Grafana templates](https://docs.flyte.org/en/latest/howto/monitoring/index.html) for monitoring Flyte System and User Workflows.
* [Extend Flyte](https://docs.flyte.org/en/latest/plugins/index.html) docs.
-* [FlyteIdl Docs](https://docs.flyte.org/projects/flyteidl/en/latest/) are published! You can learn about the core language that makes it all work.
+* [FlyteIdl Docs](https://docs.flyte.org/en/latest/reference_flyteidl.html) are published! You can learn about the core language that makes it all work.
* [Additional knob](https://github.com/flyteorg/flytepropeller/pull/219/files#diff-91657d6448dfbf87f4cecf126ad02bd668ea233edcf74e860ef4f54bdd4cb552R78) for fine tuning flyte propeller performance that speeds up executions drastically.
* OidC support for Google Idp (And other OidC compliant Idps)
* Various stabilization bugs.
diff --git a/CHANGELOG/CHANGELOG-v0.14.0.md b/CHANGELOG/CHANGELOG-v0.14.0.md
index 344ccac919..d27dfcabda 100644
--- a/CHANGELOG/CHANGELOG-v0.14.0.md
+++ b/CHANGELOG/CHANGELOG-v0.14.0.md
@@ -11,7 +11,7 @@
- performance improvement for dynamic workflows
## Flyteconsole
- - Bug fixes
+ - Bug fixes
- More updates coming soon
## Flytekit
@@ -27,6 +27,6 @@
- More use case driven examples in flytesnacks
## flytectl
- - flytectl is ready for BETA. check it out - https://docs.flyte.org/projects/flytectl/en/latest/
+ - flytectl is ready for BETA. check it out - https://docs.flyte.org/en/latest/flytectl/overview.html
Please see the [flytekit release](https://github.com/flyteorg/flytekit/releases/tag/v0.18.0) for the full list and more details.
diff --git a/CHANGELOG/CHANGELOG-v0.17.0.md b/CHANGELOG/CHANGELOG-v0.17.0.md
index 1a7d951ae2..68c83e8479 100644
--- a/CHANGELOG/CHANGELOG-v0.17.0.md
+++ b/CHANGELOG/CHANGELOG-v0.17.0.md
@@ -1,16 +1,16 @@
# Flyte v0.17.0
## Platform
-1. Recovery Mode: Executions that fail due to external system failures (e.g. external system being down) can now be rerun in recovery mode ([flytectl --recover docs](https://docs.flyte.org/projects/flytectl/en/latest/gen/flytectl_create_execution.html)). It's also available in the UI:
+1. Recovery Mode: Executions that fail due to external system failures (e.g. external system being down) can now be rerun in recovery mode ([flytectl --recover docs](https://docs.flyte.org/en/latest/flytectl/gen/flytectl_create_execution.html)). It's also available in the UI:
## Flytekit
-1. Great Expectations Integration ([docs](https://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/flytekit_plugins/greatexpectations/index.html#great-expectations)).
+1. Great Expectations Integration ([docs](https://docs.flyte.org/en/latest/flytesnacks/examples/greatexpectations_plugin/index.html)).
1. Access to durable blob stores (AWS/GCS/etc) are now pluggable.
1. Local task execution has been updated to also trigger the type engine.
-1. Tasks that have `cache=True` should now be cached when running locally as well ([docs](https://docs.flyte.org/projects/cookbook/en/latest/auto/core/flyte_basics/task_cache.html#how-local-caching-works)).
+1. Tasks that have `cache=True` should now be cached when running locally as well ([docs](https://docs.flyte.org/en/latest/user_guide/development_lifecycle/caching.html#how-does-local-caching-work)).
Please see the [flytekit release](https://github.com/flyteorg/flytekit/releases/tag/v0.22.0) for the full list and more details.
@@ -20,7 +20,7 @@ Please see the [flytekit release](https://github.com/flyteorg/flytekit/releases/
1. JSON Validation for json-based types in the UI.
-
+
| Before | After |
| -------- | -------- |
@@ -32,7 +32,7 @@ Please see the [flytekit release](https://github.com/flyteorg/flytekit/releases/
## FlyteCtl
-1. `flytectl upgrade` to automatically upgrade itself ([docs](https://docs.flyte.org/projects/flytectl/en/latest/gen/flytectl_upgrade.html)).
+1. `flytectl upgrade` to automatically upgrade itself ([docs](https://docs.flyte.org/en/latest/flytectl/gen/flytectl_upgrade.html)).
1. `--dryRun` is available in most commands with server-side-effects to simulate the operations before committing any changes.
And various stabilization [fixes](https://github.com/flyteorg/flyte/milestone/17?closed=1)!
diff --git a/CHANGELOG/CHANGELOG-v0.5.0.md b/CHANGELOG/CHANGELOG-v0.5.0.md
index ed6d4bb6be..87a4831f7f 100644
--- a/CHANGELOG/CHANGELOG-v0.5.0.md
+++ b/CHANGELOG/CHANGELOG-v0.5.0.md
@@ -2,12 +2,12 @@
## Infrastructure
- Moved CI/CD to Github Actions
-- Added end-to-end tests as part of the PR & master merges.
+- Added end-to-end tests as part of the PR & master merges.
- Enable CI system to run on forks.
## Core Platform
-- [Single Task Execution](https://flyte.readthedocs.io/en/latest/user/features/single_task_execution.html) to enable registering and launching tasks outside the scope of a workflow to enable faster iteration and a more intuitive development workflow.
-- [Run to completion](https://flyte.readthedocs.io/en/latest/user/features/on_failure_policy.html) to enable workflows to continue executing even if one or more branches fail.
+- [Single Task Execution](https://docs.flyte.org/en/latest/user_guide/development_lifecycle/running_tasks.html) to enable registering and launching tasks outside the scope of a workflow to enable faster iteration and a more intuitive development workflow.
+- [Run to completion](https://docs.flyte.org/en/latest/protos/docs/core/core.html#ref-flyteidl-core-workflowmetadata-onfailurepolicy) to enable workflows to continue executing even if one or more branches fail.
- Fixed retries for dynamically yielded nodes.
- PreAlpha Support for Raw container with FlyteCoPilot. (docs coming soon). [Sample Notebooks](https://github.com/lyft/flytekit/blob/master/sample-notebooks/raw-container-shell.ipynb). This makes it possible to run workflows with arbitrary containers
diff --git a/CHANGELOG/CHANGELOG-v0.9.0.md b/CHANGELOG/CHANGELOG-v0.9.0.md
index 4b6b3fd8c5..c8654e0b39 100644
--- a/CHANGELOG/CHANGELOG-v0.9.0.md
+++ b/CHANGELOG/CHANGELOG-v0.9.0.md
@@ -1,7 +1,7 @@
### Flytekit
-* Fast register - code only changes no longer need a rebuild of the container to run ([read the docs!](https://flyte.readthedocs.io/en/latest/user/features/fast_registration.html))
+* [Fast register](https://docs.flyte.org/en/latest/flyte_fundamentals/registering_workflows.html) - code only changes no longer need a rebuild of the container to run.
* Project archive/activate command in flyte-cli
* Bug fixes and misc improvements
diff --git a/CHANGELOG/CHANGELOG-v1.1.0.md b/CHANGELOG/CHANGELOG-v1.1.0.md
index f6906a6a5e..9236270965 100644
--- a/CHANGELOG/CHANGELOG-v1.1.0.md
+++ b/CHANGELOG/CHANGELOG-v1.1.0.md
@@ -4,7 +4,7 @@
### User Improvements
Support for [Optional types](https://github.com/flyteorg/flyte/issues/2426). With the inclusion of Union types in flytekit, we can now support optional types.
-[Flyte Deck](https://github.com/flyteorg/flyte/issues/2175) is now available. Please take a look at the [documentation](https://docs.flyte.org/projects/cookbook/en/latest/auto/core/flyte_basics/deck.html#sphx-glr-auto-core-flyte-basics-deck-py) and also the [OSS presentation](https://www.youtube.com/watch?v=KqyBYIaAZ7c) that was done a few weeks back.
+[Flyte Deck](https://github.com/flyteorg/flyte/issues/2175) is now available. Please take a look at the [documentation](https://docs.flyte.org/en/latest/user_guide/development_lifecycle/decks.html) and also the [OSS presentation](https://www.youtube.com/watch?v=KqyBYIaAZ7c) that was done a few weeks back.
### Backend Improvements
diff --git a/CHANGELOG/CHANGELOG-v1.10.0.md b/CHANGELOG/CHANGELOG-v1.10.0.md
index 42c301ac2e..7791a6fd20 100644
--- a/CHANGELOG/CHANGELOG-v1.10.0.md
+++ b/CHANGELOG/CHANGELOG-v1.10.0.md
@@ -8,9 +8,9 @@ Programmatically consuming inputs and outputs using flyteremote became a lot eas
![Usage snippet](./images/v1.10.0-flyteconsole-programmatic-access.png)
-You'll now be able to use offloaded types in [eager workflows](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/eager_workflows.html#id1).
+You'll now be able to use offloaded types in [eager workflows](https://docs.flyte.org/en/latest/user_guide/advanced_composition/eager_workflows.html).
-More ergonomic improvements to [pyflyte](https://docs.flyte.org/projects/flytekit/en/latest/pyflyte.html#pyflyte-cli), including the inclusion of a progress bar, the ability to activate launchplans, and the ability to interact with gate nodes in local executions.
+More ergonomic improvements to [pyflyte](https://docs.flyte.org/en/latest/api/flytekit/pyflyte.html), including the inclusion of a progress bar, the ability to activate launchplans, and the ability to interact with gate nodes in local executions.
And much more. Here's the exhaustive list of changes:
diff --git a/CHANGELOG/CHANGELOG-v1.10.7.md b/CHANGELOG/CHANGELOG-v1.10.7.md
new file mode 100644
index 0000000000..66d0ee7576
--- /dev/null
+++ b/CHANGELOG/CHANGELOG-v1.10.7.md
@@ -0,0 +1,184 @@
+# Flyte 1.10.7 Release Notes
+
+We're excited to share the release of Flyte 1.10.7, featuring a broad spectrum of updates, improvements, and bug fixes across the Flyte ecosystem. This release marks a pivotal shift in our development approach, notably with our adoption of [buf](https://github.com/flyteorg/flyte/pull/4806) for protobuf stub generation. This move optimizes our development workflow and discontinues the automatic creation of Java and C++ stubs, making it easier to adapt the generated code for other languages as needed. Additionally, we've upgraded to gRPC-gateway v2, aligning with the latest advancements and recommendations found in the [v2 migration guide](https://grpc-ecosystem.github.io/grpc-gateway/docs/development/grpc-gateway_v2_migration_guide/).
+
+Our sincere gratitude goes to all contributors for their invaluable efforts towards this release.
+
+## Core Improvements and Bug Fixes
+
+- Improved error handling for transient secret sync issues, enhancing the robustness of secret management. [[PR #4310]](https://github.com/flyteorg/flyte/pull/4310)
+- Introduced Sphinx build for Monodocs, improving documentation generation and integration. [[PR #4347]](https://github.com/flyteorg/flyte/pull/4347)
+- Enhanced the Spark plugin by fixing the environment variable `ValueFrom` for pod templates, allowing for more dynamic configurations. [[PR #4532]](https://github.com/flyteorg/flyte/pull/4532)
+- Optimized fastcache behavior to not cache lookups on node skip, reducing unnecessary cache hits. [[PR #4524]](https://github.com/flyteorg/flyte/pull/4524)
+- Removed composition errors from branch nodes, streamlining execution paths. [[PR #4528]](https://github.com/flyteorg/flyte/pull/4528)
+- Added support for ignoring warnings related to AWS SageMaker imports, improving integration compatibility. [[PR #4540]](https://github.com/flyteorg/flyte/pull/4540)
+- Fixed a bug related to setting the service account from PodTemplate, ensuring correct service account usage. [[PR #4536]](https://github.com/flyteorg/flyte/pull/4536)
+- Addressed flaky tests in test_monitor, enhancing test reliability. [[PR #4537]](https://github.com/flyteorg/flyte/pull/4537)
+- Updated the boilerplate version and contribution guide, facilitating better community contributions. [[PR #4541]](https://github.com/flyteorg/flyte/pull/4541), [[PR #4501]](https://github.com/flyteorg/flyte/pull/4501)
+- Improved documentation build processes by manually creating version files and introducing a conda-lock file for consistent environment setup. [[PR #4556]](https://github.com/flyteorg/flyte/pull/4556), [[PR #4553]](https://github.com/flyteorg/flyte/pull/4553)
+- Enhanced array node evaluation frequency optimization by detecting subNode phase updates. [[PR #4535]](https://github.com/flyteorg/flyte/pull/4535)
+- Introduced support for failure nodes, allowing workflows to handle failures more gracefully. [[PR #4308]](https://github.com/flyteorg/flyte/pull/4308)
+- Made various updates to Go versions, plugin integrations, and GitHub workflows to enhance performance and developer experience. [[PR #4534]](https://github.com/flyteorg/flyte/pull/4534), [[PR #4582]](https://github.com/flyteorg/flyte/pull/4582), [[PR #4589]](https://github.com/flyteorg/flyte/pull/4589)
+- Addressed several bugs and made improvements in caching, metadata handling, and task execution, further stabilizing the Flyte platform. [[PR #4594]](https://github.com/flyteorg/flyte/pull/4594), [[PR #4590]](https://github.com/flyteorg/flyte/pull/4590), [[PR #4607]](https://github.com/flyteorg/flyte/pull/4607)
+- Streamlined development workflow with the transition to buf for generating protobuf stubs, ceasing the automatic generation of Java and C++ stubs.
+- Upgraded to grpc-gateway v2, optimizing API performance and compatibility.
+
+## Plugin and Integration Enhancements
+
+- Added new features and fixed bugs in the Spark plugin, Ray Autoscaler integration, and other areas, expanding Flyte's capabilities and integration ecosystem. [[PR #4363]](https://github.com/flyteorg/flyte/pull/4363)
+- Updated various dependencies and configurations, ensuring compatibility and security. [[PR #4571]](https://github.com/flyteorg/flyte/pull/4571), [[PR #4643]](https://github.com/flyteorg/flyte/pull/4643)
+- Improved the handling and documentation of plugin secrets management, making it easier for users to manage sensitive information. [[PR #4732]](https://github.com/flyteorg/flyte/pull/4732)
+
+## Documentation and Community
+
+- Updated community meeting cadence and contribution guidelines, fostering a more engaged and welcoming community. [[PR #4699]](https://github.com/flyteorg/flyte/pull/4699)
+- Enhanced documentation through various updates, including the introduction of a new architecture image for FlytePlugins and clarification of propeller scaling. [[PR #4661]](https://github.com/flyteorg/flyte/pull/4661), [[PR #4741]](https://github.com/flyteorg/flyte/pull/4741)
+
+## Full Changelog
+- Fix transient secret sync error handling by @Tom-Newton in https://github.com/flyteorg/flyte/pull/4310
+- Monodocs sphinx build by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4347
+- [Spark plugin] Fix environment variable ValueFrom for pod templates by @Tom-Newton in https://github.com/flyteorg/flyte/pull/4532
+- fastcache should not cache lookup on node skip by @hamersaw in https://github.com/flyteorg/flyte/pull/4524
+- Removed composition error from branch node by @hamersaw in https://github.com/flyteorg/flyte/pull/4528
+- ignore warnings related to awssagemaker import by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4540
+- [BUG] Fix setting of service_account from PodTemplate by @pvditt in https://github.com/flyteorg/flyte/pull/4536
+- Fix flaky test_monitor by @pingsutw in https://github.com/flyteorg/flyte/pull/4537
+- Update boilerplate version by @flyte-bot in https://github.com/flyteorg/flyte/pull/4541
+- remove hardcoded list of tests by @samhita-alla in https://github.com/flyteorg/flyte/pull/4521
+- manually create flytekit/_version.py file in docs build by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4556
+- introduce conda-lock file for docs by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4553
+- Detect subNode phase updates to reduce evaluation frequency of ArrayNode by @hamersaw in https://github.com/flyteorg/flyte/pull/4535
+- Add support failure node by @pingsutw in https://github.com/flyteorg/flyte/pull/4308
+- Return InvalidArgument for workflow compilation failures in CreateWorkflow by @katrogan in https://github.com/flyteorg/flyte/pull/4566
+- Update to go 1.21 by @eapolinario in https://github.com/flyteorg/flyte/pull/4534
+- Update contribution guide by @pingsutw in https://github.com/flyteorg/flyte/pull/4501
+- Add flyin plugin to monodocs integrations page by @neverett in https://github.com/flyteorg/flyte/pull/4582
+- Use updated cronSchedule in CreateLaunchPlanModel by @pmahindrakar-oss in https://github.com/flyteorg/flyte/pull/4564
+- Writing zero length inputs by @hamersaw in https://github.com/flyteorg/flyte/pull/4594
+- Feature/add pod pending timeout config by @pvditt in https://github.com/flyteorg/flyte/pull/4590
+- Run single-binary gh workflows on all PRs by @eapolinario in https://github.com/flyteorg/flyte/pull/4589
+- auto-generate toctree from flytesnacks index.md docs by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4587
+- add repo tag and commit associated with the build by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4571
+- monodocs - gracefully handle case when external repo doesn't contain tags: use current commit by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4598
+- convert commit to string by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4599
+- Bug/abort map task subtasks by @pvditt in https://github.com/flyteorg/flyte/pull/4506
+- Supporting parallelized workers in ArrayNode subNodes by @hamersaw in https://github.com/flyteorg/flyte/pull/4567
+- Don't use experimental readthedocs build.commands config by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4606
+- Ignore cache variables by @hamersaw in https://github.com/flyteorg/flyte/pull/4618
+- Feature/add cleanup non recoverable pod statuses by @pvditt in https://github.com/flyteorg/flyte/pull/4607
+- Agent Metadata Servicer by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4511
+- Add Flyin propeller config by @eapolinario in https://github.com/flyteorg/flyte/pull/4610
+- Correctly computing ArrayNode maximum attempts and system failures by @hamersaw in https://github.com/flyteorg/flyte/pull/4627
+- Agent Sync Plugin by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4107
+- Add github token in buf gh action by @eapolinario in https://github.com/flyteorg/flyte/pull/4626
+- Update flyte-binary values by @davidmirror-ops in https://github.com/flyteorg/flyte/pull/4604
+- Fixing cache overwrite metadata update by @hamersaw in https://github.com/flyteorg/flyte/pull/4617
+- Fixing 100 kilobyte max error message size by @hamersaw in https://github.com/flyteorg/flyte/pull/4631
+- Add Ray Autoscaler to the Flyte-Ray plugin by @Yicheng-Lu-llll in https://github.com/flyteorg/flyte/pull/4363
+- Artifact protos and related changes by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4474
+- Remove protoc-gen-validate by @eapolinario in https://github.com/flyteorg/flyte/pull/4643
+- Readme update 2023 by @davidmirror-ops in https://github.com/flyteorg/flyte/pull/4549
+- Fixing ArrayNode integration with backoff controller by @hamersaw in https://github.com/flyteorg/flyte/pull/4640
+- Avoid to use the http.DefaultClient by @andresgomezfrr in https://github.com/flyteorg/flyte/pull/4667
+- Update dns policy for sandbox buildkit instance to ClusterFirstWithHo… by @jeevb in https://github.com/flyteorg/flyte/pull/4678
+- Updating ArrayNode ExternalResourceInfo ID by @hamersaw in https://github.com/flyteorg/flyte/pull/4677
+- Feat: Inject user identity as pod label in K8s plugin by @fg91 in https://github.com/flyteorg/flyte/pull/4637
+- Artifacts shell 2 by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4649
+- Improve Agent Metadata Service Error Message by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4682
+- move pod start/end time to a common template vars by @vraiyaninv in https://github.com/flyteorg/flyte/pull/4676
+- switch readthedocs config to monodocs build by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4687
+- Update Flyte components by @flyte-bot in https://github.com/flyteorg/flyte/pull/4690
+- Add GetTaskMetrics and GetTaskLogs to agent by @pingsutw in https://github.com/flyteorg/flyte/pull/4662
+- add algolia searchbar by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4696
+- monodocs: do not use beta releases when importing projects by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4712
+- add cache evicted status by @pvditt in https://github.com/flyteorg/flyte/pull/4705
+- Update community meeting cadence by @davidmirror-ops in https://github.com/flyteorg/flyte/pull/4699
+- Remove dockerfiles from subfolder by @pingsutw in https://github.com/flyteorg/flyte/pull/4715
+- Update to artifact idl - Add List Usage endpoint by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4714
+- monodocs uses flytekit/flytectl index rst file by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4720
+- Replace grpc gateway endpoints with post by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4717
+- [BUG] Retry fetching subworkflow output data on failure by @pvditt in https://github.com/flyteorg/flyte/pull/4602
+- Option to clear node state on any termination by @Tom-Newton in https://github.com/flyteorg/flyte/pull/4596
+- Add org to identifier protos by @katrogan in https://github.com/flyteorg/flyte/pull/4663
+- Update docs for plugin secrets management by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4732
+- Reintroduce k8s client fallback to cache lookups by @hamersaw in https://github.com/flyteorg/flyte/pull/4733
+- Remove unused validate files by @eapolinario in https://github.com/flyteorg/flyte/pull/4644
+- delete old docs by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4742
+- Docs/Clarify propeller scaling by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4741
+- Update Flyte components by @flyte-bot in https://github.com/flyteorg/flyte/pull/4744
+- Add org to all flyteadmin endpoints for consistency by @katrogan in https://github.com/flyteorg/flyte/pull/4746
+- update conda lock file by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4749
+- Use logger with formatter by @andrewwdye in https://github.com/flyteorg/flyte/pull/4747
+- [housekeeping] Remove pull_request_template from each subdirectory by @pingsutw in https://github.com/flyteorg/flyte/pull/4753
+- [Docs] Reapply Databricks agent docs changes from #4008 by @neverett in https://github.com/flyteorg/flyte/pull/4751
+- Fix test get logs template uri test by @eapolinario in https://github.com/flyteorg/flyte/pull/4760
+- Small formatting fixes for Databrick agents docs by @neverett in https://github.com/flyteorg/flyte/pull/4758
+- [housekeeping] Remove flytearchives by @pingsutw in https://github.com/flyteorg/flyte/pull/4761
+- Guard against open redirect URL parameters in login by @katrogan in https://github.com/flyteorg/flyte/pull/4763
+- Wrapping k8s client with write filter and cache reader by @hamersaw in https://github.com/flyteorg/flyte/pull/4752
+- [BUG] Handle Potential Indefinite Propeller Update Loops by @pvditt in https://github.com/flyteorg/flyte/pull/4755
+- Update Flyte components by @flyte-bot in https://github.com/flyteorg/flyte/pull/4768
+- Deprecated Agent State to Agent Phase by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4738
+- Add docs build process readme by @ppiegaze in https://github.com/flyteorg/flyte/pull/4772
+- GetDynamicNodeWorkflow endpoint by @iaroslav-ciupin in https://github.com/flyteorg/flyte/pull/4689
+- [BUG] subworkflow timeout propagation by @pvditt in https://github.com/flyteorg/flyte/pull/4766
+- Update artifact IDL with new time partition by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4737
+- Proto changes by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4778
+- Updates for onboarding docs revamp by @neverett in https://github.com/flyteorg/flyte/pull/4548
+- [Docs] Fix toctree links to User Guide, Environment Setup, and Contributing sections by @neverett in https://github.com/flyteorg/flyte/pull/4781
+- docs: add FlytePlugins architecture image by @jasonlai1218 in https://github.com/flyteorg/flyte/pull/4661
+- Fix repeated items in left nav by @ppiegaze in https://github.com/flyteorg/flyte/pull/4783
+- [Docs] Remove broken link from Understand How Flyte Handles Data page (for new monodocs site) (second attempt) by @neverett in https://github.com/flyteorg/flyte/pull/4757
+- docs: update Flyte sandbox configuration and documentation by @jasonlai1218 in https://github.com/flyteorg/flyte/pull/4729
+- Replace `Storage` To `Ephemeral Storage` in Helm Chart by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4782
+- Fix webhook typo, add podLabels, add podEnv to flyte-core Helm chart by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4756
+- Dynamic log links by @eapolinario in https://github.com/flyteorg/flyte/pull/4774
+- Remove storage as a task resource option by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4658
+- feat: add apache 2.0 license to python flyteidl by @michaeltinsley in https://github.com/flyteorg/flyte/pull/4786
+- Reduce maptask transitions between WaitingForResources and CheckingSubtaskExecutions by @hamersaw in https://github.com/flyteorg/flyte/pull/4790
+- propeller gc ttl comparison should allow 23 by @hamersaw in https://github.com/flyteorg/flyte/pull/4791
+- Bring Scheme back for backwards compatibility by @eapolinario in https://github.com/flyteorg/flyte/pull/4789
+- Pass secret to invocation of go_generate gh workflow by @eapolinario in https://github.com/flyteorg/flyte/pull/4630
+- [BUG] handle potential uncaught OOMKilled terminations by @pvditt in https://github.com/flyteorg/flyte/pull/4793
+- Update additional bindings for org in path to be consistent by @katrogan in https://github.com/flyteorg/flyte/pull/4795
+- Update pyflyte serve into pyflyte serve agent by @chaohengstudent in https://github.com/flyteorg/flyte/pull/4526
+- Agent ClientSet by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4718
+- Support kuberay v1.0.0 by @Yicheng-Lu-llll in https://github.com/flyteorg/flyte/pull/4656
+- Update Flyte components by @flyte-bot in https://github.com/flyteorg/flyte/pull/4803
+- install latest flyteidl when building monodocs by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4815
+- Rewrite GetExecutionData path additional bindings for org by @katrogan in https://github.com/flyteorg/flyte/pull/4816
+- update docs README environment setup by @cosmicBboy in https://github.com/flyteorg/flyte/pull/4819
+- Flyte-core add missing nodeSelector values by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4808
+- Flyte-core add missing imagePullSecrets support by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4810
+- Logger disable HTML escaping by @andrewwdye in https://github.com/flyteorg/flyte/pull/4828
+- Move intro docs from flytesnacks to flyte by @ppiegaze in https://github.com/flyteorg/flyte/pull/4814
+- Flyte-agent configure pod securityContext by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4785
+- [Docs] add sandbox to local cluster resource path by @wild-endeavor in https://github.com/flyteorg/flyte/pull/4837
+- Flyte-core add missing podEnv values by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4807
+- Flyte-core Expose propeller webhook port 9443 in charts by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4804
+- Align dir structure and URL structure with left nav hierarchy by @ppiegaze in https://github.com/flyteorg/flyte/pull/4843
+- Generate version with setuptools_scm and migrate to pyproject.toml by @pingsutw in https://github.com/flyteorg/flyte/pull/4799
+- MNT Fixes packaging for flyteidl wheel by @thomasjpfan in https://github.com/flyteorg/flyte/pull/4846
+- Use buf to generate stubs by @eapolinario in https://github.com/flyteorg/flyte/pull/4806
+- [FLYTE-486] Support selecting IDP based on the query parameter by @pmahindrakar-oss in https://github.com/flyteorg/flyte/pull/4838
+- Update Flyte components by @flyte-bot in https://github.com/flyteorg/flyte/pull/4847
+- Add plugin_config for agent by @pingsutw in https://github.com/flyteorg/flyte/pull/4848
+- Adds MANIFEST.in for flyteidl by @thomasjpfan in https://github.com/flyteorg/flyte/pull/4850
+- Verify unbounded inputs for all scheduled launch plan types by @katrogan in https://github.com/flyteorg/flyte/pull/4867
+- Fix npm publish of flyteidl package by @eapolinario in https://github.com/flyteorg/flyte/pull/4861
+- Remove protoc_gen_swagger by @eapolinario in https://github.com/flyteorg/flyte/pull/4860
+- Create CODEOWNERS file and add docs team by @neverett in https://github.com/flyteorg/flyte/pull/4857
+- [Docs] update outdated link to on-prem tutorial by @ALMerrill in https://github.com/flyteorg/flyte/pull/4868
+- Re-add link to hosted sandbox by @neverett in https://github.com/flyteorg/flyte/pull/4856
+- Fix asterisk in cron table being rendered as list item by @neverett in https://github.com/flyteorg/flyte/pull/4836
+- Add notes to selfAuth with Azure docs by @davidmirror-ops in https://github.com/flyteorg/flyte/pull/4835
+- Add protos to support cache overrides by @hamersaw in https://github.com/flyteorg/flyte/pull/4820
+- Flyte-core add support for ingressClassName in ingress by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4805
+- Update flyte docs build directions by @ppiegaze in https://github.com/flyteorg/flyte/pull/4862
+- Replaced deprecated bitnami/bitnami-shell image with bitnami/os-shell by @kamaleybov in https://github.com/flyteorg/flyte/pull/4882
+- Flyte-core define pod and container securityContext by @ddl-ebrown in https://github.com/flyteorg/flyte/pull/4809
+- Leverage KubeRay v1 instead of v1alpha1 for resources by @peterghaddad in https://github.com/flyteorg/flyte/pull/4818
+
+## New Contributors
+
+- A warm welcome to our new contributors: [@pvditt](https://github.com/pvditt), [@ppiegaze](https://github.com/ppiegaze), [@jasonlai1218](https://github.com/jasonlai1218), and [@ddl-ebrown](https://github.com/ddl-ebrown). Thank you for your contributions to the Flyte community!
diff --git a/CHANGELOG/CHANGELOG-v1.11.0-b0.md b/CHANGELOG/CHANGELOG-v1.11.0-b0.md
new file mode 100644
index 0000000000..4d5e5ccb14
--- /dev/null
+++ b/CHANGELOG/CHANGELOG-v1.11.0-b0.md
@@ -0,0 +1,3 @@
+# Flyte v1.11.0-b0
+
+Beta release to test new idl
\ No newline at end of file
diff --git a/CHANGELOG/CHANGELOG-v1.11.0-b1.md b/CHANGELOG/CHANGELOG-v1.11.0-b1.md
new file mode 100644
index 0000000000..be0c9414a2
--- /dev/null
+++ b/CHANGELOG/CHANGELOG-v1.11.0-b1.md
@@ -0,0 +1,3 @@
+# Flyte v1.11.0-b1
+
+Second beta release for 1.11.0.
\ No newline at end of file
diff --git a/CHANGELOG/CHANGELOG-v1.11.0.md b/CHANGELOG/CHANGELOG-v1.11.0.md
new file mode 100644
index 0000000000..2c57665489
--- /dev/null
+++ b/CHANGELOG/CHANGELOG-v1.11.0.md
@@ -0,0 +1,32 @@
+# Flyte v1.11.0 Release Notes
+
+We're excited to announce the release of Flyte v1.11.0! This version brings a host of improvements, bug fixes, and new features designed to enhance your experience with Flyte. From operational enhancements to documentation updates, this release aims to make Flyte more robust, user-friendly, and feature-rich.
+
+## Highlights
+
+- **Agents hit General Availability (GA):** Agents, now in General Availability, are long-running, stateless services that facilitate asynchronous job launches on platforms like Databricks or Snowflake and enable external service calls. They are versatile, supporting implementations in any language through a protobuf interface, enhancing Flyte's flexibility and operational efficiency.
+- **Improved Caching:** Support for loading cached sublists with multiple data types has been introduced, eliminating issues related to cache retrieval across varied data formats.
+- **Tracing and Observability:** The introduction of opentelemetry BlobstoreClientTracer in flyteadmin enhances observability, allowing for better monitoring and troubleshooting.
+- **Security Enhancements:** Added securityContext configuration to Flyte-core charts, strengthening the security posture of Flyte deployments.
+- **Documentation Overhaul:** Continuous improvements and updates have been made to the documentation, fixing broken links and updating content for better clarity and usability.
+- **Operational Improvements:** This release introduces enhancements such as adding a service account for V1 Ray Jobs, caching console assets in a single binary, and conditional mounting of secrets to improve the operational efficiency of Flyte. Additionally, we are removing `kustomize` from our deployment process to simplify the configuration and management of Flyte instances, making it easier for users to maintain and streamline their deployment workflows.
+
+
+## Bug Fixes
+
+- **Fixed Literal in Launchplan:** Added fixed_literal to the launchplan template, addressing issues with hardcoded values in workflows.
+- **Corrected Metadata and Resources:** Fixes have been applied to correct IsParent metadata in ArrayNode eventing and to address invalid "resources" scope issues in deployment configurations.
+- **Enhanced Stability and Performance:** Numerous bug fixes have been implemented to address stability and performance issues, including fixes for data catalog errors, yaml comment errors in pod template examples, and more.
+
+## Documentation and Guides
+
+- **Comprehensive Guides:** New guides and documentation updates have been added, including a ChatGPT Agent Setup guide and an Airflow migration guide. Improvements in documentation for developing agents have been integrated into the broader enhancements for this release.
+- **Updated Troubleshooting and Configuration Docs:** New troubleshooting guides for spark task execution and updates to deployment configuration documents enhance the knowledge base for Flyte users.
+
+## Contributors
+
+We extend our deepest gratitude to all the contributors who made this release possible. Special shoutouts to @neilisaur, @lowc1012, @MortalHappiness, @novahow, and @pryce-turner for making their first contributions!
+
+**For a full list of changes, enhancements, and bug fixes, visit our [changelog](https://github.com/flyteorg/flyte/compare/v1.10.7...v1.11.0).**
+
+Thank you for your continued support of Flyte. We look forward to hearing your feedback on this release!
diff --git a/CHANGELOG/CHANGELOG-v1.11.1-b0.md b/CHANGELOG/CHANGELOG-v1.11.1-b0.md
new file mode 100644
index 0000000000..beac63ff0f
--- /dev/null
+++ b/CHANGELOG/CHANGELOG-v1.11.1-b0.md
@@ -0,0 +1,2 @@
+# Flyte v1.11.1-b0
+
diff --git a/CHANGELOG/CHANGELOG-v1.2.0.md b/CHANGELOG/CHANGELOG-v1.2.0.md
index 4dbd2f3a2a..d83bfa4f28 100644
--- a/CHANGELOG/CHANGELOG-v1.2.0.md
+++ b/CHANGELOG/CHANGELOG-v1.2.0.md
@@ -1,7 +1,7 @@
# Flyte 1.2 Release
## Platform
-- Support for Ray (https://github.com/flyteorg/flyte/issues/2641) - Also see the [blog post](https://blog.flyte.org/ray-and-flyte).
+- Support for Ray (https://github.com/flyteorg/flyte/issues/2641) - Also see the [blog post](https://blog.flyte.org/ray-and-flyte).
- Execution names can be longer now, up to 63 characters (https://github.com/flyteorg/flyteadmin/pull/466)
- Offloading FlyteWorkflow CRD static workflow spec (https://github.com/flyteorg/flyte/issues/2705)
- Enabled FlytePropeller subqueue - this means that every time a pod is updated in the workflow it reevals for faster downstream scheduling
@@ -18,9 +18,9 @@
- dbt plugin (https://github.com/flyteorg/flyte/issues/2202)
- cache overriding behavior is now open to all types (https://github.com/flyteorg/flyte/issues/2912)
- Bug: Fallback to pickling in the case of unknown types used Unions (https://github.com/flyteorg/flyte/issues/2823)
-- [pyflyte run](https://docs.flyte.org/projects/flytekit/en/latest/design/clis.html#pyflyte-run) now supports [imperative workflows](https://docs.flyte.org/projects/cookbook/en/latest/auto/core/flyte_basics/imperative_wf_style.html#sphx-glr-auto-core-flyte-basics-imperative-wf-style-py)
+- [pyflyte run](https://docs.flyte.org/en/latest/api/flytekit/design/clis.html#pyflyte-run) now supports [imperative workflows](https://docs.flyte.org/en/latest/user_guide/basics/imperative_workflows.html)
- Newlines are now stripped from client secrets (https://github.com/flyteorg/flytekit/pull/1163)
-- Ensure repeatability in the generation of cache keys in the case of dictionaries (https://github.com/flyteorg/flytekit/pull/1126)
+- Ensure repeatability in the generation of cache keys in the case of dictionaries (https://github.com/flyteorg/flytekit/pull/1126)
- Support for multiple images in the yaml config file (https://github.com/flyteorg/flytekit/pull/1106)
And more. See the full changelog in https://github.com/flyteorg/flytekit/releases/tag/v1.2.0
@@ -29,7 +29,7 @@ And more. See the full changelog in https://github.com/flyteorg/flytekit/release
## Flyteconsole
- fix: Make sure groups used in graph aren't undefined [#545](https://github.com/flyteorg/flyteconsole/pull/545)
- fix: Graph Center on initial render [#541](https://github.com/flyteorg/flyteconsole/pull/541)
-- fix: Graph edge overlaps nodes [#542](https://github.com/flyteorg/flyteconsole/pull/542)
+- fix: Graph edge overlaps nodes [#542](https://github.com/flyteorg/flyteconsole/pull/542)
- Fix searchbar X button [#564](https://github.com/flyteorg/flyteconsole/pull/564)
- fix: Update timeline view to show dynamic wf internals on first render [#562](https://github.com/flyteorg/flyteconsole/pull/562)
- fix: Webmanifest missing crossorigin attribute [#566](https://github.com/flyteorg/flyteconsole/pull/566)
diff --git a/CHANGELOG/CHANGELOG-v1.3.0.md b/CHANGELOG/CHANGELOG-v1.3.0.md
index c710af9334..c15224d4a6 100644
--- a/CHANGELOG/CHANGELOG-v1.3.0.md
+++ b/CHANGELOG/CHANGELOG-v1.3.0.md
@@ -99,7 +99,7 @@ Users can now configure workflow execution to overwrite the cache. Each task in
### Support for Dask
-Users will be able to spawn [Dask](https://www.dask.org/) ephemeral clusters as part of their workflows, similar to the support for [Ray](https://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/kubernetes/ray_example/ray_example.html#sphx-glr-auto-integrations-kubernetes-ray-example-ray-example-py) and [Spark](https://docs.flyte.org/projects/cookbook/en/stable/auto/integrations/kubernetes/k8s_spark/pyspark_pi.html).
+Users will be able to spawn [Dask](https://www.dask.org/) ephemeral clusters as part of their workflows, similar to the support for [Ray](https://docs.flyte.org/en/latest/flytesnacks/examples/ray_plugin/index.html) and [Spark](https://docs.flyte.org/en/latest/flytesnacks/examples/k8s_spark_plugin/index.html).
## Looking Ahead
diff --git a/CHANGELOG/CHANGELOG-v1.5.0.md b/CHANGELOG/CHANGELOG-v1.5.0.md
index 718cb6f61a..1cd809c867 100644
--- a/CHANGELOG/CHANGELOG-v1.5.0.md
+++ b/CHANGELOG/CHANGELOG-v1.5.0.md
@@ -11,9 +11,9 @@ Several bug fixes, including:
- [Split flyte-binary services into http and grpc in helm charts](https://github.com/flyteorg/flyte/pull/3518)
### Database Migrations
-One of the improvements planned requires us to clean up our database migrations. We have done so in this release so you should see a series of new migrations.
-These should have zero impact if you are otherwise up-to-date on migrations (which is why they are all labeled `noop`) but please be aware that it will add a minute or so to the
-init container/command that runs the migrations in the default Helm charts. Notably, because these should be a no-op, they also do not come with any rollback commands.
+One of the improvements planned requires us to clean up our database migrations. We have done so in this release so you should see a series of new migrations.
+These should have zero impact if you are otherwise up-to-date on migrations (which is why they are all labeled `noop`) but please be aware that it will add a minute or so to the
+init container/command that runs the migrations in the default Helm charts. Notably, because these should be a no-op, they also do not come with any rollback commands.
If you experience any issues, please let us know.
## Flytekit
@@ -21,7 +21,7 @@ If you experience any issues, please let us know.
Python 3.11 is now officially supported.
### Revamped Data subsystem
-The data persistence layer was completely revamped. We now rely exclusively on [fsspec](https://filesystem-spec.readthedocs.io/en/latest/) to handle IO.
+The data persistence layer was completely revamped. We now rely exclusively on [fsspec](https://filesystem-spec.readthedocs.io/en/latest/) to handle IO.
Most users will benefit from a more performant IO subsystem, in other words,
no change is needed in user code.
@@ -46,14 +46,14 @@ def copy_file(ff: FlyteFile) -> FlyteFile:
This feature is marked as experimental. We'd love feedback on the API!
### Limited support for partial tasks
-We can use [functools.partial](https://docs.python.org/3/library/functools.html#functools.partial) to "freeze"
+We can use [functools.partial](https://docs.python.org/3/library/functools.html#functools.partial) to "freeze"
some task arguments. Let's take a look at an example where we partially fix the parameter for a task:
```
@task
def t1(a: int, b: str) -> str:
return f"{a} -> {b}"
-
+
t1_fixed_b = functools.partial(t1, b="hello")
@workflow
@@ -63,7 +63,7 @@ def wf(a: int) -> str:
Notice how calls to `t1_fixed_b` do not need to specify the `b` parameter.
-This also works for [MapTasks](https://docs.flyte.org/projects/cookbook/en/latest/auto/core/control_flow/map_task.html#sphx-glr-auto-core-control-flow-map-task-py) in a limited capacity. For example:
+This also works for [Map Tasks](https://docs.flyte.org/en/latest/user_guide/advanced_composition/map_tasks.html) in a limited capacity. For example:
```
from flytekit import task, workflow, partial, map_task
@@ -78,7 +78,7 @@ def wf(y: List[float]):
return map_task(partial_t1)(y=y)
```
-We are currently seeking feedback on this feature, and as a result, it is labeled as experimental for now.
+We are currently seeking feedback on this feature, and as a result, it is labeled as experimental for now.
Also worth mentioning that fixing parameters of type list is not currently supported. For example, if we try to register this workflow:
@@ -107,5 +107,5 @@ Map tasks do not support partial tasks with lists as inputs.
## Flyteconsole
-Multiple bug fixes around [waiting for external inputs](https://docs.flyte.org/projects/cookbook/en/latest/auto/core/control_flow/waiting_for_external_inputs.html#waiting-for-external-inputs).
+Multiple bug fixes around [waiting for external inputs](https://docs.flyte.org/en/latest/user_guide/advanced_composition/waiting_for_external_inputs.html).
Better support for dataclasses in the launch form.
diff --git a/CHANGELOG/CHANGELOG-v1.9.0.md b/CHANGELOG/CHANGELOG-v1.9.0.md
index 47c62b92a3..dd7a8f93a3 100644
--- a/CHANGELOG/CHANGELOG-v1.9.0.md
+++ b/CHANGELOG/CHANGELOG-v1.9.0.md
@@ -1,11 +1,11 @@
# Flyte v1.9.0 Release
-In this release we're announcing two experimental features, namely (1) ArrayNode map tasks, and (2) Execution Tags.
+In this release we're announcing two experimental features, namely (1) ArrayNode map tasks, and (2) Execution Tags.
### ArrayNode map tasks
-ArrayNodes are described more fully in [RFC 3346](https://github.com/flyteorg/flyte/blob/master/rfc/system/3346-array-node.md), but the summary is that ArrayNode map tasks are a drop-in replacement for [regular map tasks](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/control_flow/map_task.html#map-tasks), the only difference being the submodule used to import the `map_task` function.
+ArrayNodes are described more fully in [RFC 3346](https://github.com/flyteorg/flyte/blob/master/rfc/system/3346-array-node.md), but the summary is that ArrayNode map tasks are a drop-in replacement for [regular map tasks](https://docs.flyte.org/en/latest/user-guide/advanced_composition/map_tasks.html), the only difference being the submodule used to import the `map_task` function.
More explicitly, let's say you have this code:
```python
@@ -15,7 +15,7 @@ from flytekit import map_task, task, workflow
@task
def t(a: int) -> int:
...
-
+
@workflow
def wf(xs: List[int]) -> List[int]:
return map_task(t)(a=xs)
@@ -31,7 +31,7 @@ from flytekit.experimental import map_task
@task
def t(a: int) -> int:
...
-
+
@workflow
def wf(xs: List[int]) -> List[int]:
return map_task(t)(a=xs)
@@ -42,7 +42,7 @@ def wf(xs: List[int]) -> List[int]:
Execution tags allow users to can discover their executions and other flyte entities more easily, by creating smarter groupings. The feature is described in this [RFC](https://github.com/flyteorg/flyte/blob/master/rfc/system/0001-flyte-execution-tags.md).
-As mentioned before, this feature is shipped in an experimental capacity, the idea being that we're going to incorporate the feedback of the community as we iterate. More work is expected to give prominence to the feature in flyteconsole, in the meanwhile, the feature is supported via [Remote](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/remote_access/index.html).
+As mentioned before, this feature is shipped in an experimental capacity, the idea being that we're going to incorporate the feedback of the community as we iterate. More work is expected to give prominence to the feature in flyteconsole, in the meanwhile, the feature is supported via [Remote](https://docs.flyte.org/en/latest/api/flytekit/remote.html#remote-access).
## Flytekit
@@ -119,7 +119,7 @@ As mentioned before, this feature is shipped in an experimental capacity, the id
* chore: remove release git step by @FrankFlitton in https://github.com/flyteorg/flyteconsole/pull/811
* fix: union value handling in launch form by @ursucarina in https://github.com/flyteorg/flyteconsole/pull/812
-## New Contributors
+## New Contributors
* @Nan2018 made their first contribution in https://github.com/flyteorg/flytekit/pull/1751
* @oliverhu made their first contribution in https://github.com/flyteorg/flytekit/pull/1727
* @DavidMertz made their first contribution in https://github.com/flyteorg/flytekit/pull/1761
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000000..27a2f910bd
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1,3 @@
+# Automatically request docs team for docs PR review
+/docs/ @neverett @ppiegaze
+
diff --git a/Dockerfile.sandbox-lite b/Dockerfile.sandbox-lite
deleted file mode 100644
index 095c83b6e1..0000000000
--- a/Dockerfile.sandbox-lite
+++ /dev/null
@@ -1,115 +0,0 @@
-# syntax=docker/dockerfile:1.3
-
-
-ARG FLYTE_VERSION="latest"
-FROM ghcr.io/flyteorg/flyteconsole-release:${FLYTE_VERSION} AS flyteconsole
-
-FROM --platform=${BUILDPLATFORM} golang:1.19.0-alpine3.16 AS go_builder
-
-ARG TARGETARCH
-ENV GOARCH=${TARGETARCH}
-ENV GOOS=linux
-
-# Install dependencies
-RUN apk add --no-cache build-base
-
-COPY go.mod go.sum /app/flyte/
-WORKDIR /app/flyte
-
-COPY datacatalog datacatalog
-COPY flyteadmin flyteadmin
-COPY flytecopilot flytecopilot
-COPY flyteidl flyteidl
-COPY flyteplugins flyteplugins
-COPY flytepropeller flytepropeller
-COPY flytestdlib flytestdlib
-
-RUN go mod download
-
-COPY --from=flyteconsole /app/ cmd/single/dist
-
-COPY cmd/ /app/flyte/cmd/
-RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/root/go/pkg/mod go build -tags console -v -o /flyte cmd/main.go
-
-FROM alpine:3.15 AS base
-
-# Install dependencies
-RUN apk add --no-cache openssl
-
-# Make directory to store artifacts
-RUN mkdir -p /flyteorg/bin /flyteorg/share
-
-# Install k3s
-ARG K3S_VERSION="v1.21.1%2Bk3s1"
-ARG TARGETARCH
-
-RUN case $TARGETARCH in \
- amd64) export SUFFIX=;; \
- arm64) export SUFFIX=-arm64;; \
- aarch64) export SUFFIX=-arm64;; \
- # TODO: Check if we need to add case fail
- esac; \
- wget -q -O /flyteorg/bin/k3s https://github.com/k3s-io/k3s/releases/download/${K3S_VERSION}/k3s${SUFFIX} \
- && chmod +x /flyteorg/bin/k3s
-
-# Install Helm
-ARG HELM_VERSION="v3.6.3"
-
-RUN wget -q -O /flyteorg/bin/get_helm.sh https://raw.githubusercontent.com/helm/helm/${HELM_VERSION}/scripts/get-helm-3 && \
- chmod 700 /flyteorg/bin/get_helm.sh && \
- sh /flyteorg/bin/get_helm.sh --version ${HELM_VERSION} && \
- mv /usr/local/bin/helm /flyteorg/bin/helm && \
- rm /flyteorg/bin/get_helm.sh
-
-# Install flytectl
-RUN wget -q -O - https://raw.githubusercontent.com/flyteorg/flytectl/master/install.sh | BINDIR=/flyteorg/bin sh -s
-
-# Install buildkit-cli-for-kubectl
-COPY --from=go_builder /flyte /flyteorg/bin/
-
-# Copy flyte chart
-COPY charts/flyte-deps/ /flyteorg/share/flyte-deps
-
-# Copy scripts
-COPY docker/sandbox/kubectl docker/sandbox/cgroup-v2-hack.sh /flyteorg/bin/
-
-# Copy Flyte config
-COPY flyte.yaml /flyteorg/share/flyte.yaml
-
-FROM docker:20.10.14-dind-alpine3.15 AS dind
-
-# Install dependencies
-RUN apk add --no-cache bash git make tini curl jq
-
-# Copy artifacts from base
-COPY --from=base /flyteorg/ /flyteorg/
-
-# Copy entrypoints
-COPY docker/sandbox-lite/flyte-entrypoint-dind.sh /flyteorg/bin/flyte-entrypoint.sh
-
-# Copy cluster resource templates
-COPY docker/sandbox-lite/templates/ /etc/flyte/clusterresource/templates/
-
-ENV FLYTE_VERSION "${FLYTE_VERSION}"
-
-ARG FLYTE_TEST="release"
-ENV FLYTE_TEST "${FLYTE_TEST}"
-ENV FLYTE_DEV "False"
-
-RUN addgroup -S docker
-
-# Update PATH variable
-ENV PATH "/flyteorg/bin:${PATH}"
-ENV POD_NAMESPACE "flyte"
-
-# Declare volumes for k3s
-VOLUME /var/lib/kubelet
-VOLUME /var/lib/rancher/k3s
-VOLUME /var/lib/cni
-VOLUME /var/log
-
-# Expose Flyte ports
-# 30080 for console, 30081 for gRPC, 30082 for k8s dashboard, 30084 for minio api, 30088 for minio console
-EXPOSE 30080 30081 30082 30084 30088 30089
-
-ENTRYPOINT ["tini", "flyte-entrypoint.sh"]
diff --git a/Makefile b/Makefile
index 7bcc6e8cf8..6eab674b17 100644
--- a/Makefile
+++ b/Makefile
@@ -30,13 +30,10 @@ linux_compile: cmd/single/dist
update_boilerplate:
@boilerplate/update.sh
-.PHONY: kustomize
-kustomize:
- KUSTOMIZE_VERSION=3.9.2 bash script/generate_kustomize.sh
-
.PHONY: helm
helm: ## Generate K8s Manifest from Helm Charts.
bash script/generate_helm.sh
+ make -C docker/sandbox-bundled manifests
.PHONY: release_automation
release_automation:
@@ -115,3 +112,12 @@ go-tidy:
make -C flyteplugins go-tidy
make -C flytestdlib go-tidy
make -C flytecopilot go-tidy
+
+.PHONY: lint-helm-charts
+lint-helm-charts:
+ # This pressuposes that you have act installed
+ act pull_request -W .github/workflows/validate-helm-charts.yaml --container-architecture linux/amd64 -e charts/event.json
+
+.PHONY: clean
+clean: ## Remove the HTML files related to the Flyteconsole.
+ rm -rf cmd/single/dist
diff --git a/README.md b/README.md
index 24c2b3aff6..6049f262ef 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
- :building_construction: :rocket: :chart_with_upwards_trend:
+ :building_construction: :rocket: :chart_with_upwards_trend:
@@ -24,7 +24,7 @@
-
+
@@ -36,7 +36,7 @@ Flyte is an open-source orchestrator that facilitates building production-grade
Build
-Write code in Python or any other language and leverage a robust type engine.
+Write code in Python or any other language and leverage a robust type engine.
@@ -48,7 +48,7 @@ Write code in Python or any other language and leverage a robust type engine.
Either locally or on a remote cluster, execute your models with ease.
-
+
Get Started
@@ -99,32 +99,32 @@ Go to the [Deployment guide](https://docs.flyte.org/en/latest/deployment/deploym
## Tutorials
- [Fine-tune Code Llama on the Flyte codebase](https://github.com/unionai-oss/llm-fine-tuning/tree/main/flyte_llama#readme)
-- [Forecast sales with Horovod and Spark](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/forecasting_sales/index.html)
-- [Nucleotide Sequence Querying with BLASTX](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/blast/index.html)
+- [Forecast sales with Horovod and Spark](https://docs.flyte.org/en/latest/flytesnacks/examples/forecasting_sales/index.html)
+- [Nucleotide Sequence Querying with BLASTX](https://docs.flyte.org/en/latest/flytesnacks/examples/blast/index.html)
## Features
🚀 **Strongly typed interfaces**: Validate your data at every step of the workflow by defining data guardrails using Flyte types.
🌐 **Any language**: Write code in any language using raw containers, or choose [Python](https://github.com/flyteorg/flytekit), [Java](https://github.com/flyteorg/flytekit-java), [Scala](https://github.com/flyteorg/flytekit-java) or [JavaScript](https://github.com/NotMatthewGriffin/pterodactyl) SDKs to develop your Flyte workflows.
🔒 **Immutability**: Immutable executions help ensure reproducibility by preventing any changes to the state of an execution.
🧬 **Data lineage**: Track the movement and transformation of data throughout the lifecycle of your data and ML workflows.
-📊 **Map tasks**: Achieve parallel code execution with minimal configuration using [map tasks](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/map_task.html).
+📊 **Map tasks**: Achieve parallel code execution with minimal configuration using [map tasks](https://docs.flyte.org/en/latest/user_guide/advanced_composition/map_tasks.html).
🌎 **Multi-tenancy**: Multiple users can share the same platform while maintaining their own distinct data and configurations.
-🌟 **Dynamic workflows**: [Build flexible and adaptable workflows](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/dynamics.html) that can change and evolve as needed, making it easier to respond to changing requirements.
-⏯️ [Wait](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/waiting_for_external_inputs.html) for **external inputs** before proceeding with the execution.
-🌳 **Branching**: [Selectively execute branches](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/conditions.html) of your workflow based on static or dynamic data produced by other tasks or input data.
+🌟 **Dynamic workflows**: [Build flexible and adaptable workflows](https://docs.flyte.org/en/latest/user_guide/advanced_composition/dynamic_workflows.html) that can change and evolve as needed, making it easier to respond to changing requirements.
+⏯️ [Wait](https://docs.flyte.org/en/latest/user_guide/advanced_composition/waiting_for_external_inputs.html) for **external inputs** before proceeding with the execution.
+🌳 **Branching**: [Selectively execute branches](https://docs.flyte.org/en/latest/user_guide/advanced_composition/conditionals.html) of your workflow based on static or dynamic data produced by other tasks or input data.
📈 **Data visualization**: Visualize data, monitor models and view training history through plots.
-📂 **FlyteFile & FlyteDirectory**: Transfer [files](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/files.html) and [directories](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/folders.html) between local and cloud storage.
-🗃️ **Structured dataset**: Convert dataframes between types and enforce column-level type checking using the abstract 2D representation provided by [Structured Dataset](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/data_types_and_io/structured_dataset.html).
+📂 **FlyteFile & FlyteDirectory**: Transfer [files](https://docs.flyte.org/en/latest/user_guide/data_types_and_io/flytefile.html) and [directories](https://docs.flyte.org/en/latest/user_guide/data_types_and_io/flytedirectory.html) between local and cloud storage.
+🗃️ **Structured dataset**: Convert dataframes between types and enforce column-level type checking using the abstract 2D representation provided by [Structured Dataset](https://docs.flyte.org/en/latest/user_guide/data_types_and_io/structureddataset.html).
🛡️ **Recover from failures**: Recover only the failed tasks.
🔁 **Rerun a single task**: Rerun workflows at the most granular level without modifying the previous state of a data/ML workflow.
🔍 **Cache outputs**: Cache task outputs by passing `cache=True` to the task decorator.
-🚩 **Intra-task checkpointing**: [Checkpoint progress](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/advanced_composition/checkpoint.html) within a task execution.
+🚩 **Intra-task checkpointing**: [Checkpoint progress](https://docs.flyte.org/en/latest/user_guide/advanced_composition/intratask_checkpoints.html) within a task execution.
⏰ **Timeout**: Define a timeout period, after which the task is marked as failure.
🏭 **Dev to prod**: As simple as changing your [domain](https://docs.flyte.org/en/latest/concepts/domains.html) from development or staging to production.
💸 **Spot or preemptible instances**: Schedule your workflows on spot instances by setting `interruptible` to `True` in the task decorator.
☁️ **Cloud-native deployment**: Deploy Flyte on AWS, GCP, Azure and other cloud services.
-📅 **Scheduling**: [Schedule](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/productionizing/lp_schedules.html) your data and ML workflows to run at a specific time.
-📢 **Notifications**: Stay informed about changes to your workflow's state by configuring [notifications](https://docs.flyte.org/projects/cookbook/en/latest/auto_examples/productionizing/lp_notifications.html) through Slack, PagerDuty or email.
+📅 **Scheduling**: [Schedule](https://docs.flyte.org/en/latest/user_guide/productionizing/schedules.html) your data and ML workflows to run at a specific time.
+📢 **Notifications**: Stay informed about changes to your workflow's state by configuring [notifications](https://docs.flyte.org/en/latest/user_guide/productionizing/notifications.html) through Slack, PagerDuty or email.
⌛️ **Timeline view**: Evaluate the duration of each of your Flyte tasks and identify potential bottlenecks.
💨 **GPU acceleration**: Enable and control your tasks’ GPU demands by requesting resources in the task decorator.
🐳 **Dependency isolation via containers**: Maintain separate sets of dependencies for your tasks so no dependency conflicts arise.
diff --git a/charts/event.json b/charts/event.json
new file mode 100644
index 0000000000..d5e82399e5
--- /dev/null
+++ b/charts/event.json
@@ -0,0 +1,5 @@
+{
+ "repository": {
+ "default_branch": "master"
+ }
+}
diff --git a/charts/flyte-binary/Chart.yaml b/charts/flyte-binary/Chart.yaml
index b237b9f244..9c8ebc3d24 100644
--- a/charts/flyte-binary/Chart.yaml
+++ b/charts/flyte-binary/Chart.yaml
@@ -7,7 +7,8 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: v0.1.10 # VERSION
+
+version: v0.1.10 # VERSION
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
@@ -18,5 +19,5 @@ dependencies:
- name: flyteagent
condition: flyteagent.enabled
alias: flyteagent
- version: v0.1.10 # VERSION
- repository: file://../flyteagent # REPOSITORY
\ No newline at end of file
+ version: v0.1.10 # VERSION
+ repository: file://../flyteagent # REPOSITORY
diff --git a/charts/flyte-binary/README.md b/charts/flyte-binary/README.md
index 0e4fe2282b..99aa1c40b1 100644
--- a/charts/flyte-binary/README.md
+++ b/charts/flyte-binary/README.md
@@ -42,7 +42,7 @@ Chart for basic single Flyte executable deployment
| configuration.auth.oidc.clientId | string | `""` | |
| configuration.auth.oidc.clientSecret | string | `""` | |
| configuration.co-pilot.image.repository | string | `"cr.flyte.org/flyteorg/flytecopilot"` | |
-| configuration.co-pilot.image.tag | string | `"v1.10.7-b4"` | |
+| configuration.co-pilot.image.tag | string | `"v1.11.0-b0"` | |
| configuration.database.dbname | string | `"flyte"` | |
| configuration.database.host | string | `"127.0.0.1"` | |
| configuration.database.options | string | `"sslmode=disable"` | |
diff --git a/charts/flyte-binary/eks-production.yaml b/charts/flyte-binary/eks-production.yaml
index b73da0278a..987269a5aa 100644
--- a/charts/flyte-binary/eks-production.yaml
+++ b/charts/flyte-binary/eks-production.yaml
@@ -68,6 +68,7 @@ configuration:
- container
- sidecar
- K8S-ARRAY #used for MapTasks
+ - agent-service
default-for-task-types:
- container: container
- container_array: K8S-ARRAY
diff --git a/charts/flyte-binary/eks-starter.yaml b/charts/flyte-binary/eks-starter.yaml
index 51fd15f112..20257bf072 100644
--- a/charts/flyte-binary/eks-starter.yaml
+++ b/charts/flyte-binary/eks-starter.yaml
@@ -68,6 +68,7 @@ configuration:
- container
- sidecar
- K8S-ARRAY #used for MapTasks
+ - agent-service
default-for-task-types:
- container: container
- container_array: K8S-ARRAY
diff --git a/charts/flyte-binary/gke-starter.yaml b/charts/flyte-binary/gke-starter.yaml
new file mode 100644
index 0000000000..f9052a27fd
--- /dev/null
+++ b/charts/flyte-binary/gke-starter.yaml
@@ -0,0 +1,146 @@
+# configuration Specify configuration for Flyte
+configuration:
+ # database Specify configuration for Flyte's database connection
+ database:
+ # username Name for user to connect to database as
+ username: postgres
+ # password Password to connect to database with
+ # If set, a Secret will be created with this value and mounted to Flyte pod
+ password: ""
+ # host Hostname of database instance
+ host: 127.0.0.1
+ # dbname Name of database to use
+ dbname: flyteadmin
+ # storage Specify configuration for object store
+ storage:
+ # metadataContainer Bucket to store Flyte metadata
+ metadataContainer: "my-organization-flyte-container"
+ # userDataContainer Bucket to store Flyte user data
+ userDataContainer: "my-organization-flyte-container"
+ # provider Object store provider (Supported values: s3, gcs)
+ provider: gcs
+ # providerConfig Additional object store provider-specific configuration
+ providerConfig:
+ # gcs Provider configuration for GCS object store
+ gcs:
+ # project Google Cloud project in which bucket resides
+ project: "my-organization-gcp-project"
+ # logging Specify configuration for logs emitted by Flyte
+ logging:
+ # level Set the log level
+ level: 5
+ # plugins Specify additional logging plugins
+ plugins:
+ # stackdriver Configure logging plugin to have logs visible in StackDriver
+ stackdriver:
+ enabled: true
+ templateUri: |
+ "https://console.cloud.google.com/logs/query;query=resource.labels.namespace_name%3D%22{{.namespace}}%22%0Aresource.labels.pod_name%3D%22{{.podName}}%22%0Aresource.labels.container_name%3D%22{{.containerName}}%22?project=&angularJsUrl=%2Flogs%2Fviewer%3Fproject%3D"
+ # auth Specify configuration for Flyte authentication
+ auth:
+ # enabled Enable Flyte authentication
+ enabled: false
+ # oidc OIDC configuration for Flyte authentication
+ oidc:
+ # baseUrl URL for OIDC provider
+ baseUrl: ""
+ # clientId Flyte application client ID
+ clientId: ""
+ # clientSecret Flyte application client secret
+ clientSecret: ""
+ # internal Configuration for internal authentication
+ # The settings for internal still need to be defined if you wish to use an external auth server
+ # These credentials are used during communication between the FlyteAdmin and Propeller microservices
+ internal:
+ # clientId Client ID for internal authentication - set to flytepropeller or external auth server
+ clientId: flytepropeller
+ # clientSecret Client secret for internal authentication
+ clientSecret: ""
+ # clientSecretHash Bcrypt hash of clientSecret
+ clientSecretHash: ""
+ # authorizedUris Set of URIs that clients are allowed to visit the service on
+ authorizedUris: []
+
+ # inline Specify additional configuration or overrides for Flyte, to be merged with the base configuration
+ inline:
+ #This section automates the IAM Role annotation for the default KSA on each project namespace to enable IRSA
+ #Learn more: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html
+ cluster_resources:
+ customData:
+ - production:
+ - defaultIamServiceAccount:
+ value:
+ - staging:
+ - defaultIamServiceAccount:
+ value:
+ - development:
+ - defaultIamServiceAccount:
+ value:
+ plugins:
+ k8s:
+ inject-finalizer: true
+ gpu-device-node-label: cloud.google.com/gke-accelerator
+ gpu-partition-size-node-label: cloud.google.com/gke-gpu-partition-size
+ resource-tolerations:
+ - nvidia.com/gpu:
+ - key: "nvidia.com/gpu"
+ operator: "Equal"
+ value: "present"
+ effect: "NoSchedule"
+ # Configuration for the Datacatalog engine, used when caching is enabled
+ # Learn more: https://docs.flyte.org/en/latest/deployment/configuration/generated/datacatalog_config.html
+ storage:
+ cache:
+ max_size_mbs: 10
+ target_gc_percent: 100
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - K8S-ARRAY #used for MapTasks
+ default-for-task-types:
+ - container: container
+ - container_array: K8S-ARRAY
+
+# clusterResourceTemplates Specify templates for Kubernetes resources that should be created for new Flyte projects
+clusterResourceTemplates:
+ # inline Specify additional cluster resource templates, to be merged with the base configuration
+ inline:
+ #This section automates the creation of the project-domain namespaces
+ 001_namespace.yaml: |
+ apiVersion: v1
+ kind: Namespace
+ metadata:
+ name: '{{ namespace }}'
+ # This block performs the automated annotation of KSAs across all project-domain namespaces. Make sure to bind the KSA to the GSA after KSAs are created: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity#authenticating_to
+ 002_serviceaccount.yaml: |
+ apiVersion: v1
+ kind: ServiceAccount
+ metadata:
+ name: default
+ namespace: '{{ namespace }}'
+ annotations:
+ iam.gke.io/gcp-service-account: '{{ defaultIamServiceAccount }}'
+
+# serviceAccount Configure Flyte ServiceAccount
+serviceAccount:
+ # create Create ServiceAccount for Flyte
+ create: true
+ #Automates annotation of default flyte-binary KSA. Make sure to bind the KSA to the GSA: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity#authenticating_to
+ annotations:
+ iam.gke.io/gcp-service-account:
+# rbac Configure Kubernetes RBAC for Flyte
+rbac:
+ # create Create ClusterRole and ClusterRoleBinding resources
+ create: true
+ # extraRules Add additional rules to the ClusterRole
+ extraRules:
+ - apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - create
+ - get
+ - patch
diff --git a/charts/flyte-binary/values.yaml b/charts/flyte-binary/values.yaml
index 67a5fd3659..f3f8e79528 100644
--- a/charts/flyte-binary/values.yaml
+++ b/charts/flyte-binary/values.yaml
@@ -157,9 +157,9 @@ configuration:
# image Configure image to use for CoPilot sidecar
image:
# repository CoPilot sidecar image repository
- repository: cr.flyte.org/flyteorg/flytecopilot # FLYTECOPILOT_IMAGE
+ repository: cr.flyte.org/flyteorg/flytecopilot # FLYTECOPILOT_IMAGE
# tag CoPilot sidecar image tag
- tag: v1.10.7-b4 # FLYTECOPILOT_TAG
+ tag: v1.11.0-b0 # FLYTECOPILOT_TAG
# agentService Flyte Agent configuration
agentService:
defaultAgent:
@@ -209,9 +209,9 @@ deployment:
# image Configure image to use for Flyte
image:
# repository Flyte image repository
- repository: cr.flyte.org/flyteorg/flyte-binary # FLYTE_IMAGE
+ repository: cr.flyte.org/flyteorg/flyte-binary # FLYTE_IMAGE
# tag Flyte image tag
- tag: latest # FLYTE_TAG
+ tag: latest # FLYTE_TAG
# pullPolicy Flyte image pull policy
pullPolicy: IfNotPresent
# extraEnvVars Array with extra environment variables to add to Flyte
diff --git a/charts/flyte-core/Chart.yaml b/charts/flyte-core/Chart.yaml
index 47d0817a6d..117e07e163 100644
--- a/charts/flyte-core/Chart.yaml
+++ b/charts/flyte-core/Chart.yaml
@@ -2,10 +2,10 @@ apiVersion: v2
name: flyte-core
description: A Helm chart for Flyte core
type: application
-version: v0.1.10 # VERSION
+version: v0.1.10 # VERSION
dependencies:
- name: flyteagent
condition: flyteagent.enabled
alias: flyteagent
- version: v0.1.10 # VERSION
- repository: file://../flyteagent # REPOSITORY
\ No newline at end of file
+ version: v0.1.10 # VERSION
+ repository: file://../flyteagent # REPOSITORY
diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md
index 5a18ff8b7c..33901da7be 100644
--- a/charts/flyte-core/README.md
+++ b/charts/flyte-core/README.md
@@ -60,7 +60,7 @@ helm install gateway bitnami/contour -n flyte
| cloud_events.eventsPublisher.eventTypes[0] | string | `"all"` | |
| cloud_events.eventsPublisher.topicName | string | `"arn:aws:sns:us-east-2:123456:123-my-topic"` | |
| cloud_events.type | string | `"aws"` | |
-| cluster_resource_manager | object | `{"config":{"cluster_resources":{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}},"enabled":true,"nodeSelector":{},"podAnnotations":{},"podEnv":{},"podLabels":{},"service_account_name":"flyteadmin","standaloneDeployment":false,"templates":[{"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"}]}` | Configuration for the Cluster resource manager component. This is an optional component, that enables automatic cluster configuration. This is useful to set default quotas, manage namespaces etc that map to a project/domain |
+| cluster_resource_manager | object | `{"config":{"cluster_resources":{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}},"enabled":true,"nodeSelector":{},"podAnnotations":{},"podEnv":{},"podLabels":{},"resources":{},"service_account_name":"flyteadmin","standaloneDeployment":false,"templates":[{"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"}]}` | Configuration for the Cluster resource manager component. This is an optional component, that enables automatic cluster configuration. This is useful to set default quotas, manage namespaces etc that map to a project/domain |
| cluster_resource_manager.config | object | `{"cluster_resources":{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}}` | Configmap for ClusterResource parameters |
| cluster_resource_manager.config.cluster_resources | object | `{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}` | ClusterResource parameters Refer to the [structure](https://pkg.go.dev/github.com/lyft/flyteadmin@v0.3.37/pkg/runtime/interfaces#ClusterResourceConfig) to customize. |
| cluster_resource_manager.config.cluster_resources.refreshInterval | string | `"5m"` | How frequently to run the sync process |
@@ -70,16 +70,18 @@ helm install gateway bitnami/contour -n flyte
| cluster_resource_manager.podAnnotations | object | `{}` | Annotations for ClusterResource pods |
| cluster_resource_manager.podEnv | object | `{}` | Additional ClusterResource container environment variables |
| cluster_resource_manager.podLabels | object | `{}` | Labels for ClusterResource pods |
+| cluster_resource_manager.resources | object | `{}` | Resources for ClusterResource deployment |
| 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,"ingressClassName":null,"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 ...`. |
| common.ingress.albSSLRedirect | bool | `false` | - albSSLRedirect adds a special route for ssl redirect. Only useful in combination with the AWS LoadBalancer Controller. |
| common.ingress.annotations | object | `{"nginx.ingress.kubernetes.io/app-root":"/console"}` | - Ingress annotations applied to both HTTP and GRPC ingresses. |
| common.ingress.enabled | bool | `true` | - Enable or disable creating Ingress for Flyte. Relevant to disable when using e.g. Istio as ingress controller. |
+| common.ingress.ingressClassName | string | `nil` | - Sets the ingressClassName |
| common.ingress.separateGrpcIngress | bool | `false` | - separateGrpcIngress puts GRPC routes into a separate ingress if true. Required for certain ingress controllers like nginx. |
| 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. |
| common.ingress.tls | object | `{"enabled":false}` | - Ingress hostname host: |
@@ -93,16 +95,16 @@ helm install gateway bitnami/contour -n flyte
| configmap.clusters.clusterConfigs | list | `[]` | |
| configmap.clusters.labelClusterMap | object | `{}` | |
| configmap.console | object | `{"BASE_URL":"/console","CONFIG_DIR":"/etc/flyte/config"}` | Configuration for Flyte console UI |
-| configmap.copilot | object | `{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration |
-| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4","name":"flyte-copilot-","start-timeout":"30s"}` | Structure documented [here](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.28/go/tasks/pluginmachinery/flytek8s/config#FlyteCoPilotConfig) |
+| configmap.copilot | object | `{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration |
+| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0","name":"flyte-copilot-","start-timeout":"30s"}` | Structure documented [here](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.28/go/tasks/pluginmachinery/flytek8s/config#FlyteCoPilotConfig) |
| configmap.core | object | `{"manager":{"pod-application":"flytepropeller","pod-template-container-name":"flytepropeller","pod-template-name":"flytepropeller-template"},"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"}}` | Core propeller configuration |
| configmap.core.manager | object | `{"pod-application":"flytepropeller","pod-template-container-name":"flytepropeller","pod-template-name":"flytepropeller-template"}` | follows the structure specified [here](https://pkg.go.dev/github.com/flyteorg/flytepropeller/manager/config#Config). |
| configmap.core.propeller | object | `{"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"}` | follows the structure specified [here](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/config). |
| configmap.datacatalogServer | object | `{"application":{"grpcPort":8089,"grpcServerReflection":true,"httpPort":8080},"datacatalog":{"heartbeat-grace-period-multiplier":3,"max-reservation-heartbeat":"30s","metrics-scope":"datacatalog","profiler-port":10254,"storage-prefix":"metadata/datacatalog"}}` | Datacatalog server config |
| configmap.domain | object | `{"domains":[{"id":"development","name":"development"},{"id":"staging","name":"staging"},{"id":"production","name":"production"}]}` | Domains configuration for Flyte projects. This enables the specified number of domains across all projects in Flyte. |
-| configmap.enabled_plugins.tasks | object | `{"task-plugins":{"default-for-task-types":{"container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array"]}}` | Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig) |
-| configmap.enabled_plugins.tasks.task-plugins | object | `{"default-for-task-types":{"container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array"]}` | Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig) |
-| configmap.enabled_plugins.tasks.task-plugins.enabled-plugins | list | `["container","sidecar","k8s-array"]` | [Enabled Plugins](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend plugins |
+| configmap.enabled_plugins.tasks | object | `{"task-plugins":{"default-for-task-types":{"container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}}` | Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig) |
+| configmap.enabled_plugins.tasks.task-plugins | object | `{"default-for-task-types":{"container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}` | Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig) |
+| configmap.enabled_plugins.tasks.task-plugins.enabled-plugins | list | `["container","sidecar","k8s-array","agent-service"]` | [Enabled Plugins](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend plugins |
| configmap.k8s | object | `{"plugins":{"k8s":{"default-cpus":"100m","default-env-vars":[],"default-memory":"100Mi"}}}` | Kubernetes specific Flyte configuration |
| configmap.k8s.plugins.k8s | object | `{"default-cpus":"100m","default-env-vars":[],"default-memory":"100Mi"}` | Configuration section for all K8s specific plugins [Configuration structure](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/pluginmachinery/flytek8s/config) |
| configmap.remoteData.remoteData.region | string | `"us-east-1"` | |
@@ -114,8 +116,8 @@ helm install gateway bitnami/contour -n flyte
| configmap.schedulerConfig.scheduler.profilerPort | int | `10254` | |
| configmap.task_logs | object | `{"plugins":{"logs":{"cloudwatch-enabled":false,"kubernetes-enabled":false}}}` | Section that configures how the Task logs are displayed on the UI. This has to be changed based on your actual logging provider. Refer to [structure](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/logs#LogConfig) to understand how to configure various logging engines |
| configmap.task_logs.plugins.logs.cloudwatch-enabled | bool | `false` | One option is to enable cloudwatch logging for EKS, update the region and log group accordingly |
-| configmap.task_resource_defaults | object | `{"task_resources":{"defaults":{"cpu":"100m","ephemeralStorage":"500Mi","memory":"500Mi"},"limits":{"cpu":2,"ephemeralStorage":"20Mi","gpu":1,"memory":"1Gi"}}}` | Task default resources configuration Refer to the full [structure](https://pkg.go.dev/github.com/lyft/flyteadmin@v0.3.37/pkg/runtime/interfaces#TaskResourceConfiguration). |
-| configmap.task_resource_defaults.task_resources | object | `{"defaults":{"cpu":"100m","ephemeralStorage":"500Mi","memory":"500Mi"},"limits":{"cpu":2,"ephemeralStorage":"20Mi","gpu":1,"memory":"1Gi"}}` | Task default resources parameters |
+| configmap.task_resource_defaults | object | `{"task_resources":{"defaults":{"cpu":"100m","memory":"500Mi"},"limits":{"cpu":2,"gpu":1,"memory":"1Gi"}}}` | Task default resources configuration Refer to the full [structure](https://pkg.go.dev/github.com/lyft/flyteadmin@v0.3.37/pkg/runtime/interfaces#TaskResourceConfiguration). |
+| configmap.task_resource_defaults.task_resources | object | `{"defaults":{"cpu":"100m","memory":"500Mi"},"limits":{"cpu":2,"gpu":1,"memory":"1Gi"}}` | Task default resources parameters |
| daskoperator | object | `{"enabled":false}` | Optional: Dask Plugin using the Dask Operator |
| daskoperator.enabled | bool | `false` | - enable or disable the dask operator deployment installation |
| databricks | object | `{"enabled":false,"plugin_config":{"plugins":{"databricks":{"databricksInstance":"dbc-a53b7a3c-614c","entrypointFile":"dbfs:///FileStore/tables/entrypoint.py"}}}}` | Optional: Databricks Plugin allows us to run the spark job on the Databricks platform. |
@@ -128,7 +130,7 @@ helm install gateway bitnami/contour -n flyte
| datacatalog.extraArgs | object | `{}` | Appends extra command line arguments to the main command |
| datacatalog.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| datacatalog.image.repository | string | `"cr.flyte.org/flyteorg/datacatalog"` | Docker image for Datacatalog deployment |
-| datacatalog.image.tag | string | `"v1.10.7-b4"` | Docker image tag |
+| datacatalog.image.tag | string | `"v1.11.0-b0"` | Docker image tag |
| datacatalog.nodeSelector | object | `{}` | nodeSelector for Datacatalog deployment |
| datacatalog.podAnnotations | object | `{}` | Annotations for Datacatalog pods |
| datacatalog.podEnv | object | `{}` | Additional Datacatalog container environment variables |
@@ -136,6 +138,7 @@ helm install gateway bitnami/contour -n flyte
| datacatalog.priorityClassName | string | `""` | Sets priorityClassName for datacatalog pod(s). |
| datacatalog.replicaCount | int | `1` | Replicas count for Datacatalog deployment |
| datacatalog.resources | object | `{"limits":{"cpu":"500m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}}` | Default resources requests and limits for Datacatalog deployment |
+| datacatalog.securityContext | object | `{"fsGroup":1001,"fsGroupChangePolicy":"OnRootMismatch","runAsNonRoot":true,"runAsUser":1001,"seLinuxOptions":{"type":"spc_t"}}` | Sets securityContext for datacatalog pod(s). |
| datacatalog.service | object | `{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"type":"NodePort"}` | Service settings for Datacatalog |
| datacatalog.serviceAccount | object | `{"annotations":{},"create":true,"imagePullSecrets":[]}` | Configuration for service accounts for Datacatalog |
| datacatalog.serviceAccount.annotations | object | `{}` | Annotations for ServiceAccount attached to Datacatalog pods |
@@ -162,7 +165,7 @@ helm install gateway bitnami/contour -n flyte
| 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 |
-| flyteadmin.image.tag | string | `"v1.10.7-b4"` | |
+| flyteadmin.image.tag | string | `"v1.11.0-b0"` | |
| flyteadmin.initialProjects | list | `["flytesnacks","flytetester","flyteexamples"]` | Initial projects to create |
| flyteadmin.nodeSelector | object | `{}` | nodeSelector for Flyteadmin deployment |
| flyteadmin.podAnnotations | object | `{}` | Annotations for Flyteadmin pods |
@@ -171,6 +174,7 @@ helm install gateway bitnami/contour -n flyte
| flyteadmin.replicaCount | int | `1` | Replicas count for Flyteadmin deployment |
| flyteadmin.resources | object | `{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}}` | Default resources requests and limits for Flyteadmin deployment |
| flyteadmin.secrets | object | `{}` | |
+| flyteadmin.securityContext | object | `{"fsGroup":65534,"fsGroupChangePolicy":"Always","runAsNonRoot":true,"runAsUser":1001,"seLinuxOptions":{"type":"spc_t"}}` | Sets securityContext for flyteadmin pod(s). |
| flyteadmin.service | object | `{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"loadBalancerSourceRanges":[],"type":"ClusterIP"}` | Service settings for Flyteadmin |
| flyteadmin.serviceAccount | object | `{"alwaysCreate":false,"annotations":{},"clusterRole":{"apiGroups":["","flyte.lyft.com","rbac.authorization.k8s.io"],"resources":["configmaps","flyteworkflows","namespaces","pods","resourcequotas","roles","rolebindings","secrets","services","serviceaccounts","spark-role","limitranges"],"verbs":["*"]},"create":true,"createClusterRole":true,"imagePullSecrets":[]}` | Configuration for service accounts for FlyteAdmin |
| flyteadmin.serviceAccount.alwaysCreate | bool | `false` | Should a service account always be created for flyteadmin even without an actual flyteadmin deployment running (e.g. for multi-cluster setups) |
@@ -191,13 +195,14 @@ helm install gateway bitnami/contour -n flyte
| flyteagent.enabled | bool | `false` | |
| flyteagent.plugin_config.plugins.agentService.defaultAgent.endpoint | string | `"dns:///flyteagent.flyte.svc.cluster.local:8000"` | |
| flyteagent.plugin_config.plugins.agentService.defaultAgent.insecure | bool | `true` | |
+| flyteagent.podLabels | object | `{}` | Labels for flyteagent pods |
| flyteconsole.affinity | object | `{}` | affinity for Flyteconsole deployment |
| flyteconsole.enabled | bool | `true` | |
| flyteconsole.ga.enabled | bool | `false` | |
| flyteconsole.ga.tracking_id | string | `"G-0QW4DJWJ20"` | |
| flyteconsole.image.pullPolicy | string | `"IfNotPresent"` | |
| flyteconsole.image.repository | string | `"cr.flyte.org/flyteorg/flyteconsole"` | Docker image for Flyteconsole deployment |
-| flyteconsole.image.tag | string | `"v1.10.2"` | |
+| flyteconsole.image.tag | string | `"v1.10.3"` | |
| flyteconsole.imagePullSecrets | list | `[]` | ImagePullSecrets to assign to the Flyteconsole deployment |
| flyteconsole.nodeSelector | object | `{}` | nodeSelector for Flyteconsole deployment |
| flyteconsole.podAnnotations | object | `{}` | Annotations for Flyteconsole pods |
@@ -206,6 +211,7 @@ helm install gateway bitnami/contour -n flyte
| flyteconsole.priorityClassName | string | `""` | Sets priorityClassName for flyte console pod(s). |
| flyteconsole.replicaCount | int | `1` | Replicas count for Flyteconsole deployment |
| flyteconsole.resources | object | `{"limits":{"cpu":"500m","memory":"250Mi"},"requests":{"cpu":"10m","memory":"50Mi"}}` | Default resources requests and limits for Flyteconsole deployment |
+| flyteconsole.securityContext | object | `{"fsGroupChangePolicy":"OnRootMismatch","runAsNonRoot":true,"runAsUser":1000,"seLinuxOptions":{"type":"spc_t"}}` | Sets securityContext for flyteconsole pod(s). |
| flyteconsole.service | object | `{"annotations":{},"type":"ClusterIP"}` | Service settings for Flyteconsole |
| flyteconsole.tolerations | list | `[]` | tolerations for Flyteconsole deployment |
| flytepropeller.additionalContainers | list | `[]` | Appends additional containers to the deployment spec. May include template values. |
@@ -220,7 +226,7 @@ helm install gateway bitnami/contour -n flyte
| flytepropeller.extraArgs | object | `{}` | Appends extra command line arguments to the main command |
| flytepropeller.image.pullPolicy | string | `"IfNotPresent"` | |
| flytepropeller.image.repository | string | `"cr.flyte.org/flyteorg/flytepropeller"` | Docker image for Flytepropeller deployment |
-| flytepropeller.image.tag | string | `"v1.10.7-b4"` | |
+| flytepropeller.image.tag | string | `"v1.11.0-b0"` | |
| flytepropeller.manager | bool | `false` | |
| flytepropeller.nodeSelector | object | `{}` | nodeSelector for Flytepropeller deployment |
| flytepropeller.podAnnotations | object | `{}` | Annotations for Flytepropeller pods |
@@ -229,6 +235,7 @@ helm install gateway bitnami/contour -n flyte
| flytepropeller.priorityClassName | string | `""` | Sets priorityClassName for propeller pod(s). |
| flytepropeller.replicaCount | int | `1` | Replicas count for Flytepropeller deployment |
| flytepropeller.resources | object | `{"limits":{"cpu":"200m","ephemeral-storage":"100Mi","memory":"200Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"100Mi"}}` | Default resources requests and limits for Flytepropeller deployment |
+| flytepropeller.securityContext | object | `{"fsGroup":65534,"fsGroupChangePolicy":"Always","runAsUser":1001}` | Sets securityContext for flytepropeller pod(s). |
| flytepropeller.service | object | `{"enabled":false}` | Settings for flytepropeller service |
| flytepropeller.service.enabled | bool | `false` | If enabled create the flytepropeller service |
| flytepropeller.serviceAccount | object | `{"annotations":{},"create":true,"imagePullSecrets":[]}` | Configuration for service accounts for FlytePropeller |
@@ -249,7 +256,7 @@ helm install gateway bitnami/contour -n flyte
| flytescheduler.configPath | string | `"/etc/flyte/config/*.yaml"` | Default regex string for searching configuration files |
| flytescheduler.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| flytescheduler.image.repository | string | `"cr.flyte.org/flyteorg/flytescheduler"` | Docker image for Flytescheduler deployment |
-| flytescheduler.image.tag | string | `"v1.10.7-b4"` | Docker image tag |
+| flytescheduler.image.tag | string | `"v1.11.0-b0"` | Docker image tag |
| flytescheduler.nodeSelector | object | `{}` | nodeSelector for Flytescheduler deployment |
| flytescheduler.podAnnotations | object | `{}` | Annotations for Flytescheduler pods |
| flytescheduler.podEnv | object | `{}` | Additional Flytescheduler container environment variables |
@@ -258,6 +265,7 @@ helm install gateway bitnami/contour -n flyte
| flytescheduler.resources | object | `{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}}` | Default resources requests and limits for Flytescheduler deployment |
| flytescheduler.runPrecheck | bool | `true` | Whether to inject an init container which waits on flyteadmin |
| flytescheduler.secrets | object | `{}` | |
+| flytescheduler.securityContext | object | `{"fsGroup":65534,"fsGroupChangePolicy":"Always","runAsNonRoot":true,"runAsUser":1001,"seLinuxOptions":{"type":"spc_t"}}` | Sets securityContext for flytescheduler pod(s). |
| flytescheduler.serviceAccount | object | `{"annotations":{},"create":true,"imagePullSecrets":[]}` | Configuration for service accounts for Flytescheduler |
| flytescheduler.serviceAccount.annotations | object | `{}` | Annotations for ServiceAccount attached to Flytescheduler pods |
| flytescheduler.serviceAccount.create | bool | `true` | Should a service account be created for Flytescheduler |
@@ -282,6 +290,10 @@ helm install gateway bitnami/contour -n flyte
| storage.s3.secretKey | string | `""` | AWS IAM user secret access key to use for S3 bucket auth, only used if authType is set to accesskey |
| storage.type | string | `"sandbox"` | Sets the storage type. Supported values are sandbox, s3, gcs and custom. |
| webhook.enabled | bool | `true` | enable or disable secrets webhook |
+| webhook.resources.requests.cpu | string | `"200m"` | |
+| webhook.resources.requests.ephemeral-storage | string | `"500Mi"` | |
+| webhook.resources.requests.memory | string | `"500Mi"` | |
+| webhook.securityContext | object | `{"fsGroup":65534,"fsGroupChangePolicy":"Always","runAsNonRoot":true,"runAsUser":1001,"seLinuxOptions":{"type":"spc_t"}}` | Sets securityContext for webhook pod(s). |
| webhook.service | object | `{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"type":"ClusterIP"}` | Service settings for the webhook |
| webhook.serviceAccount | object | `{"annotations":{},"create":true,"imagePullSecrets":[]}` | Configuration for service accounts for the webhook |
| webhook.serviceAccount.annotations | object | `{}` | Annotations for ServiceAccount attached to the webhook |
diff --git a/charts/flyte-core/templates/_helpers.tpl b/charts/flyte-core/templates/_helpers.tpl
index 2c3b059841..98a42655e3 100755
--- a/charts/flyte-core/templates/_helpers.tpl
+++ b/charts/flyte-core/templates/_helpers.tpl
@@ -247,7 +247,7 @@ storage:
region: us-east-1
signedUrl:
stowConfigOverride:
- endpoint: http://localhost:30084
+ endpoint: http://minio.{{ .Release.Namespace }}.svc.cluster.local:9000
{{- else if eq .Values.storage.type "custom" }}
{{- with .Values.storage.custom -}}
{{ tpl (toYaml .) $ | nindent 2 }}
diff --git a/charts/flyte-core/templates/admin/deployment.yaml b/charts/flyte-core/templates/admin/deployment.yaml
index 5b41085674..dc61d29c28 100755
--- a/charts/flyte-core/templates/admin/deployment.yaml
+++ b/charts/flyte-core/templates/admin/deployment.yaml
@@ -18,10 +18,9 @@ spec:
{{- end }}
labels: {{ include "flyteadmin.podLabels" . | nindent 8 }}
spec:
- securityContext:
- fsGroup: 65534
- runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ {{- with .Values.flyteadmin.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
{{- if .Values.flyteadmin.priorityClassName }}
priorityClassName: {{ .Values.flyteadmin.priorityClassName }}
{{- end }}
@@ -35,6 +34,10 @@ spec:
image: "{{ .Values.flyteadmin.image.repository }}:{{ .Values.flyteadmin.image.tag }}"
imagePullPolicy: "{{ .Values.flyteadmin.image.pullPolicy }}"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 10 }}
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -57,6 +60,10 @@ spec:
image: "{{ .Values.flyteadmin.image.repository }}:{{ .Values.flyteadmin.image.tag }}"
imagePullPolicy: "{{ .Values.flyteadmin.image.pullPolicy }}"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 10 }}
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -77,6 +84,10 @@ spec:
image: "{{ .Values.flyteadmin.image.repository }}:{{ .Values.flyteadmin.image.tag }}"
imagePullPolicy: "{{ .Values.flyteadmin.image.pullPolicy }}"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 10 }}
- mountPath: /etc/flyte/clusterresource/templates
name: resource-templates
@@ -104,6 +115,10 @@ spec:
[
"flyteadmin --config={{ .Values.flyteadmin.configPath }} secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -149,6 +164,10 @@ spec:
initialDelaySeconds: 20
periodSeconds: 5
resources: {{- toYaml .Values.flyteadmin.resources | nindent 10 }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 8 }}
- mountPath: /srv/flyte
name: shared-data
diff --git a/charts/flyte-core/templates/clusterresourcesync/deployment.yaml b/charts/flyte-core/templates/clusterresourcesync/deployment.yaml
index 7fb93c9b92..a2fb5d04ae 100644
--- a/charts/flyte-core/templates/clusterresourcesync/deployment.yaml
+++ b/charts/flyte-core/templates/clusterresourcesync/deployment.yaml
@@ -34,13 +34,19 @@ spec:
image: "{{ .Values.flyteadmin.image.repository }}:{{ .Values.flyteadmin.image.tag }}"
imagePullPolicy: "{{ .Values.flyteadmin.image.pullPolicy }}"
name: sync-cluster-resources
+ {{- with .Values.cluster_resource_manager.resources }}
+ resources:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
volumeMounts:
{{- if not .Values.cluster_resource_manager.config.cluster_resources.standaloneDeployment }}
{{- include "databaseSecret.volumeMount" . | nindent 10 }}
{{- else }}
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
mountPath: /etc/secrets/
{{- end }}
+ {{- end }}
- mountPath: /etc/flyte/clusterresource/templates
name: resource-templates
- mountPath: /etc/flyte/config
@@ -50,9 +56,6 @@ spec:
name: cluster-secrets
{{- end }}
serviceAccountName: {{ .Values.cluster_resource_manager.service_account_name }}
- {{- if .Values.cluster_resource_manager.resources }}
- resources: {{- toYaml .Values.cluster_resource_manager.resources | nindent 10 }}
- {{- end }}
volumes: {{- include "databaseSecret.volume" . | nindent 8 }}
- configMap:
name: clusterresource-template
@@ -66,10 +69,12 @@ spec:
secretName: cluster-credentials
{{- end }}
{{- if .Values.cluster_resource_manager.config.cluster_resources.standaloneDeployment }}
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
secret:
secretName: flyte-secret-auth
{{- end }}
+ {{- end }}
{{- with .Values.cluster_resource_manager.nodeSelector }}
nodeSelector: {{ tpl (toYaml .) $ | nindent 8 }}
{{- end }}
diff --git a/charts/flyte-core/templates/common/ingress.yaml b/charts/flyte-core/templates/common/ingress.yaml
index 2a45152a0b..d812f2abe3 100644
--- a/charts/flyte-core/templates/common/ingress.yaml
+++ b/charts/flyte-core/templates/common/ingress.yaml
@@ -7,154 +7,90 @@
- path: /flyteidl.service.SignalService
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.SignalService/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.AdminService
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.AdminService/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.DataProxyService
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.DataProxyService/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.AuthMetadataService
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.AuthMetadataService/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.IdentityService
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /flyteidl.service.IdentityService/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /grpc.health.v1.Health
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
- path: /grpc.health.v1.Health/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: {{ $grpcPort }}
-{{- else }}
- serviceName: flyteadmin
- servicePort: {{ $grpcPort }}
-{{- end }}
{{- end }}
{{- if .Values.common.ingress.enabled }}
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
apiVersion: networking.k8s.io/v1
-{{- else }}
-apiVersion: networking.k8s.io/v1beta1
-{{- end }}
kind: Ingress
metadata:
name: {{ template "flyte.name" . }}
@@ -163,6 +99,7 @@ metadata:
annotations: {{ tpl (toYaml .) $ | nindent 4}}
{{- end }}
spec:
+ ingressClassName: {{ .Values.common.ingress.ingressClassName | quote }}
rules:
- http:
paths:
@@ -170,288 +107,173 @@ spec:
- path: /*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: ssl-redirect
port:
name: use-annotation
-{{- else }}
- serviceName: ssl-redirect
- servicePort: use-annotation
-{{- end }}
{{- end }}
# This is useful only for frontend development
{{- if .Values.common.ingress.webpackHMR }}
- path: /__webpack_hmr
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteconsole
port:
number: 80
-{{- else }}
- serviceName: flyteconsole
- servicePort: 80
-{{- end }}
{{- end }}
# NOTE: If you change this, you must update the BASE_URL value in flyteconsole.yaml
- path: /console
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteconsole
port:
number: 80
-{{- else }}
- serviceName: flyteconsole
- servicePort: 80
-{{- end }}
- path: /console/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteconsole
port:
number: 80
-{{- else }}
- serviceName: flyteconsole
- servicePort: 80
-{{- end }}
- path: /api
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /api/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /healthcheck
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /v1/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
{{- if .Values.deployRedoc }}
# Port 87 in FlyteAdmin maps to the redoc container.
- path: /openapi
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: redoc
port:
number: 87
-{{- else }}
- serviceName: redoc
- servicePort: 87
-{{- end }}
# Port 87 in FlyteAdmin maps to the redoc container.
- path: /openapi/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: redoc
port:
number: 87
-{{- else }}
- serviceName: redoc
- servicePort: 87
-{{- end }}
{{- end }}
- path: /.well-known
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /.well-known/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /login
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /login/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /logout
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /logout/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /callback
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /callback/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /me
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /config
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /config/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /oauth2
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
- path: /oauth2/*
pathType: ImplementationSpecific
backend:
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
service:
name: flyteadmin
port:
number: 80
-{{- else }}
- serviceName: flyteadmin
- servicePort: 80
-{{- end }}
{{- if not .Values.common.ingress.separateGrpcIngress }}
{{- include "grpcRoutes" . | nindent 10 -}}
{{- end }}
@@ -468,23 +290,18 @@ spec:
# Certain ingress controllers like nginx cannot serve HTTP 1 and GRPC with a single ingress because GRPC can only
# enabled on the ingress object, not on backend services (GRPC annotation is set on the ingress, not on the services).
---
-{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
apiVersion: networking.k8s.io/v1
-{{- else }}
-apiVersion: networking.k8s.io/v1beta1
-{{- end }}
kind: Ingress
metadata:
name: {{ template "flyte.name" . }}-grpc
namespace: {{ template "flyte.namespace" . }}
- annotations:
- {{- with .Values.common.ingress.annotations }}
- {{- tpl (toYaml .) $ | nindent 4}}
- {{- end }}
- {{- with .Values.common.ingress.separateGrpcIngressAnnotations }}
- {{- toYaml . | nindent 4}}
+ {{- $annotations := .Values.common.ingress.annotations | deepCopy -}}
+ {{- $_ := merge $annotations .Values.common.ingress.separateGrpcIngressAnnotations -}}
+ {{- with $annotations }}
+ annotations: {{ tpl (toYaml .) $ | nindent 4}}
{{- end }}
spec:
+ ingressClassName: {{ .Values.common.ingress.ingressClassName | quote }}
rules:
- host: {{ tpl (toYaml .Values.common.ingress.host) $ }}
http:
diff --git a/charts/flyte-core/templates/console/deployment.yaml b/charts/flyte-core/templates/console/deployment.yaml
index 3d0f26d44b..2d89e0265a 100644
--- a/charts/flyte-core/templates/console/deployment.yaml
+++ b/charts/flyte-core/templates/console/deployment.yaml
@@ -22,9 +22,9 @@ spec:
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
- securityContext:
- runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ {{- with .Values.flyteconsole.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
{{- if .Values.flyteconsole.priorityClassName }}
priorityClassName: {{ .Values.flyteconsole.priorityClassName }}
{{- end }}
@@ -51,6 +51,10 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources: {{ toYaml .Values.flyteconsole.resources | nindent 10 }}
volumeMounts:
- mountPath: /srv/flyte
diff --git a/charts/flyte-core/templates/datacatalog/deployment.yaml b/charts/flyte-core/templates/datacatalog/deployment.yaml
index 9ba6a8d89a..94e096466d 100644
--- a/charts/flyte-core/templates/datacatalog/deployment.yaml
+++ b/charts/flyte-core/templates/datacatalog/deployment.yaml
@@ -18,10 +18,9 @@ spec:
{{- end }}
labels: {{ include "datacatalog.podLabels" . | nindent 8 }}
spec:
- securityContext:
- fsGroup: 1001
- runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ {{- with .Values.datacatalog.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
{{- if .Values.datacatalog.priorityClassName }}
priorityClassName: {{ .Values.datacatalog.priorityClassName }}
{{- end }}
@@ -44,6 +43,10 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
@@ -66,6 +69,10 @@ spec:
- containerPort: 8088
- containerPort: 8089
- containerPort: {{ index .Values.configmap.datacatalogServer.datacatalog "profiler-port" }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources: {{- toYaml .Values.datacatalog.resources | nindent 10 }}
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 8 }}
- mountPath: /etc/datacatalog/config
diff --git a/charts/flyte-core/templates/flytescheduler/deployment.yaml b/charts/flyte-core/templates/flytescheduler/deployment.yaml
index 37b2394b1d..14db8c48a7 100755
--- a/charts/flyte-core/templates/flytescheduler/deployment.yaml
+++ b/charts/flyte-core/templates/flytescheduler/deployment.yaml
@@ -19,10 +19,9 @@ spec:
{{- end }}
labels: {{ include "flytescheduler.podLabels" . | nindent 8 }}
spec:
- securityContext:
- fsGroup: 65534
- runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ {{- with .Values.flytescheduler.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
{{- if .Values.flytescheduler.priorityClassName }}
priorityClassName: {{ .Values.flytescheduler.priorityClassName }}
{{- end }}
@@ -42,11 +41,17 @@ spec:
image: "{{ .Values.flytescheduler.image.repository }}:{{ .Values.flytescheduler.image.tag }}"
imagePullPolicy: "{{ .Values.flytescheduler.image.pullPolicy }}"
name: flytescheduler-check
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 8 }}
- mountPath: /etc/flyte/config
name: config-volume
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
mountPath: /etc/secrets/
+ {{- end }}
{{- end }}
containers:
- command:
@@ -65,12 +70,18 @@ spec:
name: flytescheduler
ports:
- containerPort: {{ .Values.configmap.schedulerConfig.scheduler.profilerPort }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources: {{- toYaml .Values.flytescheduler.resources | nindent 10 }}
volumeMounts: {{- include "databaseSecret.volumeMount" . | nindent 8 }}
- mountPath: /etc/flyte/config
name: config-volume
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
mountPath: /etc/secrets/
+ {{- end }}
{{- with .Values.flytescheduler.additionalVolumeMounts -}}
{{ tpl (toYaml .) $ | nindent 8 }}
{{- end }}
@@ -84,9 +95,11 @@ spec:
- configMap:
name: flyte-scheduler-config
name: config-volume
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
secret:
secretName: flyte-secret-auth
+ {{- end }}
{{- with .Values.flytescheduler.additionalVolumes -}}
{{ tpl (toYaml .) $ | nindent 6 }}
{{- end }}
diff --git a/charts/flyte-core/templates/propeller/deployment.yaml b/charts/flyte-core/templates/propeller/deployment.yaml
index 0efb3b5dc9..5fd09e5d5d 100644
--- a/charts/flyte-core/templates/propeller/deployment.yaml
+++ b/charts/flyte-core/templates/propeller/deployment.yaml
@@ -31,10 +31,9 @@ spec:
labels: {{ include "flytepropeller.podLabels" . | nindent 8 }}
{{- end }}
spec:
- securityContext:
- fsGroup: 65534
- runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ {{- with .Values.flytepropeller.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
{{- if .Values.flytepropeller.priorityClassName }}
priorityClassName: {{ .Values.flytepropeller.priorityClassName }}
{{- end }}
@@ -83,8 +82,10 @@ spec:
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
mountPath: /etc/secrets/
+ {{- end }}
{{- with .Values.flytepropeller.additionalVolumeMounts -}}
{{ tpl (toYaml .) $ | nindent 8 }}
{{- end }}
@@ -99,9 +100,11 @@ spec:
- configMap:
name: flyte-propeller-config
name: config-volume
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
secret:
secretName: flyte-secret-auth
+ {{- end }}
{{- with .Values.flytepropeller.additionalVolumes -}}
{{ tpl (toYaml .) $ | nindent 6 }}
{{- end }}
diff --git a/charts/flyte-core/templates/propeller/manager.yaml b/charts/flyte-core/templates/propeller/manager.yaml
index bace6485c8..21eb894ba8 100644
--- a/charts/flyte-core/templates/propeller/manager.yaml
+++ b/charts/flyte-core/templates/propeller/manager.yaml
@@ -15,10 +15,9 @@ template:
labels: {{ include "flytepropeller.labels" . | nindent 6 }}
app: {{ index .Values.configmap.core.manager "pod-application" }}
spec:
- securityContext:
- fsGroup: 65534
- runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ {{- with .Values.flytepropeller.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
{{- if .Values.flytepropeller.priorityClassName }}
priorityClassName: {{ .Values.flytepropeller.priorityClassName }}
{{- end }}
@@ -44,8 +43,10 @@ template:
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
mountPath: /etc/secrets/
+ {{- end }}
{{- if .Values.flytepropeller.terminationMessagePolicy }}
terminationMessagePolicy: "{{ .Values.flytepropeller.terminationMessagePolicy }}"
{{- end }}
@@ -54,9 +55,11 @@ template:
- configMap:
name: flyte-propeller-config
name: config-volume
+ {{- if .Values.secrets.adminOauthClientCredentials.enabled }}
- name: auth
secret:
secretName: flyte-secret-auth
+ {{- end }}
{{- with .Values.flytepropeller.nodeSelector }}
nodeSelector: {{ tpl (toYaml .) $ | nindent 6 }}
{{- end }}
diff --git a/charts/flyte-core/templates/propeller/webhook.yaml b/charts/flyte-core/templates/propeller/webhook.yaml
index 0b1c725af8..e34241d905 100644
--- a/charts/flyte-core/templates/propeller/webhook.yaml
+++ b/charts/flyte-core/templates/propeller/webhook.yaml
@@ -35,10 +35,9 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
- securityContext:
- fsGroup: 65534
- runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ {{- with .Values.webhook.securityContext }}
+ securityContext: {{ tpl (toYaml .) $ | nindent 8 }}
+ {{- end }}
serviceAccountName: {{ template "flyte-pod-webhook.name" . }}
{{- if .Values.webhook.enabled }}
initContainers:
@@ -66,6 +65,10 @@ spec:
{{- toYaml . | nindent 10 }}
{{- end }}
{{- end }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -96,6 +99,13 @@ spec:
{{- end }}
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ {{- with .Values.webhook.resources }}
+ resources: {{- toYaml . | nindent 12 }}
+ {{- end }}
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
diff --git a/charts/flyte-core/values-eks.yaml b/charts/flyte-core/values-eks.yaml
index b05cd1f61c..1dbaded1c7 100644
--- a/charts/flyte-core/values-eks.yaml
+++ b/charts/flyte-core/values-eks.yaml
@@ -277,6 +277,7 @@ configmap:
- container
- sidecar
- k8s-array
+ - agent-service
# - sagemaker_hyperparameter_tuning
# - sagemaker_custom_training
# - sagemaker_training
diff --git a/charts/flyte-core/values-gcp.yaml b/charts/flyte-core/values-gcp.yaml
index 4051fb23b9..181772c0c6 100644
--- a/charts/flyte-core/values-gcp.yaml
+++ b/charts/flyte-core/values-gcp.yaml
@@ -292,6 +292,7 @@ configmap:
- container
- sidecar
- k8s-array
+ - agent-service
default-for-task-types:
container: container
sidecar: sidecar
diff --git a/charts/flyte-core/values-keycloak-idp-flyteclients-without-browser.yaml b/charts/flyte-core/values-keycloak-idp-flyteclients-without-browser.yaml
index 380db08be7..edfd9478bc 100644
--- a/charts/flyte-core/values-keycloak-idp-flyteclients-without-browser.yaml
+++ b/charts/flyte-core/values-keycloak-idp-flyteclients-without-browser.yaml
@@ -669,6 +669,7 @@ configmap:
- container
- sidecar
- k8s-array
+ - agent-service
default-for-task-types:
container: container
sidecar: sidecar
diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml
index 07eb76eeb6..b8d4431e78 100755
--- a/charts/flyte-core/values.yaml
+++ b/charts/flyte-core/values.yaml
@@ -15,8 +15,8 @@ flyteadmin:
replicaCount: 1
image:
# -- Docker image for Flyteadmin deployment
- repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE
- tag: v1.10.7-b4 # FLYTEADMIN_TAG
+ repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE
+ tag: v1.11.0-b0 # FLYTEADMIN_TAG
pullPolicy: IfNotPresent
# -- Additional flyteadmin container environment variables
#
@@ -111,6 +111,14 @@ flyteadmin:
extraArgs: {}
# -- Sets priorityClassName for flyteadmin pod(s).
priorityClassName: ""
+ # -- Sets securityContext for flyteadmin pod(s).
+ securityContext:
+ runAsNonRoot: true
+ fsGroup: 65534
+ runAsUser: 1001
+ fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
# -- Settings for flyteadmin service monitor
serviceMonitor:
@@ -132,9 +140,9 @@ flytescheduler:
runPrecheck: true
image:
# -- Docker image for Flytescheduler deployment
- repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE
+ repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE
# -- Docker image tag
- tag: v1.10.7-b4 # FLYTESCHEDULER_TAG
+ tag: v1.11.0-b0 # FLYTESCHEDULER_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Flytescheduler deployment
@@ -179,6 +187,14 @@ flytescheduler:
additionalContainers: []
# -- Sets priorityClassName for flyte scheduler pod(s).
priorityClassName: ""
+ # -- Sets securityContext for flytescheduler pod(s).
+ securityContext:
+ runAsNonRoot: true
+ fsGroup: 65534
+ runAsUser: 1001
+ fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
#
# DATACATALOG SETTINGS
@@ -190,9 +206,9 @@ datacatalog:
replicaCount: 1
image:
# -- Docker image for Datacatalog deployment
- repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE
+ repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE
# -- Docker image tag
- tag: v1.10.7-b4 # DATACATALOG_TAG
+ tag: v1.11.0-b0 # DATACATALOG_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Datacatalog deployment
@@ -242,6 +258,14 @@ datacatalog:
extraArgs: {}
# -- Sets priorityClassName for datacatalog pod(s).
priorityClassName: ""
+ # -- Sets securityContext for datacatalog pod(s).
+ securityContext:
+ runAsNonRoot: true
+ fsGroup: 1001
+ runAsUser: 1001
+ fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
#
# FLYTE_AGENT SETTINGS
@@ -255,6 +279,8 @@ flyteagent:
defaultAgent:
endpoint: "dns:///flyteagent.flyte.svc.cluster.local:8000"
insecure: true
+ # -- Labels for flyteagent pods
+ podLabels: {}
#
# FLYTEPROPELLER SETTINGS
@@ -269,8 +295,8 @@ flytepropeller:
replicaCount: 1
image:
# -- Docker image for Flytepropeller deployment
- repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE
- tag: v1.10.7-b4 # FLYTEPROPELLER_TAG
+ repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE
+ tag: v1.11.0-b0 # FLYTEPROPELLER_TAG
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Flytepropeller deployment
resources:
@@ -320,6 +346,11 @@ flytepropeller:
clusterName: ""
# -- Sets priorityClassName for propeller pod(s).
priorityClassName: ""
+ # -- Sets securityContext for flytepropeller pod(s).
+ securityContext:
+ fsGroup: 65534
+ runAsUser: 1001
+ fsGroupChangePolicy: "Always"
# -- Settings for flytepropeller service
service:
@@ -347,8 +378,8 @@ flyteconsole:
replicaCount: 1
image:
# -- Docker image for Flyteconsole deployment
- repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE
- tag: v1.10.2 # FLYTECONSOLE_TAG
+ repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE
+ tag: v1.10.3 # FLYTECONSOLE_TAG
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Flyteconsole deployment
resources:
@@ -382,6 +413,13 @@ flyteconsole:
priorityClassName: ""
# -- ImagePullSecrets to assign to the Flyteconsole deployment
imagePullSecrets: []
+ # -- Sets securityContext for flyteconsole pod(s).
+ securityContext:
+ runAsNonRoot: true
+ runAsUser: 1000
+ fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
# It will enable the redoc route in ingress
deployRedoc: false
@@ -419,6 +457,20 @@ webhook:
annotations:
projectcontour.io/upstream-protocol.h2c: grpc
type: ClusterIP
+ # -- Sets securityContext for webhook pod(s).
+ securityContext:
+ fsGroup: 65534
+ runAsNonRoot: true
+ runAsUser: 1001
+ fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
+
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
# ------------------------------------------------
#
@@ -432,6 +484,8 @@ common:
# -- Specify your Secret (with sensitive data) or pseudo-manifest (without sensitive data). See https://github.com/godaddy/kubernetes-external-secrets
secretManifest: {}
ingress:
+ # --- Sets the ingressClassName
+ ingressClassName:
# --- Enable or disable creating Ingress for Flyte. Relevant to disable when using e.g. Istio as ingress controller.
enabled: true
# --- Enable or disable HMR route to flyteconsole. This is useful only for frontend development.
@@ -646,11 +700,9 @@ configmap:
defaults:
cpu: 100m
memory: 500Mi
- ephemeralStorage: 500Mi
limits:
cpu: 2
memory: 1Gi
- ephemeralStorage: 20Mi
gpu: 1
# -- Admin Client configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/subworkflow/launchplan#AdminConfig)
@@ -679,7 +731,7 @@ configmap:
# -- Structure documented [here](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.28/go/tasks/pluginmachinery/flytek8s/config#FlyteCoPilotConfig)
co-pilot:
name: flyte-copilot-
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4 # FLYTECOPILOT_IMAGE
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 # FLYTECOPILOT_IMAGE
start-timeout: 30s
# -- Core propeller configuration
@@ -740,8 +792,7 @@ configmap:
- container
- sidecar
- k8s-array
- # -- Uncomment to enable agent service
- # - agent-service
+ - agent-service
default-for-task-types:
container: container
sidecar: sidecar
@@ -818,7 +869,7 @@ external_events:
# writing to fifo sns topics.
topicName: "arn:aws:sns:us-east-2:123456:123-my-topic"
eventTypes:
- - all # Or workflow, node, task. Or "*"
+ - all # Or workflow, node, task. Or "*"
# Cloud events are used to send events (unprocessed, as Admin see them) in cloud event format to
# an SNS topic (or gcp equivalent)
@@ -832,7 +883,7 @@ cloud_events:
# writing to fifo sns topics.
topicName: "arn:aws:sns:us-east-2:123456:123-my-topic"
eventTypes:
- - all # Or workflow, node, task. Or "*"
+ - all # Or workflow, node, task. Or "*"
# -- Configuration for the Cluster resource manager component. This is an optional component, that enables automatic
# cluster configuration. This is useful to set default quotas, manage namespaces etc that map to a project/domain
@@ -850,6 +901,8 @@ cluster_resource_manager:
podLabels: {}
# -- nodeSelector for ClusterResource deployment
nodeSelector: {}
+ # -- Resources for ClusterResource deployment
+ resources: {}
# -- Configmap for ClusterResource parameters
config:
# -- ClusterResource parameters
diff --git a/charts/flyte-deps/Chart.yaml b/charts/flyte-deps/Chart.yaml
index fbd72a0bc2..471e3e87a5 100644
--- a/charts/flyte-deps/Chart.yaml
+++ b/charts/flyte-deps/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
name: flyte-deps
description: A Helm chart for Flyte dependency
type: application
-version: v0.1.10 # VERSION
+version: v0.1.10 # VERSION
dependencies:
- name: contour
version: 7.10.1
@@ -11,7 +11,7 @@ dependencies:
- name: spark-operator
alias: sparkoperator
version: 1.1.15
- repository: https://googlecloudplatform.github.io/spark-on-k8s-operator
+ repository: https://kubeflow.github.io/spark-operator
condition: sparkoperator.enabled
- name: dask-kubernetes-operator
alias: daskoperator
diff --git a/charts/flyte-deps/README.md b/charts/flyte-deps/README.md
index 6a5eb13e4f..014e19c251 100644
--- a/charts/flyte-deps/README.md
+++ b/charts/flyte-deps/README.md
@@ -9,8 +9,8 @@ A Helm chart for Flyte dependency
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | contour | 7.10.1 |
-| https://googlecloudplatform.github.io/spark-on-k8s-operator | sparkoperator(spark-operator) | 1.1.15 |
| https://helm.dask.org | daskoperator(dask-kubernetes-operator) | 2022.12.0 |
+| https://kubeflow.github.io/spark-operator | sparkoperator(spark-operator) | 1.1.15 |
| https://kubernetes.github.io/dashboard/ | kubernetes-dashboard | 4.0.2 |
### SANDBOX INSTALLATION:
diff --git a/charts/flyte-sandbox/Chart.lock b/charts/flyte-sandbox/Chart.lock
index 3b64136d9d..7c4a85bfd3 100644
--- a/charts/flyte-sandbox/Chart.lock
+++ b/charts/flyte-sandbox/Chart.lock
@@ -10,9 +10,9 @@ dependencies:
version: 6.0.0
- name: minio
repository: https://charts.bitnami.com/bitnami
- version: 12.1.1
+ version: 12.6.7
- name: postgresql
repository: https://charts.bitnami.com/bitnami
- version: 12.1.9
-digest: sha256:e7155e540bbdb98f690eb12e2bd301a19d8b36833336f6991410cb44d8d9bb5e
-generated: "2023-10-28T10:05:34.269916+08:00"
+ version: 12.8.1
+digest: sha256:f63a6ba148c681162253c24f0ba200ab7d5b7934a398824cb7b4f35d8f9166de
+generated: "2024-02-13T17:51:58.270175-08:00"
diff --git a/charts/flyte-sandbox/Chart.yaml b/charts/flyte-sandbox/Chart.yaml
index cf60b48492..d0914745db 100644
--- a/charts/flyte-sandbox/Chart.yaml
+++ b/charts/flyte-sandbox/Chart.yaml
@@ -21,7 +21,7 @@ version: 0.1.0
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
-appVersion: "1.16.0"
+appVersion: "1.16.1"
dependencies:
- name: docker-registry
@@ -37,10 +37,10 @@ dependencies:
repository: https://kubernetes.github.io/dashboard/
condition: kubernetes-dashboard.enabled
- name: minio
- version: 12.1.1
+ version: 12.6.7
repository: https://charts.bitnami.com/bitnami
condition: minio.enabled
- name: postgresql
- version: 12.1.9
+ version: 12.8.1
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
diff --git a/charts/flyte-sandbox/README.md b/charts/flyte-sandbox/README.md
index bb61e490f5..7820ed2768 100644
--- a/charts/flyte-sandbox/README.md
+++ b/charts/flyte-sandbox/README.md
@@ -1,6 +1,6 @@
# flyte-sandbox
-![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.16.0](https://img.shields.io/badge/AppVersion-1.16.0-informational?style=flat-square)
+![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.16.1](https://img.shields.io/badge/AppVersion-1.16.1-informational?style=flat-square)
A Helm chart for the Flyte local sandbox
@@ -9,8 +9,8 @@ A Helm chart for the Flyte local sandbox
| Repository | Name | Version |
|------------|------|---------|
| file://../flyte-binary | flyte-binary | v0.1.10 |
-| https://charts.bitnami.com/bitnami | minio | 12.1.1 |
-| https://charts.bitnami.com/bitnami | postgresql | 12.1.9 |
+| https://charts.bitnami.com/bitnami | minio | 12.6.7 |
+| https://charts.bitnami.com/bitnami | postgresql | 12.8.1 |
| https://helm.twun.io/ | docker-registry | 2.2.2 |
| https://kubernetes.github.io/dashboard/ | kubernetes-dashboard | 6.0.0 |
diff --git a/charts/flyte/Chart.yaml b/charts/flyte/Chart.yaml
index 0fcfb6679b..60e6c8a1df 100644
--- a/charts/flyte/Chart.yaml
+++ b/charts/flyte/Chart.yaml
@@ -2,12 +2,12 @@ apiVersion: v2
name: flyte
description: A Helm chart for Flyte Sandbox
type: application
-version: v0.1.10 # VERSION
+version: v0.1.10 # VERSION
dependencies:
- name: flyte-core
alias: flyte
- version: v0.1.10 # VERSION
- repository: file://../flyte-core # REPOSITORY
+ version: v0.1.10 # VERSION
+ repository: file://../flyte-core # REPOSITORY
- name: contour
version: 7.10.1
repository: https://charts.bitnami.com/bitnami
@@ -15,7 +15,7 @@ dependencies:
- name: spark-operator
alias: sparkoperator
version: 1.1.15
- repository: https://googlecloudplatform.github.io/spark-on-k8s-operator
+ repository: https://kubeflow.github.io/spark-operator
condition: sparkoperator.enabled
- name: dask-kubernetes-operator
alias: daskoperator
diff --git a/charts/flyte/README.md b/charts/flyte/README.md
index 30b56d6144..4accdb711c 100644
--- a/charts/flyte/README.md
+++ b/charts/flyte/README.md
@@ -10,8 +10,8 @@ A Helm chart for Flyte Sandbox
|------------|------|---------|
| file://../flyte-core | flyte(flyte-core) | v0.1.10 |
| https://charts.bitnami.com/bitnami | contour | 7.10.1 |
-| https://googlecloudplatform.github.io/spark-on-k8s-operator | sparkoperator(spark-operator) | 1.1.15 |
| https://helm.dask.org | daskoperator(dask-kubernetes-operator) | 2022.12.0 |
+| https://kubeflow.github.io/spark-operator | sparkoperator(spark-operator) | 1.1.15 |
| https://kubernetes.github.io/dashboard/ | kubernetes-dashboard | 4.0.2 |
**NOTE:** Flyte sandbox helm chart is deprecated, From now follow the sandbox [docs](https://docs.flyte.org/en/latest/deployment/sandbox.html) for installing it on cloud
@@ -71,7 +71,7 @@ helm upgrade -f values-sandbox.yaml flyte .
| contour.tolerations | list | `[]` | tolerations for Contour deployment |
| daskoperator | object | `{"enabled":false}` | Optional: Dask Plugin using the Dask Operator |
| daskoperator.enabled | bool | `false` | - enable or disable the dask operator deployment installation |
-| flyte | object | `{"cluster_resource_manager":{"config":{"cluster_resources":{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refresh":"5m","refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}},"enabled":true,"service_account_name":"flyteadmin","templates":[{"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"}]},"common":{"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}},"configmap":{"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"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4","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":{"bigquery_query_job_task":"agent-service","container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}}},"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"}}}},"datacatalog":{"affinity":{},"configPath":"/etc/datacatalog/config/*.yaml","image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/datacatalog","tag":"v1.10.7-b4"},"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"500m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"service":{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"type":"NodePort"},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"db":{"admin":{"database":{"dbname":"flyteadmin","host":"postgres","port":5432,"username":"postgres"}},"datacatalog":{"database":{"dbname":"datacatalog","host":"postgres","port":5432,"username":"postgres"}}},"deployRedoc":true,"flyteadmin":{"additionalVolumeMounts":[],"additionalVolumes":[],"affinity":{},"configPath":"/etc/flyte/config/*.yaml","env":[],"image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flyteadmin","tag":"v1.10.7-b4"},"initialProjects":["flytesnacks","flytetester","flyteexamples"],"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"secrets":{},"service":{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"loadBalancerSourceRanges":[],"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"flyteconsole":{"affinity":{},"ga":{"enabled":true,"tracking_id":"G-0QW4DJWJ20"},"image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flyteconsole","tag":"v1.10.2"},"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"500m","memory":"275Mi"},"requests":{"cpu":"10m","memory":"250Mi"}},"service":{"annotations":{},"type":"ClusterIP"},"tolerations":[]},"flytepropeller":{"affinity":{},"cacheSizeMbs":0,"configPath":"/etc/flyte/config/*.yaml","image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flytepropeller","tag":"v1.10.7-b4"},"manager":false,"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"200m","ephemeral-storage":"100Mi","memory":"200Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"flytescheduler":{"affinity":{},"configPath":"/etc/flyte/config/*.yaml","image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flytescheduler","tag":"v1.10.7-b4"},"nodeSelector":{},"podAnnotations":{},"resources":{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"secrets":{},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"storage":{"bucketName":"my-s3-bucket","custom":{},"gcs":null,"s3":{"region":"us-east-1"},"type":"sandbox"},"webhook":{"enabled":true,"service":{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]}},"workflow_notifications":{"config":{},"enabled":false},"workflow_scheduler":{"enabled":true,"type":"native"}}` | ------------------------------------------------------------------- Core System settings This section consists of Core components of Flyte and their deployment settings. This includes FlyteAdmin service, Datacatalog, FlytePropeller and Flyteconsole |
+| flyte | object | `{"cluster_resource_manager":{"config":{"cluster_resources":{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refresh":"5m","refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}},"enabled":true,"service_account_name":"flyteadmin","templates":[{"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"}]},"common":{"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}},"configmap":{"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"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0","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":{"bigquery_query_job_task":"agent-service","container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}}},"k8s":{"plugins":{"k8s":{"default-cpus":"100m","default-env-from-configmaps":[],"default-env-from-secrets":[],"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"}}}},"datacatalog":{"affinity":{},"configPath":"/etc/datacatalog/config/*.yaml","image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/datacatalog","tag":"v1.11.0-b0"},"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"500m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"service":{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"type":"NodePort"},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"db":{"admin":{"database":{"dbname":"flyteadmin","host":"postgres","port":5432,"username":"postgres"}},"datacatalog":{"database":{"dbname":"datacatalog","host":"postgres","port":5432,"username":"postgres"}}},"deployRedoc":true,"flyteadmin":{"additionalVolumeMounts":[],"additionalVolumes":[],"affinity":{},"configPath":"/etc/flyte/config/*.yaml","env":[],"image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flyteadmin","tag":"v1.11.0-b0"},"initialProjects":["flytesnacks","flytetester","flyteexamples"],"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"secrets":{},"service":{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"loadBalancerSourceRanges":[],"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"flyteconsole":{"affinity":{},"ga":{"enabled":true,"tracking_id":"G-0QW4DJWJ20"},"image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flyteconsole","tag":"v1.10.3"},"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"500m","memory":"275Mi"},"requests":{"cpu":"10m","memory":"250Mi"}},"service":{"annotations":{},"type":"ClusterIP"},"tolerations":[]},"flytepropeller":{"affinity":{},"cacheSizeMbs":0,"configPath":"/etc/flyte/config/*.yaml","image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flytepropeller","tag":"v1.11.0-b0"},"manager":false,"nodeSelector":{},"podAnnotations":{},"replicaCount":1,"resources":{"limits":{"cpu":"200m","ephemeral-storage":"100Mi","memory":"200Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"flytescheduler":{"affinity":{},"configPath":"/etc/flyte/config/*.yaml","image":{"pullPolicy":"IfNotPresent","repository":"cr.flyte.org/flyteorg/flytescheduler","tag":"v1.11.0-b0"},"nodeSelector":{},"podAnnotations":{},"resources":{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}},"secrets":{},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]},"tolerations":[]},"storage":{"bucketName":"my-s3-bucket","custom":{},"gcs":null,"s3":{"region":"us-east-1"},"type":"sandbox"},"webhook":{"enabled":true,"service":{"annotations":{"projectcontour.io/upstream-protocol.h2c":"grpc"},"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"imagePullSecrets":[]}},"workflow_notifications":{"config":{},"enabled":false},"workflow_scheduler":{"enabled":true,"type":"native"}}` | ------------------------------------------------------------------- Core System settings This section consists of Core components of Flyte and their deployment settings. This includes FlyteAdmin service, Datacatalog, FlytePropeller and Flyteconsole |
| flyte.cluster_resource_manager | object | `{"config":{"cluster_resources":{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refresh":"5m","refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}},"enabled":true,"service_account_name":"flyteadmin","templates":[{"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"}]}` | Configuration for the Cluster resource manager component. This is an optional component, that enables automatic cluster configuration. This is useful to set default quotas, manage namespaces etc that map to a project/domain |
| flyte.cluster_resource_manager.config.cluster_resources | object | `{"customData":[{"production":[{"projectQuotaCpu":{"value":"5"}},{"projectQuotaMemory":{"value":"4000Mi"}}]},{"staging":[{"projectQuotaCpu":{"value":"2"}},{"projectQuotaMemory":{"value":"3000Mi"}}]},{"development":[{"projectQuotaCpu":{"value":"4"}},{"projectQuotaMemory":{"value":"3000Mi"}}]}],"refresh":"5m","refreshInterval":"5m","standaloneDeployment":false,"templatePath":"/etc/flyte/clusterresource/templates"}` | ClusterResource parameters Refer to the [structure](https://pkg.go.dev/github.com/lyft/flyteadmin@v0.3.37/pkg/runtime/interfaces#ClusterResourceConfig) to customize. |
| flyte.cluster_resource_manager.config.cluster_resources.standaloneDeployment | bool | `false` | Starts the cluster resource manager in standalone mode with requisite auth credentials to call flyteadmin service endpoints |
@@ -91,15 +91,15 @@ 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"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4","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":{"bigquery_query_job_task":"agent-service","container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}}},"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"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0","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":{"bigquery_query_job_task":"agent-service","container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}}},"k8s":{"plugins":{"k8s":{"default-cpus":"100m","default-env-from-configmaps":[],"default-env-from-secrets":[],"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. |
| flyte.configmap.adminServer.server.security.useAuth | bool | `false` | Controls whether to enforce authentication. Follow the guide in https://docs.flyte.org/ on how to setup authentication. |
| flyte.configmap.catalog | object | `{"catalog-cache":{"endpoint":"datacatalog:89","insecure":true,"type":"datacatalog"}}` | Catalog Client configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/catalog#Config) Additional advanced Catalog configuration [here](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/pluginmachinery/catalog#Config) |
| flyte.configmap.console | object | `{"BASE_URL":"/console","CONFIG_DIR":"/etc/flyte/config"}` | Configuration for Flyte console UI |
-| flyte.configmap.copilot | object | `{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration |
-| flyte.configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4","name":"flyte-copilot-","start-timeout":"30s"}` | Structure documented [here](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.28/go/tasks/pluginmachinery/flytek8s/config#FlyteCoPilotConfig) |
+| flyte.configmap.copilot | object | `{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration |
+| flyte.configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0","name":"flyte-copilot-","start-timeout":"30s"}` | Structure documented [here](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.28/go/tasks/pluginmachinery/flytek8s/config#FlyteCoPilotConfig) |
| flyte.configmap.core | object | `{"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"}}` | Core propeller configuration |
| flyte.configmap.core.propeller | object | `{"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"}` | follows the structure specified [here](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/config). |
| flyte.configmap.datacatalogServer | object | `{"application":{"grpcPort":8089,"grpcServerReflection":true,"httpPort":8080},"datacatalog":{"metrics-scope":"datacatalog","profiler-port":10254,"storage-prefix":"metadata/datacatalog"}}` | Datacatalog server config |
@@ -107,8 +107,8 @@ helm upgrade -f values-sandbox.yaml flyte .
| flyte.configmap.enabled_plugins.tasks | object | `{"task-plugins":{"default-for-task-types":{"bigquery_query_job_task":"agent-service","container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}}` | Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig) |
| flyte.configmap.enabled_plugins.tasks.task-plugins | object | `{"default-for-task-types":{"bigquery_query_job_task":"agent-service","container":"container","container_array":"k8s-array","sidecar":"sidecar"},"enabled-plugins":["container","sidecar","k8s-array","agent-service"]}` | Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig) |
| flyte.configmap.enabled_plugins.tasks.task-plugins.enabled-plugins | list | `["container","sidecar","k8s-array","agent-service"]` | [Enabled Plugins](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend plugins |
-| flyte.configmap.k8s | object | `{"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"}}}` | Kubernetes specific Flyte configuration |
-| flyte.configmap.k8s.plugins.k8s | object | `{"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"}` | Configuration section for all K8s specific plugins [Configuration structure](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/pluginmachinery/flytek8s/config) |
+| flyte.configmap.k8s | object | `{"plugins":{"k8s":{"default-cpus":"100m","default-env-from-configmaps":[],"default-env-from-secrets":[],"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"}}}` | Kubernetes specific Flyte configuration |
+| flyte.configmap.k8s.plugins.k8s | object | `{"default-cpus":"100m","default-env-from-configmaps":[],"default-env-from-secrets":[],"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"}` | Configuration section for all K8s specific plugins [Configuration structure](https://pkg.go.dev/github.com/lyft/flyteplugins/go/tasks/pluginmachinery/flytek8s/config) |
| flyte.configmap.logger | object | `{"logger":{"level":5,"show-source":true}}` | Logger configuration |
| flyte.configmap.resource_manager | object | `{"propeller":{"resourcemanager":{"redis":null,"type":"noop"}}}` | Resource manager configuration |
| flyte.configmap.resource_manager.propeller | object | `{"resourcemanager":{"redis":null,"type":"noop"}}` | resource manager configuration |
@@ -120,7 +120,7 @@ helm upgrade -f values-sandbox.yaml flyte .
| flyte.datacatalog.configPath | string | `"/etc/datacatalog/config/*.yaml"` | Default regex string for searching configuration files |
| flyte.datacatalog.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| flyte.datacatalog.image.repository | string | `"cr.flyte.org/flyteorg/datacatalog"` | Docker image for Datacatalog deployment |
-| flyte.datacatalog.image.tag | string | `"v1.10.7-b4"` | Docker image tag |
+| flyte.datacatalog.image.tag | string | `"v1.11.0-b0"` | Docker image tag |
| flyte.datacatalog.nodeSelector | object | `{}` | nodeSelector for Datacatalog deployment |
| flyte.datacatalog.podAnnotations | object | `{}` | Annotations for Datacatalog pods |
| flyte.datacatalog.replicaCount | int | `1` | Replicas count for Datacatalog deployment |
@@ -136,7 +136,7 @@ helm upgrade -f values-sandbox.yaml flyte .
| 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.10.7-b4"` | Docker image tag |
+| flyte.flyteadmin.image.tag | string | `"v1.11.0-b0"` | Docker image tag |
| flyte.flyteadmin.initialProjects | list | `["flytesnacks","flytetester","flyteexamples"]` | Initial projects to create |
| flyte.flyteadmin.nodeSelector | object | `{}` | nodeSelector for Flyteadmin deployment |
| flyte.flyteadmin.podAnnotations | object | `{}` | Annotations for Flyteadmin pods |
@@ -151,7 +151,7 @@ helm upgrade -f values-sandbox.yaml flyte .
| flyte.flyteconsole.affinity | object | `{}` | affinity for Flyteconsole deployment |
| flyte.flyteconsole.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| flyte.flyteconsole.image.repository | string | `"cr.flyte.org/flyteorg/flyteconsole"` | Docker image for Flyteconsole deployment |
-| flyte.flyteconsole.image.tag | string | `"v1.10.2"` | Docker image tag |
+| flyte.flyteconsole.image.tag | string | `"v1.10.3"` | Docker image tag |
| flyte.flyteconsole.nodeSelector | object | `{}` | nodeSelector for Flyteconsole deployment |
| flyte.flyteconsole.podAnnotations | object | `{}` | Annotations for Flyteconsole pods |
| flyte.flyteconsole.replicaCount | int | `1` | Replicas count for Flyteconsole deployment |
@@ -162,7 +162,7 @@ helm upgrade -f values-sandbox.yaml flyte .
| flyte.flytepropeller.configPath | string | `"/etc/flyte/config/*.yaml"` | Default regex string for searching configuration files |
| flyte.flytepropeller.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| flyte.flytepropeller.image.repository | string | `"cr.flyte.org/flyteorg/flytepropeller"` | Docker image for Flytepropeller deployment |
-| flyte.flytepropeller.image.tag | string | `"v1.10.7-b4"` | Docker image tag |
+| flyte.flytepropeller.image.tag | string | `"v1.11.0-b0"` | Docker image tag |
| flyte.flytepropeller.nodeSelector | object | `{}` | nodeSelector for Flytepropeller deployment |
| flyte.flytepropeller.podAnnotations | object | `{}` | Annotations for Flytepropeller pods |
| flyte.flytepropeller.replicaCount | int | `1` | Replicas count for Flytepropeller deployment |
@@ -176,7 +176,7 @@ helm upgrade -f values-sandbox.yaml flyte .
| flyte.flytescheduler.configPath | string | `"/etc/flyte/config/*.yaml"` | Default regex string for searching configuration files |
| flyte.flytescheduler.image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| flyte.flytescheduler.image.repository | string | `"cr.flyte.org/flyteorg/flytescheduler"` | Docker image for Flytescheduler deployment |
-| flyte.flytescheduler.image.tag | string | `"v1.10.7-b4"` | Docker image tag |
+| flyte.flytescheduler.image.tag | string | `"v1.11.0-b0"` | Docker image tag |
| flyte.flytescheduler.nodeSelector | object | `{}` | nodeSelector for Flytescheduler deployment |
| flyte.flytescheduler.podAnnotations | object | `{}` | Annotations for Flytescheduler pods |
| flyte.flytescheduler.resources | object | `{"limits":{"cpu":"250m","ephemeral-storage":"100Mi","memory":"500Mi"},"requests":{"cpu":"10m","ephemeral-storage":"50Mi","memory":"50Mi"}}` | Default resources requests and limits for Flytescheduler deployment |
diff --git a/charts/flyte/values.yaml b/charts/flyte/values.yaml
index ac4d3f47ca..71069a7318 100755
--- a/charts/flyte/values.yaml
+++ b/charts/flyte/values.yaml
@@ -1,4 +1,3 @@
---- # ---------------------------------------------------------------------
# ---------------------------------------------------------------------
# Core System settings
# This section consists of Core components of Flyte and their deployment
@@ -14,9 +13,9 @@ flyte:
replicaCount: 1
image:
# -- Docker image for Flyteadmin deployment
- repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE
+ repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE
# -- Docker image tag
- tag: v1.10.7-b4 # FLYTEADMIN_TAG
+ tag: v1.11.0-b0 # FLYTEADMIN_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Additional flyteadmin container environment variables
@@ -82,9 +81,9 @@ flyte:
flytescheduler:
image:
# -- Docker image for Flytescheduler deployment
- repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE
+ repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE
# -- Docker image tag
- tag: v1.10.7-b4 # FLYTESCHEDULER_TAG
+ tag: v1.11.0-b0 # FLYTESCHEDULER_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Flytescheduler deployment
@@ -127,9 +126,9 @@ flyte:
replicaCount: 1
image:
# -- Docker image for Datacatalog deployment
- repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE
+ repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE
# -- Docker image tag
- tag: v1.10.7-b4 # DATACATALOG_TAG
+ tag: v1.11.0-b0 # DATACATALOG_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Datacatalog deployment
@@ -176,9 +175,9 @@ flyte:
manager: false
image:
# -- Docker image for Flytepropeller deployment
- repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE
+ repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE
# -- Docker image tag
- tag: v1.10.7-b4 # FLYTEPROPELLER_TAG
+ tag: v1.11.0-b0 # FLYTEPROPELLER_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Flytepropeller deployment
@@ -221,9 +220,9 @@ flyte:
replicaCount: 1
image:
# -- Docker image for Flyteconsole deployment
- repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE
+ repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE
# -- Docker image tag
- tag: v1.10.2 # FLYTECONSOLE_TAG
+ tag: v1.10.3 # FLYTECONSOLE_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
# -- Default resources requests and limits for Flyteconsole deployment
@@ -471,7 +470,7 @@ flyte:
# -- Structure documented [here](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.28/go/tasks/pluginmachinery/flytek8s/config#FlyteCoPilotConfig)
co-pilot:
name: flyte-copilot-
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4 # FLYTECOPILOT_IMAGE
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 # FLYTECOPILOT_IMAGE
start-timeout: 30s
# -- Core propeller configuration
@@ -547,6 +546,8 @@ flyte:
- FLYTE_AWS_ACCESS_KEY_ID: minio
- FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage
default-memory: 200Mi
+ default-env-from-configmaps: []
+ default-env-from-secrets: []
# -- Logger configuration
logger:
diff --git a/charts/flyteagent/Chart.yaml b/charts/flyteagent/Chart.yaml
index 33c2ec4b02..b78df49878 100644
--- a/charts/flyteagent/Chart.yaml
+++ b/charts/flyteagent/Chart.yaml
@@ -2,4 +2,4 @@ apiVersion: v2
name: flyteagent
description: A Helm chart for Flyte agent
type: application
-version: v0.1.10 # VERSION
+version: v0.1.10 # VERSION
diff --git a/charts/flyteagent/README.md b/charts/flyteagent/README.md
index cd482d1a20..18cc0a9ef9 100644
--- a/charts/flyteagent/README.md
+++ b/charts/flyteagent/README.md
@@ -20,7 +20,7 @@ A Helm chart for Flyte agent
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy |
| image.repository | string | `"ghcr.io/flyteorg/flyteagent"` | Docker image for flyteagent deployment |
-| image.tag | string | `"1.10.3"` | Docker image tag |
+| image.tag | string | `"1.11.0"` | Docker image tag |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | nodeSelector for flyteagent deployment |
| podAnnotations | object | `{}` | Annotations for flyteagent pods |
@@ -30,6 +30,7 @@ A Helm chart for Flyte agent
| ports.containerPort | int | `8000` | |
| ports.name | string | `"agent-grpc"` | |
| priorityClassName | string | `""` | Sets priorityClassName for datacatalog pod(s). |
+| readinessProbe | object | `{"grpc":{"port":8000},"initialDelaySeconds":1,"periodSeconds":3}` | https://kubernetes.io/blog/2022/05/13/grpc-probes-now-in-beta/#trying-the-feature-out |
| replicaCount | int | `1` | Replicas count for flyteagent deployment |
| resources | object | `{"limits":{"cpu":"500m","ephemeral-storage":"200Mi","memory":"200Mi"},"requests":{"cpu":"500m","ephemeral-storage":"200Mi","memory":"200Mi"}}` | Default resources requests and limits for flyteagent deployment |
| securityContext | object | `{"allowPrivilegeEscalation":false}` | Security context for container |
diff --git a/charts/flyteagent/templates/agent/deployment.yaml b/charts/flyteagent/templates/agent/deployment.yaml
index 2c6a903f8f..caad9ca44a 100644
--- a/charts/flyteagent/templates/agent/deployment.yaml
+++ b/charts/flyteagent/templates/agent/deployment.yaml
@@ -39,6 +39,10 @@ spec:
ports:
- containerPort: {{ .Values.ports.containerPort }}
name: {{ .Values.ports.name }}
+ readinessProbe:
+ {{- with .Values.readinessProbe -}}
+ {{ tpl (toYaml .) $ | nindent 10 }}
+ {{- end }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
resources: {{- toYaml .Values.resources | nindent 10 }}
diff --git a/charts/flyteagent/values.yaml b/charts/flyteagent/values.yaml
index 508caf1984..ecfc08e40a 100755
--- a/charts/flyteagent/values.yaml
+++ b/charts/flyteagent/values.yaml
@@ -23,7 +23,7 @@ image:
# -- Docker image for flyteagent deployment
repository: ghcr.io/flyteorg/flyteagent
# -- Docker image tag
- tag: 1.10.3 # FLYTEAGENT_TAG
+ tag: 1.11.0 # FLYTEAGENT_TAG
# -- Docker image pull policy
pullPolicy: IfNotPresent
ports:
@@ -56,6 +56,13 @@ serviceAccount:
imagePullSecrets: []
# -- Security context for pod
podSecurityContext: {}
+# -- Readiness probe for flyteagent. Use readinessProbe: {} if agent doesn't implement grpc-health-checking service.
+# -- https://kubernetes.io/blog/2022/05/13/grpc-probes-now-in-beta/#trying-the-feature-out
+readinessProbe:
+ grpc:
+ port: 8000
+ initialDelaySeconds: 1
+ periodSeconds: 3
# -- Security context for container
securityContext:
allowPrivilegeEscalation: false
diff --git a/cmd/single/console_dist.go b/cmd/single/console_dist.go
index ce6c32ce0d..450c743cee 100644
--- a/cmd/single/console_dist.go
+++ b/cmd/single/console_dist.go
@@ -20,6 +20,7 @@ var consoleHandlers = map[string]handlerFunc{
consoleHandler.ServeHTTP(writer, request)
},
consoleRoot + "/": func(writer http.ResponseWriter, request *http.Request) {
+ writer.Header().Set("Cache-Control", "max-age=604800") // 7 days
consoleHandler.ServeHTTP(writer, request)
},
}
diff --git a/datacatalog/go.mod b/datacatalog/go.mod
index 4116c4cc7f..7c04fd7832 100644
--- a/datacatalog/go.mod
+++ b/datacatalog/go.mod
@@ -43,7 +43,7 @@ require (
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
github.com/fatih/color v1.13.0 // indirect
- github.com/flyteorg/stow v0.3.8 // indirect
+ github.com/flyteorg/stow v0.3.10 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/ghodss/yaml v1.0.0 // indirect
github.com/go-gormigrate/gormigrate/v2 v2.1.1 // indirect
diff --git a/datacatalog/go.sum b/datacatalog/go.sum
index 786de45ede..b1642f638f 100644
--- a/datacatalog/go.sum
+++ b/datacatalog/go.sum
@@ -113,8 +113,8 @@ github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJ
github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
-github.com/flyteorg/stow v0.3.8 h1:4a6BtfgDR86fUwa48DkkZTcp6WK4oQXSfewPd/kN0Z4=
-github.com/flyteorg/stow v0.3.8/go.mod h1:fArjMpsYJNWkp/hyDKKdbcv07gxbuLmKFcb7YT1aSOM=
+github.com/flyteorg/stow v0.3.10 h1:uEe+tI+CGKn21H93uXp9z05hqynEki2BO9KkW/GweY8=
+github.com/flyteorg/stow v0.3.10/go.mod h1:fArjMpsYJNWkp/hyDKKdbcv07gxbuLmKFcb7YT1aSOM=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
diff --git a/deployment/agent/flyte_agent_helm_generated.yaml b/deployment/agent/flyte_agent_helm_generated.yaml
index de54cfda22..01f6f4fa86 100644
--- a/deployment/agent/flyte_agent_helm_generated.yaml
+++ b/deployment/agent/flyte_agent_helm_generated.yaml
@@ -78,7 +78,7 @@ spec:
- pyflyte
- serve
- agent
- image: "ghcr.io/flyteorg/flyteagent:1.10.3"
+ image: "ghcr.io/flyteorg/flyteagent:1.11.0"
imagePullPolicy: "IfNotPresent"
name: flyteagent
volumeMounts:
@@ -87,6 +87,11 @@ spec:
ports:
- containerPort: 8000
name: agent-grpc
+ readinessProbe:
+ grpc:
+ port: 8000
+ initialDelaySeconds: 1
+ periodSeconds: 3
securityContext:
allowPrivilegeEscalation: false
resources:
diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml
index 44bc9bf697..3ae88a9b8f 100644
--- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml
+++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml
@@ -192,12 +192,10 @@ data:
task_resources:
defaults:
cpu: 1000m
- ephemeralStorage: 500Mi
memory: 1000Mi
storage: 1000Mi
limits:
cpu: 2
- ephemeralStorage: 20Mi
gpu: 1
memory: 1Gi
storage: 2000Mi
@@ -431,7 +429,7 @@ data:
plugins:
k8s:
co-pilot:
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0
name: flyte-copilot-
start-timeout: 30s
core.yaml: |
@@ -491,6 +489,7 @@ data:
- container
- sidecar
- k8s-array
+ - agent-service
k8s.yaml: |
plugins:
k8s:
@@ -849,17 +848,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "85f2694a4138443026b87878dbbc5f1e9f52aa54eb87ef4c64117d1d91e1a7f"
+ configChecksum: "2b5c85969f2bd85bb51a084f9fd72c20c3aca94be99e53cb4c4e9f78e77ebc5"
labels:
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flyteadmin
@@ -867,9 +869,13 @@ spec:
- /etc/flyte/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -884,9 +890,13 @@ spec:
- flytesnacks
- flytetester
- flyteexamples
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -898,9 +908,13 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- sync
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -911,13 +925,17 @@ spec:
- mountPath: /etc/secrets/
name: admin-secrets
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command: ["/bin/sh", "-c"]
args:
[
"flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -934,7 +952,7 @@ spec:
- --config
- /etc/flyte/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flyteadmin
ports:
@@ -959,6 +977,10 @@ spec:
cpu: 50m
ephemeral-storage: 200Mi
memory: 200Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -1035,7 +1057,7 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
volumeMounts:
@@ -1084,11 +1106,14 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
containers:
- - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.2"
+ - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3"
imagePullPolicy: "IfNotPresent"
name: flyteconsole
envFrom:
@@ -1096,6 +1121,10 @@ spec:
name: flyte-console-config
ports:
- containerPort: 8080
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1144,10 +1173,13 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- datacatalog
@@ -1155,7 +1187,7 @@ spec:
- /etc/datacatalog/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
volumeMounts:
@@ -1163,19 +1195,27 @@ spec:
name: db-pass
- mountPath: /etc/datacatalog/config
name: config-volume
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 1
@@ -1228,17 +1268,17 @@ spec:
template:
metadata:
annotations:
- configChecksum: "799320510466012ad23a7380ea4ac9ff51fd8ed6e56d9c543179b6bb6a9bcf1"
+ configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857"
labels:
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
runAsUser: 1001
- fsGroupChangePolicy: "Always"
priorityClassName: system-cluster-critical
containers:
- command:
@@ -1254,7 +1294,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytepropeller
ports:
@@ -1308,18 +1348,21 @@ spec:
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: v1.10.7-b4
+ app.kubernetes.io/version: v1.11.0-b0
annotations:
- configChecksum: "799320510466012ad23a7380ea4ac9ff51fd8ed6e56d9c543179b6bb6a9bcf1"
+ configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857"
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
serviceAccountName: flyte-pod-webhook
initContainers:
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -1337,12 +1380,16 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
containers:
- name: webhook
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -1361,6 +1408,15 @@ spec:
fieldPath: metadata.namespace
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -1394,6 +1450,7 @@ metadata:
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -1549,9 +1606,10 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":
{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
+ alb.ingress.kubernetes.io/backend-protocol-version: GRPC
alb.ingress.kubernetes.io/certificate-arn: ''
alb.ingress.kubernetes.io/group.name: flyte
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
@@ -1560,9 +1618,9 @@ metadata:
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
- alb.ingress.kubernetes.io/backend-protocol-version: GRPC
nginx.ingress.kubernetes.io/backend-protocol: GRPC
spec:
+ ingressClassName:
rules:
- host: null
http:
diff --git a/deployment/eks/flyte_generated.yaml b/deployment/eks/flyte_generated.yaml
deleted file mode 100644
index 2995656439..0000000000
--- a/deployment/eks/flyte_generated.yaml
+++ /dev/null
@@ -1,9526 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
- name: flyte
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: kubeflow
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: sparkoperator
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- name: flyteworkflows.flyte.lyft.com
-spec:
- group: flyte.lyft.com
- names:
- kind: FlyteWorkflow
- plural: flyteworkflows
- shortNames:
- - fly
- singular: flyteworkflow
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- type: object
- x-kubernetes-preserve-unknown-fields: true
- served: true
- storage: true
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: (unknown)
- creationTimestamp: null
- name: scheduledsparkapplications.sparkoperator.k8s.io
-spec:
- group: sparkoperator.k8s.io
- names:
- kind: ScheduledSparkApplication
- listKind: ScheduledSparkApplicationList
- plural: scheduledsparkapplications
- shortNames:
- - scheduledsparkapp
- singular: scheduledsparkapplication
- scope: Namespaced
- subresources:
- status: {}
- validation:
- openAPIV3Schema:
- properties:
- apiVersion:
- type: string
- kind:
- type: string
- metadata:
- type: object
- spec:
- properties:
- concurrencyPolicy:
- type: string
- failedRunHistoryLimit:
- format: int32
- type: integer
- schedule:
- type: string
- successfulRunHistoryLimit:
- format: int32
- type: integer
- suspend:
- type: boolean
- template:
- properties:
- arguments:
- items:
- type: string
- type: array
- batchScheduler:
- type: string
- batchSchedulerOptions:
- properties:
- priorityClassName:
- type: string
- queue:
- type: string
- type: object
- deps:
- properties:
- files:
- items:
- type: string
- type: array
- jars:
- items:
- type: string
- type: array
- pyFiles:
- items:
- type: string
- type: array
- type: object
- driver:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- podName:
- pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
- type: string
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- serviceAccount:
- type: string
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- executor:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- deleteOnTermination:
- type: boolean
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- instances:
- format: int32
- minimum: 1
- type: integer
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- failureRetries:
- format: int32
- type: integer
- hadoopConf:
- additionalProperties:
- type: string
- type: object
- hadoopConfigMap:
- type: string
- image:
- type: string
- imagePullPolicy:
- type: string
- imagePullSecrets:
- items:
- type: string
- type: array
- mainApplicationFile:
- type: string
- mainClass:
- type: string
- memoryOverheadFactor:
- type: string
- mode:
- enum:
- - cluster
- - client
- type: string
- monitoring:
- properties:
- exposeDriverMetrics:
- type: boolean
- exposeExecutorMetrics:
- type: boolean
- metricsProperties:
- type: string
- metricsPropertiesFile:
- type: string
- prometheus:
- properties:
- configFile:
- type: string
- configuration:
- type: string
- jmxExporterJar:
- type: string
- port:
- format: int32
- maximum: 49151
- minimum: 1024
- type: integer
- required:
- - jmxExporterJar
- type: object
- required:
- - exposeDriverMetrics
- - exposeExecutorMetrics
- type: object
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- pythonVersion:
- enum:
- - "2"
- - "3"
- type: string
- restartPolicy:
- properties:
- onFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- onSubmissionFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onSubmissionFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- type:
- enum:
- - Never
- - Always
- - OnFailure
- type: string
- type: object
- retryInterval:
- format: int64
- type: integer
- serviceAccount:
- type: string
- sparkConf:
- additionalProperties:
- type: string
- type: object
- sparkConfigMap:
- type: string
- sparkVersion:
- type: string
- timeToLiveSeconds:
- format: int64
- type: integer
- type:
- enum:
- - Java
- - Python
- - Scala
- - R
- type: string
- volumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- type: string
- kind:
- type: string
- readOnly:
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- type: string
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- wwids:
- items:
- type: string
- type: array
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- secret:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
- type: array
- required:
- - sources
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- type: string
- monitors:
- items:
- type: string
- type: array
- pool:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- sslEnabled:
- type: boolean
- storageMode:
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- required:
- - driver
- - executor
- - sparkVersion
- - type
- type: object
- required:
- - schedule
- - template
- type: object
- status:
- properties:
- lastRun:
- format: date-time
- nullable: true
- type: string
- lastRunName:
- type: string
- nextRun:
- format: date-time
- nullable: true
- type: string
- pastFailedRunNames:
- items:
- type: string
- type: array
- pastSuccessfulRunNames:
- items:
- type: string
- type: array
- reason:
- type: string
- scheduleState:
- type: string
- type: object
- required:
- - metadata
- - spec
- type: object
- version: v1beta2
- versions:
- - name: v1beta2
- served: true
- storage: true
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: (unknown)
- creationTimestamp: null
- name: sparkapplications.sparkoperator.k8s.io
-spec:
- group: sparkoperator.k8s.io
- names:
- kind: SparkApplication
- listKind: SparkApplicationList
- plural: sparkapplications
- shortNames:
- - sparkapp
- singular: sparkapplication
- scope: Namespaced
- subresources:
- status: {}
- validation:
- openAPIV3Schema:
- properties:
- apiVersion:
- type: string
- kind:
- type: string
- metadata:
- type: object
- spec:
- properties:
- arguments:
- items:
- type: string
- type: array
- batchScheduler:
- type: string
- batchSchedulerOptions:
- properties:
- priorityClassName:
- type: string
- queue:
- type: string
- type: object
- deps:
- properties:
- files:
- items:
- type: string
- type: array
- jars:
- items:
- type: string
- type: array
- pyFiles:
- items:
- type: string
- type: array
- type: object
- driver:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- podName:
- pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
- type: string
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- serviceAccount:
- type: string
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- executor:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- deleteOnTermination:
- type: boolean
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- instances:
- format: int32
- minimum: 1
- type: integer
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- failureRetries:
- format: int32
- type: integer
- hadoopConf:
- additionalProperties:
- type: string
- type: object
- hadoopConfigMap:
- type: string
- image:
- type: string
- imagePullPolicy:
- type: string
- imagePullSecrets:
- items:
- type: string
- type: array
- mainApplicationFile:
- type: string
- mainClass:
- type: string
- memoryOverheadFactor:
- type: string
- mode:
- enum:
- - cluster
- - client
- type: string
- monitoring:
- properties:
- exposeDriverMetrics:
- type: boolean
- exposeExecutorMetrics:
- type: boolean
- metricsProperties:
- type: string
- metricsPropertiesFile:
- type: string
- prometheus:
- properties:
- configFile:
- type: string
- configuration:
- type: string
- jmxExporterJar:
- type: string
- port:
- format: int32
- maximum: 49151
- minimum: 1024
- type: integer
- required:
- - jmxExporterJar
- type: object
- required:
- - exposeDriverMetrics
- - exposeExecutorMetrics
- type: object
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- pythonVersion:
- enum:
- - "2"
- - "3"
- type: string
- restartPolicy:
- properties:
- onFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- onSubmissionFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onSubmissionFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- type:
- enum:
- - Never
- - Always
- - OnFailure
- type: string
- type: object
- retryInterval:
- format: int64
- type: integer
- serviceAccount:
- type: string
- sparkConf:
- additionalProperties:
- type: string
- type: object
- sparkConfigMap:
- type: string
- sparkVersion:
- type: string
- timeToLiveSeconds:
- format: int64
- type: integer
- type:
- enum:
- - Java
- - Python
- - Scala
- - R
- type: string
- volumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- type: string
- kind:
- type: string
- readOnly:
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- type: string
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- wwids:
- items:
- type: string
- type: array
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- secret:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
- type: array
- required:
- - sources
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- type: string
- monitors:
- items:
- type: string
- type: array
- pool:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- sslEnabled:
- type: boolean
- storageMode:
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- required:
- - driver
- - executor
- - sparkVersion
- - type
- type: object
- status:
- properties:
- applicationState:
- properties:
- errorMessage:
- type: string
- state:
- type: string
- required:
- - state
- type: object
- driverInfo:
- properties:
- podName:
- type: string
- webUIAddress:
- type: string
- webUIIngressAddress:
- type: string
- webUIIngressName:
- type: string
- webUIPort:
- format: int32
- type: integer
- webUIServiceName:
- type: string
- type: object
- executionAttempts:
- format: int32
- type: integer
- executorState:
- additionalProperties:
- type: string
- type: object
- sparkApplicationId:
- type: string
- submissionAttempts:
- format: int32
- type: integer
- submissionID:
- type: string
- submissionTime:
- format: date-time
- nullable: true
- type: string
- terminationTime:
- format: date-time
- nullable: true
- type: string
- required:
- - driverInfo
- type: object
- required:
- - metadata
- - spec
- type: object
- version: v1beta2
- versions:
- - name: v1beta2
- served: true
- storage: true
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: apiextensions.k8s.io/v1beta1
-kind: CustomResourceDefinition
-metadata:
- name: pytorchjobs.kubeflow.org
-spec:
- additionalPrinterColumns:
- - JSONPath: .status.conditions[-1:].type
- name: State
- type: string
- - JSONPath: .metadata.creationTimestamp
- name: Age
- type: date
- group: kubeflow.org
- names:
- kind: PyTorchJob
- plural: pytorchjobs
- singular: pytorchjob
- scope: Namespaced
- subresources:
- status: {}
- validation:
- openAPIV3Schema:
- properties:
- spec:
- properties:
- pytorchReplicaSpecs:
- properties:
- Master:
- properties:
- replicas:
- maximum: 1
- minimum: 1
- type: integer
- Worker:
- properties:
- replicas:
- minimum: 1
- type: integer
- versions:
- - name: v1
- served: true
- storage: true
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: datacatalog
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- annotations:
- eks.amazonaws.com/role-arn: arn:aws:iam::111222333456:role/flyte-operator
- name: flyteadmin
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- annotations:
- eks.amazonaws.com/role-arn: arn:aws:iam::111222333456:role/flyte-operator
- name: flytepropeller
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
- namespace: kubeflow
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: sparkoperator
- namespace: sparkoperator
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-rules:
-- apiGroups:
- - '*'
- resources:
- - mutatingwebhookconfigurations
- - secrets
- - pods
- - replicasets/finalizers
- verbs:
- - get
- - create
- - update
- - patch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flyteadmin
- namespace: flyte
-rules:
-- apiGroups:
- - ""
- - flyte.lyft.com
- - rbac.authorization.k8s.io
- resources:
- - configmaps
- - flyteworkflows
- - namespaces
- - pods
- - resourcequotas
- - roles
- - rolebindings
- - secrets
- - services
- - serviceaccounts
- - spark-role
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flytepropeller
-rules:
-- apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - update
- - delete
- - patch
-- apiGroups:
- - '*'
- resources:
- - '*'
- verbs:
- - get
- - list
- - watch
- - create
- - update
- - delete
- - patch
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - get
- - list
- - watch
- - create
- - delete
- - update
-- apiGroups:
- - flyte.lyft.com
- resources:
- - flyteworkflows
- - flyteworkflows/finalizers
- verbs:
- - get
- - list
- - watch
- - create
- - update
- - delete
- - patch
- - post
- - deletecollection
----
-aggregationRule:
- clusterRoleSelectors:
- - matchLabels:
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pytorchjobs-admin: "true"
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- kustomize.component: pytorch-operator
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
- name: kubeflow-pytorchjobs-admin
-rules: []
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- kustomize.component: pytorch-operator
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pytorchjobs-admin: "true"
- name: kubeflow-pytorchjobs-edit
-rules:
-- apiGroups:
- - kubeflow.org
- resources:
- - pytorchjobs
- - pytorchjobs/status
- verbs:
- - get
- - list
- - watch
- - create
- - delete
- - deletecollection
- - patch
- - update
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- kustomize.component: pytorch-operator
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
- name: kubeflow-pytorchjobs-view
-rules:
-- apiGroups:
- - kubeflow.org
- resources:
- - pytorchjobs
- - pytorchjobs/status
- verbs:
- - get
- - list
- - watch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: sparkoperator
-rules:
-- apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - '*'
-- apiGroups:
- - ""
- resources:
- - services
- - configmaps
- - secrets
- verbs:
- - create
- - get
- - delete
-- apiGroups:
- - extensions
- resources:
- - ingresses
- verbs:
- - create
- - get
- - delete
-- apiGroups:
- - ""
- resources:
- - nodes
- verbs:
- - get
-- apiGroups:
- - batch
- resources:
- - jobs
- verbs:
- - create
- - get
- - update
- - delete
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - update
- - patch
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - create
- - get
- - update
- - delete
-- apiGroups:
- - admissionregistration.k8s.io
- resources:
- - mutatingwebhookconfigurations
- verbs:
- - create
- - get
- - update
- - delete
-- apiGroups:
- - sparkoperator.k8s.io
- resources:
- - sparkapplications
- - scheduledsparkapplications
- - sparkapplications/status
- - scheduledsparkapplications/status
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: ClusterRole
-metadata:
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
-rules:
-- apiGroups:
- - kubeflow.org
- resources:
- - pytorchjobs
- - pytorchjobs/status
- verbs:
- - '*'
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - '*'
-- apiGroups:
- - ""
- resources:
- - pods
- - services
- - endpoints
- - events
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flyte-pod-webhook
-subjects:
-- kind: ServiceAccount
- name: flyte-pod-webhook
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flyteadmin-binding
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flyteadmin
-subjects:
-- kind: ServiceAccount
- name: flyteadmin
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flytepropeller
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flytepropeller
-subjects:
-- kind: ServiceAccount
- name: flytepropeller
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: sparkoperator
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: sparkoperator
-subjects:
-- kind: ServiceAccount
- name: sparkoperator
- namespace: sparkoperator
----
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: ClusterRoleBinding
-metadata:
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: pytorch-operator
-subjects:
-- kind: ServiceAccount
- name: pytorch-operator
- namespace: kubeflow
----
-apiVersion: v1
-data:
- aa_namespace.yaml: |
- apiVersion: v1
- kind: Namespace
- metadata:
- name: {{ namespace }}
- spec:
- finalizers:
- - kubernetes
- ab_project-resource-quota.yaml: "apiVersion: v1\nkind: ResourceQuota\nmetadata:\n name: project-quota\n namespace: {{ namespace }} \nspec:\n hard:\n limits.cpu: {{ projectQuotaCpu }} \n limits.memory: {{ projectQuotaMemory }}\n\n"
- ad_spark-role.yaml: |
- apiVersion: rbac.authorization.k8s.io/v1
- kind: Role
- metadata:
- name: spark-role
- namespace: {{ namespace }}
- rules:
- - apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - '*'
- - apiGroups:
- - ""
- resources:
- - services
- verbs:
- - '*'
- - apiGroups:
- - ""
- resources:
- - configmaps
- verbs:
- - '*'
- ae_spark-service-account.yaml: |
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: spark
- namespace: {{ namespace }}
- af_spark-role-binding.yaml: "apiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n name: spark-role-binding\n namespace: {{ namespace }} \nroleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: Role\n name: spark-role\nsubjects:\n- kind: ServiceAccount\n name: spark\n namespace: {{ namespace }}\n\n"
-kind: ConfigMap
-metadata:
- name: clusterresource-template-4fbh4bk26k
- namespace: flyte
----
-apiVersion: v1
-data:
- db.yaml: |
- database:
- port: 5432
- username: flyte
- # TODO Change this to match aurora or rds postgres endpoint
- host: flyteadmin-cluster.cluster-456123e6ivib.us-west-2.rds.amazonaws.com
- dbname: flytedatacatalog
- passwordPath: /etc/db/pass.txt
- logger.yaml: |
- # TODO this is used to control the log level
- logger:
- show-source: true
- level: 2
- server.yaml: |
- datacatalog:
- storage-prefix: metadata/datacatalog
- metrics-scope: "datacatalog"
- profiler-port: 10254
- application:
- grpcPort: 8089
- storage.yaml: |
- storage:
- type: stow
- stow:
- kind: s3
- config:
- auth_type: iam
- region: us-east-2
- # TODO replace with the container (bucket) in s3 used by Flyte as intermediate store
- container: "flyte-demo"
- # NOTE this cache configuration is purely for propeller. But since we are having a common storage
- # config, we are configuring this value. In production create a separate storage config for
- # propeller and increase the cache size
- cache:
- max_size_mbs: 512
- target_gc_percent: 70
- limits:
- maxDownloadMBs: 10
-kind: ConfigMap
-metadata:
- name: datacatalog-config-fktmhdgfk8
- namespace: flyte
----
-apiVersion: v1
-data:
- cluster_resources.yaml: |
- cluster_resources:
- templatePath: "/etc/flyte/clusterresource/templates"
- customData:
- - production:
- - projectQuotaCpu:
- value: "5"
- - projectQuotaMemory:
- value: "4000Mi"
- - staging:
- - projectQuotaCpu:
- value: "2"
- - projectQuotaMemory:
- value: "3000Mi"
- - development:
- - projectQuotaCpu:
- value: "4"
- - projectQuotaMemory:
- value: "3000Mi"
- refreshInterval: 1m
- db.yaml: |
- database:
- port: 5432
- username: flyte
- # TODO Change this to match aurora or rds postgres endpoint
- host: flyteadmin-cluster.cluster-456123e6ivib.us-west-2.rds.amazonaws.com
- dbname: flyte
- passwordPath: /etc/db/pass.txt
- domain.yaml: |
- domains:
- - id: development
- name: development
- - id: staging
- name: staging
- - id: production
- name: production
- logger.yaml: |
- # TODO this is used to control the log level
- logger:
- show-source: true
- level: 2
- server.yaml: |
- server:
- httpPort: 8088
- grpcPort: 8089
- security:
- # Controls whether to serve requests over SSL/TLS.
- secure: false
- # Controls whether to enforce authentication. Follow the guide in https://docs.flyte.org/ on how to setup authentication.
- useAuth: false
- allowCors: true
- allowedOrigins:
- # Accepting all domains for Sandbox installation
- - "*"
- allowedHeaders:
- - "Content-Type"
- - "flyte-authorization"
- auth:
- authorizedUris:
- # This should point at your public http Uri.
- - https://localhost:30081
- # This will be used by internal services in the same namespace as flyteadmin
- - http://flyteadmin:80
- # This will be used by internal services in the same cluster but different namespaces
- - http://flyteadmin.flyte.svc.cluster.local:80
-
- # Controls app authentication config
- appAuth:
- thirdPartyConfig:
- flyteClient:
- clientId: flytectl
- redirectUri: https://localhost:53593/callback
- scopes:
- - offline
- - all
- # Controls user authentication
- userAuth:
- openId:
- baseUrl: https://accounts.google.com
- scopes:
- - profile
- - openid
- clientId: 657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com
- flyteadmin:
- roleNameKey: "iam.amazonaws.com/role"
- storage.yaml: |
- storage:
- type: stow
- stow:
- kind: s3
- config:
- auth_type: iam
- region: us-east-2
- # TODO replace with the container (bucket) in s3 used by Flyte as intermediate store
- container: "flyte-demo"
- # NOTE this cache configuration is purely for propeller. But since we are having a common storage
- # config, we are configuring this value. In production create a separate storage config for
- # propeller and increase the cache size
- cache:
- max_size_mbs: 512
- target_gc_percent: 70
- limits:
- maxDownloadMBs: 10
- task_resource_defaults.yaml: |
- task_resources:
- defaults:
- cpu: 1000m
- memory: 1000Mi
- storage: 1000Mi
- limits:
- cpu: 2
- memory: 8Gi
- storage: 2000Mi
- gpu: 1
-kind: ConfigMap
-metadata:
- name: flyte-admin-config-29g4dtt8tc
- namespace: flyte
----
-apiVersion: v1
-data:
- BASE_URL: /console
- CONFIG_DIR: /etc/flyte/config
-kind: ConfigMap
-metadata:
- name: flyte-console-config
- namespace: flyte
----
-apiVersion: v1
-data:
- admin.yaml: |
- event:
- type: admin
- rate: 500
- capacity: 1000
- admin:
- endpoint: flyteadmin:81
- insecure: true
- catalog.yaml: |
- catalog-cache:
- endpoint: datacatalog:89
- type: datacatalog
- insecure: true
- catalog_cache.yaml: "plugins:\n catalogCache: \n reader:\n maxItems: 10000\n writer:\n maxItems: 10000\n"
- copilot.yaml: |
- plugins:
- k8s:
- co-pilot:
- name: "flyte-copilot-"
- image: "cr.flyte.org/flyteorg/flytecopilot:v0.0.15"
- start-timeout: "30s"
- core.yaml: |
- propeller:
- rawoutput-prefix: s3://my-s3-bucket/
- metadata-prefix: metadata/propeller
- workers: 40
- gc-interval: 12h
- max-workflow-retries: 50
- workflow-reeval-duration: 30s
- downstream-eval-duration: 30s
- limit-namespace: "all"
- prof-port: 10254
- metrics-prefix: flyte
- enable-admin-launcher: true
- leader-election:
- lock-config-map:
- name: propeller-leader
- namespace: flyte
- enabled: true
- lease-duration: 15s
- renew-deadline: 10s
- retry-period: 2s
- kube-client-config:
- qps: 100
- burst: 25
- timeout: 30s
- queue:
- type: batch
- batching-interval: 2s
- batch-size: -1
- queue:
- type: maxof
- rate: 100
- capacity: 1000
- base-delay: 5s
- max-delay: 120s
- sub-queue:
- type: bucket
- rate: 100
- capacity: 1000
- workflowStore:
- policy: "ResourceVersionCache"
- enabled_plugins.yaml: |
- tasks:
- max-plugin-phase-versions: 1000000
- task-plugins:
- enabled-plugins:
- - container
- - sidecar
- - spark
- - k8s-array
- - pytorch
- default-for-task-types:
- container: container
- sidecar: sidecar
- spark: spark
- container_array: k8s-array
- pytorch: pytorch
- k8s.yaml: |
- plugins:
- k8s:
- default-env-vars:
- - FLYTE_AWS_ENDPOINT: "http://minio.flyte:9000"
- - FLYTE_AWS_ACCESS_KEY_ID: minio
- - FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage
- default-cpus: 100m
- default-memory: 100Mi
- logger.yaml: |
- # TODO this is used to control the log level
- logger:
- show-source: true
- level: 2
- qubole.yaml: |
- plugins:
- qubole:
- quboleTokenKey: "FLYTE_QUBOLE_CLIENT_TOKEN"
- resource_manager.yaml: |
- propeller:
- resourcemanager:
- type: redis
- resourceMaxQuota: 10000
- redis:
- hostPath: redis-resource-manager:6379
- hostKey: mypassword
- spark.yaml: |
- plugins:
- spark:
- spark-config-default:
- # We override the default credentials chain provider for Hadoop so that
- # it can use the serviceAccount based IAM role or ec2 metadata based.
- # This is more in line with how AWS works
- - 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"
- storage.yaml: |
- storage:
- type: stow
- stow:
- kind: s3
- config:
- auth_type: iam
- region: us-east-2
- # TODO replace with the container (bucket) in s3 used by Flyte as intermediate store
- container: "flyte-demo"
- # NOTE this cache configuration is purely for propeller. But since we are having a common storage
- # config, we are configuring this value. In production create a separate storage config for
- # propeller and increase the cache size
- cache:
- max_size_mbs: 512
- target_gc_percent: 70
- limits:
- maxDownloadMBs: 10
- task_logs.yaml: |
- plugins:
- logs:
- # Log links can link to multiple options
- # #1 Kubernetes dashboard is disabled in GCP
- kubernetes-enabled: false
- # #2 AWS Cloudwatch
- cloudwatch-enabled: true
- # TODO Add region and log group
- cloudwatch-region:
- cloudwatch-log-group:
-kind: ConfigMap
-metadata:
- name: flyte-propeller-config-dtkccdkch8
- namespace: flyte
----
-apiVersion: v1
-data:
- admin.yaml: |
- admin:
- clientId: flytepropeller
- clientSecretLocation: /etc/secrets/client_secret
- endpoint: flyteadmin:81
- insecure: true
- event:
- capacity: 1000
- rate: 500
- type: admin
- db.yaml: |
- database:
- dbname: postgres
- host: postgres
- port: 5432
- username: postgres
- logger.yaml: |
- logger:
- level: 4
- show-source: true
-kind: ConfigMap
-metadata:
- labels:
- app.kubernetes.io/instance: flyte
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/name: flytescheduler
- helm.sh/chart: flyte-v0.1.10
- name: flyte-scheduler-config
- namespace: flyte
----
-apiVersion: v1
-data:
- pass.txt: eW91cnBhc3N3b3Jk
-kind: Secret
-metadata:
- name: db-pass-bthd2588cc
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-admin-auth
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-secret-auth
- namespace: flyte
-stringData:
- client_secret: foobar
-type: Opaque
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- contour.heptio.com/upstream-protocol.h2c: grpc
- name: datacatalog
- namespace: flyte
-spec:
- ports:
- - name: http
- port: 88
- protocol: TCP
- targetPort: 8088
- - name: grpc
- port: 89
- protocol: TCP
- targetPort: 8089
- selector:
- app: datacatalog
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- cloud.google.com/load-balancer-type: Internal
- name: datacatalog-metrics
- namespace: flyte
-spec:
- ports:
- - name: http-metrics
- port: 10254
- protocol: TCP
- selector:
- app: datacatalog
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- projectcontour.io/upstream-protocol.h2c: grpc
- name: flyte-pod-webhook
- namespace: flyte
-spec:
- ports:
- - name: https
- port: 443
- protocol: TCP
- targetPort: 9443
- selector:
- app: flyte-pod-webhook
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- external-dns.alpha.kubernetes.io/hostname: flyteadmin.subdomain.mydomain.com
- projectcontour.io/upstream-protocol.h2c: grpc
- service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600"
- service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: sg-...,sg-...,sg-...
- name: flyteadmin
- namespace: flyte
-spec:
- loadBalancerSourceRanges:
- - 0.0.0.0
- ports:
- - name: http
- port: 80
- protocol: TCP
- targetPort: 8088
- - name: grpc
- port: 81
- protocol: TCP
- targetPort: 8089
- selector:
- app: flyteadmin
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- external-dns.alpha.kubernetes.io/hostname: flyte.subdomain.mydomain.com
- service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600"
- service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: sg-....,sg-...,sg-...
- name: flyteconsole
- namespace: flyte
-spec:
- loadBalancerSourceRanges:
- - 0.0.0.0
- ports:
- - name: http
- port: 80
- protocol: TCP
- targetPort: 8080
- selector:
- app: flyteconsole
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- cloud.google.com/load-balancer-type: Internal
- name: flytepropeller
- namespace: flyte
-spec:
- ports:
- - name: http-metrics
- port: 10254
- protocol: TCP
- selector:
- app: flytepropeller
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- app: redis-resource-manager
- name: redis-resource-manager
- namespace: flyte
-spec:
- ports:
- - name: redis
- port: 6379
- protocol: TCP
- targetPort: redis
- selector:
- app: redis-resource-manager
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "8443"
- prometheus.io/scrape: "true"
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
- namespace: kubeflow
-spec:
- ports:
- - name: monitoring-port
- port: 8443
- targetPort: 8443
- selector:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- name: spark-webhook
- namespace: sparkoperator
-spec:
- ports:
- - name: webhook
- port: 443
- targetPort: 8080
- selector:
- app.kubernetes.io/name: sparkoperator
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: datacatalog
- name: datacatalog
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: datacatalog
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: datacatalog
- app.kubernetes.io/name: datacatalog
- app.kubernetes.io/version: 0.3.0
- spec:
- containers:
- - command:
- - datacatalog
- - --config
- - /etc/datacatalog/config/*.yaml
- - serve
- image: cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: datacatalog
- ports:
- - containerPort: 8088
- - containerPort: 8089
- resources:
- limits:
- cpu: "2"
- ephemeral-storage: 1000Mi
- memory: 1Gi
- volumeMounts:
- - mountPath: /etc/datacatalog/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- initContainers:
- - command:
- - datacatalog
- - --config
- - /etc/datacatalog/config/*.yaml
- - migrate
- - run
- image: cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: run-migrations
- volumeMounts:
- - mountPath: /etc/datacatalog/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: datacatalog
- volumes:
- - emptyDir: {}
- name: shared-data
- - configMap:
- name: datacatalog-config-fktmhdgfk8
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyte-pod-webhook
- name: flyte-pod-webhook
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: flyte-pod-webhook
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flyte-pod-webhook
- app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: 0.5.13
- spec:
- containers:
- - args:
- - webhook
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: webhook
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- readOnly: true
- - mountPath: /etc/webhook/certs
- name: webhook-certs
- readOnly: true
- initContainers:
- - args:
- - webhook
- - init-certs
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: generate-secrets
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flyte-pod-webhook
- volumes:
- - configMap:
- name: flyte-propeller-config-dtkccdkch8
- name: config-volume
- - name: webhook-certs
- secret:
- secretName: flyte-pod-webhook
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyteadmin
- name: flyteadmin
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flyteadmin
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flyteadmin
- app.kubernetes.io/name: flyteadmin
- app.kubernetes.io/version: 0.4.13
- spec:
- containers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - serve
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: flyteadmin
- ports:
- - containerPort: 8088
- - containerPort: 8089
- resources:
- limits:
- cpu: "2"
- ephemeral-storage: 1Gi
- memory: 1Gi
- volumeMounts:
- - mountPath: /srv/flyte
- name: shared-data
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - mountPath: /etc/secrets/
- name: auth
- - command:
- - sh
- - -c
- - ln -s /usr/share/nginx/html /usr/share/nginx/html/openapi && sh /usr/local/bin/docker-run.sh
- env:
- - name: PAGE_TITLE
- value: Flyte Admin OpenAPI
- - name: SPEC_URL
- value: /api/v1/openapi
- - name: PORT
- value: "8087"
- image: docker.io/redocly/redoc
- imagePullPolicy: IfNotPresent
- name: redoc
- ports:
- - containerPort: 8087
- resources:
- limits:
- cpu: "0.1"
- memory: 200Mi
- initContainers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - migrate
- - run
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: run-migrations
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - migrate
- - seed-projects
- - flytesnacks
- - flytetester
- - flyteexamples
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: seed-projects
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - sync
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - args:
- - flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --fromPath /etc/scratch/secrets
- command:
- - /bin/sh
- - -c
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: generate-secrets
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/scratch
- name: scratch
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flyteadmin
- volumes:
- - emptyDir: {}
- name: shared-data
- - emptyDir: {}
- name: scratch
- - configMap:
- name: flyte-admin-config-29g4dtt8tc
- name: config-volume
- - configMap:
- name: clusterresource-template-4fbh4bk26k
- name: resource-templates
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
- - name: auth
- secret:
- secretName: flyte-admin-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyteconsole
- name: flyteconsole
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flyteconsole
- template:
- metadata:
- labels:
- app: flyteconsole
- app.kubernetes.io/name: flyteconsole
- app.kubernetes.io/version: 0.19.0
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: flyte-console-config
- image: cr.flyte.org/flyteorg/flyteconsole:v1.10.2
- name: flyteconsole
- ports:
- - containerPort: 8080
- volumeMounts:
- - mountPath: /srv/flyte
- name: shared-data
- securityContext:
- fsGroupChangePolicy: Always
- runAsUser: 1000
- volumes:
- - emptyDir: {}
- name: shared-data
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flytepropeller
- name: flytepropeller
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: flytepropeller
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flytepropeller
- app.kubernetes.io/name: flytepropeller
- app.kubernetes.io/version: 0.7.1
- spec:
- containers:
- - args:
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: flytepropeller
- ports:
- - containerPort: 10254
- resources:
- limits:
- cpu: "2"
- ephemeral-storage: 1Gi
- memory: 4Gi
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/secrets/
- name: auth
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flytepropeller
- volumes:
- - configMap:
- name: flyte-propeller-config-dtkccdkch8
- name: config-volume
- - name: auth
- secret:
- secretName: flyte-secret-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flytescheduler
- name: flytescheduler
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flytescheduler
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flytescheduler
- app.kubernetes.io/name: flytescheduler
- app.kubernetes.io/version: 0.3.4
- spec:
- containers:
- - command:
- - flytescheduler
- - run
- - --config
- - /etc/flyte/config/*.yaml
- image: cr.flyte.org/flyteorg/flytescheduler:v0.6.49
- imagePullPolicy: IfNotPresent
- name: flytescheduler
- resources:
- limits:
- cpu: 250m
- ephemeral-storage: 100Mi
- memory: 500Mi
- requests:
- cpu: 10m
- ephemeral-storage: 50Mi
- memory: 50Mi
- volumeMounts:
- - mountPath: /etc/secrets/
- name: auth
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- initContainers:
- - command:
- - flytescheduler
- - precheck
- - --config
- - /etc/flyte/config/*.yaml
- image: cr.flyte.org/flyteorg/flytescheduler:v0.6.49
- imagePullPolicy: IfNotPresent
- name: flytescheduler-check
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: flyte-scheduler-config
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
- - name: auth
- secret:
- secretName: flyte-secret-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- namespace: kubeflow
-spec:
- replicas: 1
- selector:
- matchLabels:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- template:
- metadata:
- labels:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- spec:
- containers:
- - command:
- - /pytorch-operator.v1
- - --alsologtostderr
- - -v=1
- - --monitoring-port=8443
- env:
- - name: MY_POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: MY_POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f
- name: pytorch-operator
- serviceAccountName: pytorch-operator
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- name: sparkoperator
- namespace: sparkoperator
-spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/name: sparkoperator
- strategy:
- type: Recreate
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- spec:
- containers:
- - args:
- - -logtostderr
- - -v=2
- - -controller-threads=20
- - -enable-metrics=true
- - '-metrics-prefix=service:'
- - -metrics-labels=task_name
- - -metrics-labels=workflow_name
- - -enable-webhook=true
- - -webhook-svc-namespace=sparkoperator
- command:
- - /usr/bin/spark-operator
- image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5
- imagePullPolicy: Always
- name: sparkoperator-unknown
- ports:
- - containerPort: 10254
- - containerPort: 8080
- volumeMounts:
- - mountPath: /etc/webhook-certs
- name: webhook-certs
- serviceAccountName: sparkoperator
- volumes:
- - name: webhook-certs
- secret:
- secretName: spark-webhook-certs
----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: redis
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: redis-resource-manager
- serviceName: redis-resource-manager
- template:
- metadata:
- labels:
- app: redis-resource-manager
- spec:
- containers:
- - env:
- - name: REDIS_PASSWORD
- value: mypassword
- image: ecr.flyte.org/bitnami/redis:6.2.5-debian-10-r59
- imagePullPolicy: IfNotPresent
- livenessProbe:
- exec:
- command:
- - redis-cli
- - ping
- failureThreshold: 3
- initialDelaySeconds: 30
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- name: redis-resource-manager
- ports:
- - containerPort: 6379
- name: redis
- protocol: TCP
- readinessProbe:
- exec:
- command:
- - redis-cli
- - ping
- failureThreshold: 3
- initialDelaySeconds: 5
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- resources:
- requests:
- cpu: 200m
- memory: 128Mi
- volumeMounts:
- - mountPath: /bitnami
- name: redis-data
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- volumes:
- - emptyDir: {}
- name: redis-data
----
-apiVersion: batch/v1beta1
-kind: CronJob
-metadata:
- name: syncresources
- namespace: flyte
-spec:
- jobTemplate:
- spec:
- template:
- spec:
- containers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - sync
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- restartPolicy: OnFailure
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: clusterresource-template-4fbh4bk26k
- name: resource-templates
- - configMap:
- name: flyte-admin-config-29g4dtt8tc
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
- schedule: '*/1 * * * *'
----
-apiVersion: batch/v1
-kind: Job
-metadata:
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- name: sparkoperator-init
- namespace: sparkoperator
-spec:
- backoffLimit: 3
- template:
- metadata:
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- spec:
- containers:
- - command:
- - /usr/bin/gencerts.sh
- - --namespace
- - sparkoperator
- - -p
- image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5
- imagePullPolicy: IfNotPresent
- name: main
- restartPolicy: Never
- serviceAccountName: sparkoperator
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- annotations:
- alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
- alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6
- alb.ingress.kubernetes.io/group.name: flytesystem
- alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
- alb.ingress.kubernetes.io/scheme: internet-facing
- alb.ingress.kubernetes.io/tags: service_instance=production
- kubernetes.io/ingress.class: alb
- labels:
- app: flyteadmin
- name: flytesystem
- namespace: flyte
-spec:
- rules:
- - http:
- paths:
- - backend:
- service:
- name: ssl-redirect
- port:
- name: use-annotation
- path: /*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /console
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /console/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /api/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /healthcheck
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /v1/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 87
- path: /openapi/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /.well-known/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /login
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /login/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /logout
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /logout/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /callback
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /callback/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /me
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /config
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /config/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /oauth2
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /oauth2/*
- pathType: ImplementationSpecific
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- annotations:
- alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
- alb.ingress.kubernetes.io/backend-protocol-version: GRPC
- alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6
- alb.ingress.kubernetes.io/group.name: flytesystem
- alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
- alb.ingress.kubernetes.io/scheme: internet-facing
- alb.ingress.kubernetes.io/tags: service_instance=production
- kubernetes.io/ingress.class: alb
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- labels:
- app: flyteadmin
- name: flytesystem-grpc
- namespace: flyte
-spec:
- rules:
- - http:
- paths:
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.SignalService/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.AdminService/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.AuthMetadataService/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.IdentityService/*
- pathType: ImplementationSpecific
diff --git a/deployment/eks/flyte_helm_controlplane_generated.yaml b/deployment/eks/flyte_helm_controlplane_generated.yaml
index 5db040c65d..1ae984cf69 100644
--- a/deployment/eks/flyte_helm_controlplane_generated.yaml
+++ b/deployment/eks/flyte_helm_controlplane_generated.yaml
@@ -173,12 +173,10 @@ data:
task_resources:
defaults:
cpu: 1000m
- ephemeralStorage: 500Mi
memory: 1000Mi
storage: 1000Mi
limits:
cpu: 2
- ephemeralStorage: 20Mi
gpu: 1
memory: 1Gi
storage: 2000Mi
@@ -555,17 +553,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "61fa8a4eebe7e96a3e25b0b2c4baaf7d6af84924167f57e569632fdd282b442"
+ configChecksum: "053b20ebc40227f6ed8ddc61f5997ee7997c604158f773779f20ec61af11a2f"
labels:
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flyteadmin
@@ -573,9 +574,13 @@ spec:
- /etc/flyte/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -590,9 +595,13 @@ spec:
- flytesnacks
- flytetester
- flyteexamples
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -604,9 +613,13 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- sync
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -617,13 +630,17 @@ spec:
- mountPath: /etc/secrets/
name: admin-secrets
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command: ["/bin/sh", "-c"]
args:
[
"flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -640,7 +657,7 @@ spec:
- --config
- /etc/flyte/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flyteadmin
ports:
@@ -665,6 +682,10 @@ spec:
cpu: 50m
ephemeral-storage: 200Mi
memory: 200Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -741,7 +762,7 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
volumeMounts:
@@ -790,11 +811,14 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
containers:
- - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.2"
+ - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3"
imagePullPolicy: "IfNotPresent"
name: flyteconsole
envFrom:
@@ -802,6 +826,10 @@ spec:
name: flyte-console-config
ports:
- containerPort: 8080
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -850,10 +878,13 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- datacatalog
@@ -861,7 +892,7 @@ spec:
- /etc/datacatalog/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
volumeMounts:
@@ -869,19 +900,27 @@ spec:
name: db-pass
- mountPath: /etc/datacatalog/config
name: config-volume
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 1
@@ -934,26 +973,33 @@ spec:
template:
metadata:
annotations:
- configChecksum: "61fa8a4eebe7e96a3e25b0b2c4baaf7d6af84924167f57e569632fdd282b442"
+ configChecksum: "053b20ebc40227f6ed8ddc61f5997ee7997c604158f773779f20ec61af11a2f"
labels:
app.kubernetes.io/name: flytescheduler
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flytescheduler
- precheck
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler-check
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -967,11 +1013,15 @@ spec:
- run
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler
ports:
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1020,6 +1070,7 @@ metadata:
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -1175,9 +1226,10 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":
{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
+ alb.ingress.kubernetes.io/backend-protocol-version: GRPC
alb.ingress.kubernetes.io/certificate-arn: ''
alb.ingress.kubernetes.io/group.name: flyte
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
@@ -1186,9 +1238,9 @@ metadata:
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
- alb.ingress.kubernetes.io/backend-protocol-version: GRPC
nginx.ingress.kubernetes.io/backend-protocol: GRPC
spec:
+ ingressClassName:
rules:
- host: null
http:
diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml
index d4c301510b..cada767856 100644
--- a/deployment/eks/flyte_helm_dataplane_generated.yaml
+++ b/deployment/eks/flyte_helm_dataplane_generated.yaml
@@ -94,7 +94,7 @@ data:
plugins:
k8s:
co-pilot:
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0
name: flyte-copilot-
start-timeout: 30s
core.yaml: |
@@ -154,6 +154,7 @@ data:
- container
- sidecar
- k8s-array
+ - agent-service
k8s.yaml: |
plugins:
k8s:
@@ -427,17 +428,17 @@ spec:
template:
metadata:
annotations:
- configChecksum: "799320510466012ad23a7380ea4ac9ff51fd8ed6e56d9c543179b6bb6a9bcf1"
+ configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857"
labels:
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
runAsUser: 1001
- fsGroupChangePolicy: "Always"
priorityClassName: system-cluster-critical
containers:
- command:
@@ -453,7 +454,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytepropeller
ports:
@@ -507,18 +508,21 @@ spec:
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: v1.10.7-b4
+ app.kubernetes.io/version: v1.11.0-b0
annotations:
- configChecksum: "799320510466012ad23a7380ea4ac9ff51fd8ed6e56d9c543179b6bb6a9bcf1"
+ configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857"
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
serviceAccountName: flyte-pod-webhook
initContainers:
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -536,12 +540,16 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
containers:
- name: webhook
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -560,6 +568,15 @@ spec:
fieldPath: metadata.namespace
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -593,6 +610,7 @@ metadata:
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -748,9 +766,10 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":
{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
+ alb.ingress.kubernetes.io/backend-protocol-version: GRPC
alb.ingress.kubernetes.io/certificate-arn: ''
alb.ingress.kubernetes.io/group.name: flyte
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
@@ -759,9 +778,9 @@ metadata:
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
- alb.ingress.kubernetes.io/backend-protocol-version: GRPC
nginx.ingress.kubernetes.io/backend-protocol: GRPC
spec:
+ ingressClassName:
rules:
- host: null
http:
diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml
index dc69345261..1d4c79874f 100644
--- a/deployment/eks/flyte_helm_generated.yaml
+++ b/deployment/eks/flyte_helm_generated.yaml
@@ -204,12 +204,10 @@ data:
task_resources:
defaults:
cpu: 1000m
- ephemeralStorage: 500Mi
memory: 1000Mi
storage: 1000Mi
limits:
cpu: 2
- ephemeralStorage: 20Mi
gpu: 1
memory: 1Gi
storage: 2000Mi
@@ -462,7 +460,7 @@ data:
plugins:
k8s:
co-pilot:
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0
name: flyte-copilot-
start-timeout: 30s
core.yaml: |
@@ -522,6 +520,7 @@ data:
- container
- sidecar
- k8s-array
+ - agent-service
k8s.yaml: |
plugins:
k8s:
@@ -880,17 +879,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "61fa8a4eebe7e96a3e25b0b2c4baaf7d6af84924167f57e569632fdd282b442"
+ configChecksum: "053b20ebc40227f6ed8ddc61f5997ee7997c604158f773779f20ec61af11a2f"
labels:
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flyteadmin
@@ -898,9 +900,13 @@ spec:
- /etc/flyte/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -915,9 +921,13 @@ spec:
- flytesnacks
- flytetester
- flyteexamples
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -929,9 +939,13 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- sync
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -942,13 +956,17 @@ spec:
- mountPath: /etc/secrets/
name: admin-secrets
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command: ["/bin/sh", "-c"]
args:
[
"flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -965,7 +983,7 @@ spec:
- --config
- /etc/flyte/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flyteadmin
ports:
@@ -990,6 +1008,10 @@ spec:
cpu: 50m
ephemeral-storage: 200Mi
memory: 200Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -1066,7 +1088,7 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
volumeMounts:
@@ -1115,11 +1137,14 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
containers:
- - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.2"
+ - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3"
imagePullPolicy: "IfNotPresent"
name: flyteconsole
envFrom:
@@ -1127,6 +1152,10 @@ spec:
name: flyte-console-config
ports:
- containerPort: 8080
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1175,10 +1204,13 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- datacatalog
@@ -1186,7 +1218,7 @@ spec:
- /etc/datacatalog/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
volumeMounts:
@@ -1194,19 +1226,27 @@ spec:
name: db-pass
- mountPath: /etc/datacatalog/config
name: config-volume
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 1
@@ -1259,26 +1299,33 @@ spec:
template:
metadata:
annotations:
- configChecksum: "61fa8a4eebe7e96a3e25b0b2c4baaf7d6af84924167f57e569632fdd282b442"
+ configChecksum: "053b20ebc40227f6ed8ddc61f5997ee7997c604158f773779f20ec61af11a2f"
labels:
app.kubernetes.io/name: flytescheduler
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flytescheduler
- precheck
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler-check
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -1292,11 +1339,15 @@ spec:
- run
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler
ports:
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1347,17 +1398,17 @@ spec:
template:
metadata:
annotations:
- configChecksum: "799320510466012ad23a7380ea4ac9ff51fd8ed6e56d9c543179b6bb6a9bcf1"
+ configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857"
labels:
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
runAsUser: 1001
- fsGroupChangePolicy: "Always"
priorityClassName: system-cluster-critical
containers:
- command:
@@ -1373,7 +1424,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytepropeller
ports:
@@ -1427,18 +1478,21 @@ spec:
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: v1.10.7-b4
+ app.kubernetes.io/version: v1.11.0-b0
annotations:
- configChecksum: "799320510466012ad23a7380ea4ac9ff51fd8ed6e56d9c543179b6bb6a9bcf1"
+ configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857"
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
serviceAccountName: flyte-pod-webhook
initContainers:
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -1456,12 +1510,16 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
containers:
- name: webhook
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -1480,6 +1538,15 @@ spec:
fieldPath: metadata.namespace
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -1513,6 +1580,7 @@ metadata:
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -1668,9 +1736,10 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":
{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
+ alb.ingress.kubernetes.io/backend-protocol-version: GRPC
alb.ingress.kubernetes.io/certificate-arn: ''
alb.ingress.kubernetes.io/group.name: flyte
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
@@ -1679,9 +1748,9 @@ metadata:
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
nginx.ingress.kubernetes.io/app-root: /console
- alb.ingress.kubernetes.io/backend-protocol-version: GRPC
nginx.ingress.kubernetes.io/backend-protocol: GRPC
spec:
+ ingressClassName:
rules:
- host: null
http:
diff --git a/deployment/gcp/flyte_generated.yaml b/deployment/gcp/flyte_generated.yaml
deleted file mode 100644
index 01d708d860..0000000000
--- a/deployment/gcp/flyte_generated.yaml
+++ /dev/null
@@ -1,9553 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
- name: flyte
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: kubeflow
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: sparkoperator
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- name: flyteworkflows.flyte.lyft.com
-spec:
- group: flyte.lyft.com
- names:
- kind: FlyteWorkflow
- plural: flyteworkflows
- shortNames:
- - fly
- singular: flyteworkflow
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- type: object
- x-kubernetes-preserve-unknown-fields: true
- served: true
- storage: true
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: (unknown)
- creationTimestamp: null
- name: scheduledsparkapplications.sparkoperator.k8s.io
-spec:
- group: sparkoperator.k8s.io
- names:
- kind: ScheduledSparkApplication
- listKind: ScheduledSparkApplicationList
- plural: scheduledsparkapplications
- shortNames:
- - scheduledsparkapp
- singular: scheduledsparkapplication
- scope: Namespaced
- subresources:
- status: {}
- validation:
- openAPIV3Schema:
- properties:
- apiVersion:
- type: string
- kind:
- type: string
- metadata:
- type: object
- spec:
- properties:
- concurrencyPolicy:
- type: string
- failedRunHistoryLimit:
- format: int32
- type: integer
- schedule:
- type: string
- successfulRunHistoryLimit:
- format: int32
- type: integer
- suspend:
- type: boolean
- template:
- properties:
- arguments:
- items:
- type: string
- type: array
- batchScheduler:
- type: string
- batchSchedulerOptions:
- properties:
- priorityClassName:
- type: string
- queue:
- type: string
- type: object
- deps:
- properties:
- files:
- items:
- type: string
- type: array
- jars:
- items:
- type: string
- type: array
- pyFiles:
- items:
- type: string
- type: array
- type: object
- driver:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- podName:
- pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
- type: string
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- serviceAccount:
- type: string
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- executor:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- deleteOnTermination:
- type: boolean
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- instances:
- format: int32
- minimum: 1
- type: integer
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- failureRetries:
- format: int32
- type: integer
- hadoopConf:
- additionalProperties:
- type: string
- type: object
- hadoopConfigMap:
- type: string
- image:
- type: string
- imagePullPolicy:
- type: string
- imagePullSecrets:
- items:
- type: string
- type: array
- mainApplicationFile:
- type: string
- mainClass:
- type: string
- memoryOverheadFactor:
- type: string
- mode:
- enum:
- - cluster
- - client
- type: string
- monitoring:
- properties:
- exposeDriverMetrics:
- type: boolean
- exposeExecutorMetrics:
- type: boolean
- metricsProperties:
- type: string
- metricsPropertiesFile:
- type: string
- prometheus:
- properties:
- configFile:
- type: string
- configuration:
- type: string
- jmxExporterJar:
- type: string
- port:
- format: int32
- maximum: 49151
- minimum: 1024
- type: integer
- required:
- - jmxExporterJar
- type: object
- required:
- - exposeDriverMetrics
- - exposeExecutorMetrics
- type: object
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- pythonVersion:
- enum:
- - "2"
- - "3"
- type: string
- restartPolicy:
- properties:
- onFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- onSubmissionFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onSubmissionFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- type:
- enum:
- - Never
- - Always
- - OnFailure
- type: string
- type: object
- retryInterval:
- format: int64
- type: integer
- serviceAccount:
- type: string
- sparkConf:
- additionalProperties:
- type: string
- type: object
- sparkConfigMap:
- type: string
- sparkVersion:
- type: string
- timeToLiveSeconds:
- format: int64
- type: integer
- type:
- enum:
- - Java
- - Python
- - Scala
- - R
- type: string
- volumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- type: string
- kind:
- type: string
- readOnly:
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- type: string
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- wwids:
- items:
- type: string
- type: array
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- secret:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
- type: array
- required:
- - sources
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- type: string
- monitors:
- items:
- type: string
- type: array
- pool:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- sslEnabled:
- type: boolean
- storageMode:
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- required:
- - driver
- - executor
- - sparkVersion
- - type
- type: object
- required:
- - schedule
- - template
- type: object
- status:
- properties:
- lastRun:
- format: date-time
- nullable: true
- type: string
- lastRunName:
- type: string
- nextRun:
- format: date-time
- nullable: true
- type: string
- pastFailedRunNames:
- items:
- type: string
- type: array
- pastSuccessfulRunNames:
- items:
- type: string
- type: array
- reason:
- type: string
- scheduleState:
- type: string
- type: object
- required:
- - metadata
- - spec
- type: object
- version: v1beta2
- versions:
- - name: v1beta2
- served: true
- storage: true
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: (unknown)
- creationTimestamp: null
- name: sparkapplications.sparkoperator.k8s.io
-spec:
- group: sparkoperator.k8s.io
- names:
- kind: SparkApplication
- listKind: SparkApplicationList
- plural: sparkapplications
- shortNames:
- - sparkapp
- singular: sparkapplication
- scope: Namespaced
- subresources:
- status: {}
- validation:
- openAPIV3Schema:
- properties:
- apiVersion:
- type: string
- kind:
- type: string
- metadata:
- type: object
- spec:
- properties:
- arguments:
- items:
- type: string
- type: array
- batchScheduler:
- type: string
- batchSchedulerOptions:
- properties:
- priorityClassName:
- type: string
- queue:
- type: string
- type: object
- deps:
- properties:
- files:
- items:
- type: string
- type: array
- jars:
- items:
- type: string
- type: array
- pyFiles:
- items:
- type: string
- type: array
- type: object
- driver:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- podName:
- pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
- type: string
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- serviceAccount:
- type: string
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- executor:
- properties:
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- required:
- - key
- - operator
- type: object
- type: array
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- namespaces:
- items:
- type: string
- type: array
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- type: object
- type: object
- annotations:
- additionalProperties:
- type: string
- type: object
- configMaps:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- required:
- - name
- - path
- type: object
- type: array
- coreLimit:
- type: string
- coreRequest:
- type: string
- cores:
- format: int32
- minimum: 1
- type: integer
- deleteOnTermination:
- type: boolean
- dnsConfig:
- properties:
- nameservers:
- items:
- type: string
- type: array
- options:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- type: object
- type: array
- searches:
- items:
- type: string
- type: array
- type: object
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- envSecretKeyRefs:
- additionalProperties:
- properties:
- key:
- type: string
- name:
- type: string
- required:
- - key
- - name
- type: object
- type: object
- envVars:
- additionalProperties:
- type: string
- type: object
- gpu:
- properties:
- name:
- type: string
- quantity:
- format: int64
- type: integer
- required:
- - name
- - quantity
- type: object
- hostNetwork:
- type: boolean
- image:
- type: string
- initContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- instances:
- format: int32
- minimum: 1
- type: integer
- javaOptions:
- type: string
- labels:
- additionalProperties:
- type: string
- type: object
- memory:
- type: string
- memoryOverhead:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- schedulerName:
- type: string
- secrets:
- items:
- properties:
- name:
- type: string
- path:
- type: string
- secretType:
- type: string
- required:
- - name
- - path
- - secretType
- type: object
- type: array
- securityContext:
- properties:
- fsGroup:
- format: int64
- type: integer
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- supplementalGroups:
- items:
- format: int64
- type: integer
- type: array
- sysctls:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- sidecars:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- command:
- items:
- type: string
- type: array
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- prefix:
- type: string
- secretRef:
- properties:
- name:
- type: string
- optional:
- type: boolean
- type: object
- type: object
- type: array
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- type: string
- required:
- - containerPort
- - protocol
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- type: object
- failureThreshold:
- format: int32
- type: integer
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- type: string
- type: object
- requests:
- additionalProperties:
- type: string
- type: object
- type: object
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- drop:
- items:
- type: string
- type: array
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- subPath:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- type: object
- failureRetries:
- format: int32
- type: integer
- hadoopConf:
- additionalProperties:
- type: string
- type: object
- hadoopConfigMap:
- type: string
- image:
- type: string
- imagePullPolicy:
- type: string
- imagePullSecrets:
- items:
- type: string
- type: array
- mainApplicationFile:
- type: string
- mainClass:
- type: string
- memoryOverheadFactor:
- type: string
- mode:
- enum:
- - cluster
- - client
- type: string
- monitoring:
- properties:
- exposeDriverMetrics:
- type: boolean
- exposeExecutorMetrics:
- type: boolean
- metricsProperties:
- type: string
- metricsPropertiesFile:
- type: string
- prometheus:
- properties:
- configFile:
- type: string
- configuration:
- type: string
- jmxExporterJar:
- type: string
- port:
- format: int32
- maximum: 49151
- minimum: 1024
- type: integer
- required:
- - jmxExporterJar
- type: object
- required:
- - exposeDriverMetrics
- - exposeExecutorMetrics
- type: object
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- pythonVersion:
- enum:
- - "2"
- - "3"
- type: string
- restartPolicy:
- properties:
- onFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- onSubmissionFailureRetries:
- format: int32
- minimum: 0
- type: integer
- onSubmissionFailureRetryInterval:
- format: int64
- minimum: 1
- type: integer
- type:
- enum:
- - Never
- - Always
- - OnFailure
- type: string
- type: object
- retryInterval:
- format: int64
- type: integer
- serviceAccount:
- type: string
- sparkConf:
- additionalProperties:
- type: string
- type: object
- sparkConfigMap:
- type: string
- sparkVersion:
- type: string
- timeToLiveSeconds:
- format: int64
- type: integer
- type:
- enum:
- - Java
- - Python
- - Scala
- - R
- type: string
- volumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- type: string
- kind:
- type: string
- readOnly:
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- type: string
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- wwids:
- items:
- type: string
- type: array
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- type: string
- resource:
- type: string
- required:
- - resource
- type: object
- required:
- - path
- type: object
- type: array
- type: object
- secret:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- name:
- type: string
- optional:
- type: boolean
- type: object
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
- type: array
- required:
- - sources
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- type: string
- monitors:
- items:
- type: string
- type: array
- pool:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- user:
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- sslEnabled:
- type: boolean
- storageMode:
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- type: string
- type: object
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- required:
- - driver
- - executor
- - sparkVersion
- - type
- type: object
- status:
- properties:
- applicationState:
- properties:
- errorMessage:
- type: string
- state:
- type: string
- required:
- - state
- type: object
- driverInfo:
- properties:
- podName:
- type: string
- webUIAddress:
- type: string
- webUIIngressAddress:
- type: string
- webUIIngressName:
- type: string
- webUIPort:
- format: int32
- type: integer
- webUIServiceName:
- type: string
- type: object
- executionAttempts:
- format: int32
- type: integer
- executorState:
- additionalProperties:
- type: string
- type: object
- sparkApplicationId:
- type: string
- submissionAttempts:
- format: int32
- type: integer
- submissionID:
- type: string
- submissionTime:
- format: date-time
- nullable: true
- type: string
- terminationTime:
- format: date-time
- nullable: true
- type: string
- required:
- - driverInfo
- type: object
- required:
- - metadata
- - spec
- type: object
- version: v1beta2
- versions:
- - name: v1beta2
- served: true
- storage: true
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: apiextensions.k8s.io/v1beta1
-kind: CustomResourceDefinition
-metadata:
- name: pytorchjobs.kubeflow.org
-spec:
- additionalPrinterColumns:
- - JSONPath: .status.conditions[-1:].type
- name: State
- type: string
- - JSONPath: .metadata.creationTimestamp
- name: Age
- type: date
- group: kubeflow.org
- names:
- kind: PyTorchJob
- plural: pytorchjobs
- singular: pytorchjob
- scope: Namespaced
- subresources:
- status: {}
- validation:
- openAPIV3Schema:
- properties:
- spec:
- properties:
- pytorchReplicaSpecs:
- properties:
- Master:
- properties:
- replicas:
- maximum: 1
- minimum: 1
- type: integer
- Worker:
- properties:
- replicas:
- minimum: 1
- type: integer
- versions:
- - name: v1
- served: true
- storage: true
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: datacatalog
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flyteadmin
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flytepropeller
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
- namespace: kubeflow
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: sparkoperator
- namespace: sparkoperator
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-rules:
-- apiGroups:
- - '*'
- resources:
- - mutatingwebhookconfigurations
- - secrets
- - pods
- - replicasets/finalizers
- verbs:
- - get
- - create
- - update
- - patch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flyteadmin
- namespace: flyte
-rules:
-- apiGroups:
- - ""
- - flyte.lyft.com
- - rbac.authorization.k8s.io
- resources:
- - configmaps
- - flyteworkflows
- - namespaces
- - pods
- - resourcequotas
- - roles
- - rolebindings
- - secrets
- - services
- - serviceaccounts
- - spark-role
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flytepropeller
-rules:
-- apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - update
- - delete
- - patch
-- apiGroups:
- - '*'
- resources:
- - '*'
- verbs:
- - get
- - list
- - watch
- - create
- - update
- - delete
- - patch
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - get
- - list
- - watch
- - create
- - delete
- - update
-- apiGroups:
- - flyte.lyft.com
- resources:
- - flyteworkflows
- - flyteworkflows/finalizers
- verbs:
- - get
- - list
- - watch
- - create
- - update
- - delete
- - patch
- - post
- - deletecollection
----
-aggregationRule:
- clusterRoleSelectors:
- - matchLabels:
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pytorchjobs-admin: "true"
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- kustomize.component: pytorch-operator
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
- name: kubeflow-pytorchjobs-admin
-rules: []
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- kustomize.component: pytorch-operator
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pytorchjobs-admin: "true"
- name: kubeflow-pytorchjobs-edit
-rules:
-- apiGroups:
- - kubeflow.org
- resources:
- - pytorchjobs
- - pytorchjobs/status
- verbs:
- - get
- - list
- - watch
- - create
- - delete
- - deletecollection
- - patch
- - update
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- kustomize.component: pytorch-operator
- rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
- name: kubeflow-pytorchjobs-view
-rules:
-- apiGroups:
- - kubeflow.org
- resources:
- - pytorchjobs
- - pytorchjobs/status
- verbs:
- - get
- - list
- - watch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: sparkoperator
-rules:
-- apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - '*'
-- apiGroups:
- - ""
- resources:
- - services
- - configmaps
- - secrets
- verbs:
- - create
- - get
- - delete
-- apiGroups:
- - extensions
- resources:
- - ingresses
- verbs:
- - create
- - get
- - delete
-- apiGroups:
- - ""
- resources:
- - nodes
- verbs:
- - get
-- apiGroups:
- - batch
- resources:
- - jobs
- verbs:
- - create
- - get
- - update
- - delete
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - update
- - patch
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - create
- - get
- - update
- - delete
-- apiGroups:
- - admissionregistration.k8s.io
- resources:
- - mutatingwebhookconfigurations
- verbs:
- - create
- - get
- - update
- - delete
-- apiGroups:
- - sparkoperator.k8s.io
- resources:
- - sparkapplications
- - scheduledsparkapplications
- - sparkapplications/status
- - scheduledsparkapplications/status
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: ClusterRole
-metadata:
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
-rules:
-- apiGroups:
- - kubeflow.org
- resources:
- - pytorchjobs
- - pytorchjobs/status
- verbs:
- - '*'
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - '*'
-- apiGroups:
- - ""
- resources:
- - pods
- - services
- - endpoints
- - events
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flyte-pod-webhook
-subjects:
-- kind: ServiceAccount
- name: flyte-pod-webhook
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flyteadmin-binding
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flyteadmin
-subjects:
-- kind: ServiceAccount
- name: flyteadmin
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flytepropeller
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flytepropeller
-subjects:
-- kind: ServiceAccount
- name: flytepropeller
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: sparkoperator
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: sparkoperator
-subjects:
-- kind: ServiceAccount
- name: sparkoperator
- namespace: sparkoperator
----
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: ClusterRoleBinding
-metadata:
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: pytorch-operator
-subjects:
-- kind: ServiceAccount
- name: pytorch-operator
- namespace: kubeflow
----
-apiVersion: v1
-data:
- aa_namespace.yaml: |
- apiVersion: v1
- kind: Namespace
- metadata:
- name: {{ namespace }}
- spec:
- finalizers:
- - kubernetes
- ab_project-resource-quota.yaml: "apiVersion: v1\nkind: ResourceQuota\nmetadata:\n name: project-quota\n namespace: {{ namespace }} \nspec:\n hard:\n limits.cpu: {{ projectQuotaCpu }} \n limits.memory: {{ projectQuotaMemory }}\n\n"
- ad_spark-role.yaml: |
- apiVersion: rbac.authorization.k8s.io/v1
- kind: Role
- metadata:
- name: spark-role
- namespace: {{ namespace }}
- rules:
- - apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - '*'
- - apiGroups:
- - ""
- resources:
- - services
- verbs:
- - '*'
- - apiGroups:
- - ""
- resources:
- - configmaps
- verbs:
- - '*'
- ae_spark-service-account.yaml: |
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: spark
- namespace: {{ namespace }}
- af_spark-role-binding.yaml: "apiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n name: spark-role-binding\n namespace: {{ namespace }} \nroleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: Role\n name: spark-role\nsubjects:\n- kind: ServiceAccount\n name: spark\n namespace: {{ namespace }}\n\n"
-kind: ConfigMap
-metadata:
- name: clusterresource-template-4fbh4bk26k
- namespace: flyte
----
-apiVersion: v1
-data:
- db.yaml: |
- database:
- port: 5432
- username: flyte
- host: cloudsqlproxy
- dbname: datacatalog
- options: "sslmode=disable"
- passwordPath: /etc/db/pass.txt
- logger.yaml: |
- # TODO this is used to control the log level
- logger:
- show-source: true
- level: 2
- server.yaml: |
- datacatalog:
- storage-prefix: metadata/datacatalog
- metrics-scope: "datacatalog"
- profiler-port: 10254
- application:
- grpcPort: 8089
- storage.yaml: |
- storage:
- type: stow
- stow:
- kind: google
- config:
- json: ""
- # TODO: replace with the GCP project ID
- project_id:
- scopes: https://www.googleapis.com/auth/cloud-platform
- # TODO replace with the container (bucket) in GCS used by Flyte as intermediate store
- container: "flyte"
- # NOTE this cache configuration is purely for propeller. But since we are having a common storage
- # config, we are configuring this value. In production create a separate storage config for
- # propeller and increase the cache size
- cache:
- max_size_mbs: 512
- target_gc_percent: 70
- limits:
- maxDownloadMBs: 10
-kind: ConfigMap
-metadata:
- name: datacatalog-config-mk4gcdf6db
- namespace: flyte
----
-apiVersion: v1
-data:
- cluster_resources.yaml: |
- cluster_resources:
- templatePath: "/etc/flyte/clusterresource/templates"
- customData:
- - production:
- - projectQuotaCpu:
- value: "5"
- - projectQuotaMemory:
- value: "4000Mi"
- - staging:
- - projectQuotaCpu:
- value: "2"
- - projectQuotaMemory:
- value: "3000Mi"
- - development:
- - projectQuotaCpu:
- value: "4"
- - projectQuotaMemory:
- value: "3000Mi"
- refreshInterval: 1m
- db.yaml: |
- database:
- port: 5432
- username: flyte
- host: cloudsqlproxy
- dbname: flyte
- passwordPath: /etc/db/pass.txt
- domain.yaml: |
- domains:
- - id: development
- name: development
- - id: staging
- name: staging
- - id: production
- name: production
- logger.yaml: |
- # TODO this is used to control the log level
- logger:
- show-source: true
- level: 2
- server.yaml: |
- server:
- httpPort: 8088
- grpcPort: 8089
- security:
- # Controls whether to serve requests over SSL/TLS.
- secure: false
- # Controls whether to enforce authentication. Follow the guide in https://docs.flyte.org/ on how to setup authentication.
- useAuth: false
- allowCors: true
- allowedOrigins:
- # Accepting all domains for Sandbox installation
- - "*"
- allowedHeaders:
- - "Content-Type"
- - "flyte-authorization"
- auth:
- authorizedUris:
- # This should point at your public http Uri.
- - https://localhost:30081
- # This will be used by internal services in the same namespace as flyteadmin
- - http://flyteadmin:80
- # This will be used by internal services in the same cluster but different namespaces
- - http://flyteadmin.flyte.svc.cluster.local:80
-
- # Controls app authentication config
- appAuth:
- thirdPartyConfig:
- flyteClient:
- clientId: flytectl
- redirectUri: https://localhost:53593/callback
- scopes:
- - offline
- - all
- # Controls user authentication
- userAuth:
- openId:
- baseUrl: https://accounts.google.com
- scopes:
- - profile
- - openid
- clientId: 657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com
- flyteadmin:
- roleNameKey: "iam.amazonaws.com/role"
- storage.yaml: |
- storage:
- type: stow
- stow:
- kind: google
- config:
- json: ""
- # TODO: replace with the GCP project ID
- project_id:
- scopes: https://www.googleapis.com/auth/cloud-platform
- # TODO replace with the container (bucket) in GCS used by Flyte as intermediate store
- container: "flyte"
- # NOTE this cache configuration is purely for propeller. But since we are having a common storage
- # config, we are configuring this value. In production create a separate storage config for
- # propeller and increase the cache size
- cache:
- max_size_mbs: 512
- target_gc_percent: 70
- limits:
- maxDownloadMBs: 10
- task_resource_defaults.yaml: |
- task_resources:
- defaults:
- cpu: 1000m
- memory: 1000Mi
- storage: 1000Mi
- limits:
- cpu: 2
- memory: 8Gi
- storage: 2000Mi
- gpu: 1
-kind: ConfigMap
-metadata:
- name: flyte-admin-config-gf99k75c82
- namespace: flyte
----
-apiVersion: v1
-data:
- BASE_URL: /console
- CONFIG_DIR: /etc/flyte/config
-kind: ConfigMap
-metadata:
- name: flyte-console-config
- namespace: flyte
----
-apiVersion: v1
-data:
- admin.yaml: |
- event:
- type: admin
- rate: 500
- capacity: 1000
- admin:
- endpoint: flyteadmin:81
- insecure: true
- catalog.yaml: |
- catalog-cache:
- endpoint: datacatalog:89
- type: datacatalog
- insecure: true
- catalog_cache.yaml: "plugins:\n catalogCache: \n reader:\n maxItems: 10000\n writer:\n maxItems: 10000\n"
- copilot.yaml: |
- plugins:
- k8s:
- co-pilot:
- name: "flyte-copilot-"
- image: "cr.flyte.org/flyteorg/flytecopilot:v0.0.15"
- start-timeout: "30s"
- core.yaml: |
- propeller:
- rawoutput-prefix: gs://my-s3-bucket/
- metadata-prefix: metadata/propeller
- workers: 40
- gc-interval: 12h
- max-workflow-retries: 50
- workflow-reeval-duration: 30s
- downstream-eval-duration: 30s
- limit-namespace: "all"
- prof-port: 10254
- metrics-prefix: flyte
- enable-admin-launcher: true
- leader-election:
- lock-config-map:
- name: propeller-leader
- namespace: flyte
- enabled: true
- lease-duration: 15s
- renew-deadline: 10s
- retry-period: 2s
- kube-client-config:
- qps: 100
- burst: 25
- timeout: 30s
- queue:
- type: batch
- batching-interval: 2s
- batch-size: -1
- queue:
- type: maxof
- rate: 100
- capacity: 1000
- base-delay: 5s
- max-delay: 120s
- sub-queue:
- type: bucket
- rate: 100
- capacity: 1000
- workflowStore:
- policy: "ResourceVersionCache"
- enabled_plugins.yaml: |
- tasks:
- max-plugin-phase-versions: 1000000
- task-plugins:
- enabled-plugins:
- - container
- - sidecar
- - spark
- - k8s-array
- - pytorch
- default-for-task-types:
- container: container
- sidecar: sidecar
- spark: spark
- container_array: k8s-array
- pytorch: pytorch
- k8s.yaml: |
- plugins:
- k8s:
- default-env-vars:
- - FLYTE_AWS_ENDPOINT: "http://minio.flyte:9000"
- - FLYTE_AWS_ACCESS_KEY_ID: minio
- - FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage
- default-cpus: 100m
- default-memory: 100Mi
- logger.yaml: |
- # TODO this is used to control the log level
- logger:
- show-source: true
- level: 2
- qubole.yaml: |
- plugins:
- qubole:
- quboleTokenKey: "FLYTE_QUBOLE_CLIENT_TOKEN"
- resource_manager.yaml: |
- propeller:
- resourcemanager:
- type: redis
- resourceMaxQuota: 10000
- redis:
- hostPath: redis-resource-manager:6379
- hostKey: mypassword
- spark.yaml: |
- plugins:
- spark:
- spark-config-default:
- - 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"
- storage.yaml: |
- storage:
- type: stow
- stow:
- kind: google
- config:
- json: ""
- # TODO: replace with the GCP project ID
- project_id:
- scopes: https://www.googleapis.com/auth/cloud-platform
- # TODO replace with the container (bucket) in GCS used by Flyte as intermediate store
- container: "flyte"
- # NOTE this cache configuration is purely for propeller. But since we are having a common storage
- # config, we are configuring this value. In production create a separate storage config for
- # propeller and increase the cache size
- cache:
- max_size_mbs: 512
- target_gc_percent: 70
- limits:
- maxDownloadMBs: 10
- task_logs.yaml: |
- plugins:
- logs:
- # Log links can link to multiple options
- # #1 Kubernetes dashboard is disabled in GCP
- kubernetes-enabled: false
- # #2 GCP stackdriver
- stackdriver-enabled: true
- # TODO: replace with the GCP project ID
- gcp-project:
- stackdriver-logresourcename: k8s_container
-kind: ConfigMap
-metadata:
- name: flyte-propeller-config-kgbdtkgf56
- namespace: flyte
----
-apiVersion: v1
-data:
- admin.yaml: |
- admin:
- clientId: flytepropeller
- clientSecretLocation: /etc/secrets/client_secret
- endpoint: flyteadmin:81
- insecure: true
- event:
- capacity: 1000
- rate: 500
- type: admin
- db.yaml: |
- database:
- dbname: postgres
- host: postgres
- port: 5432
- username: postgres
- logger.yaml: |
- logger:
- level: 4
- show-source: true
-kind: ConfigMap
-metadata:
- labels:
- app.kubernetes.io/instance: flyte
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/name: flytescheduler
- helm.sh/chart: flyte-v0.1.10
- name: flyte-scheduler-config
- namespace: flyte
----
-apiVersion: v1
-data:
- pass.txt: eW91cnBhc3N3b3Jk
-kind: Secret
-metadata:
- name: db-pass-bthd2588cc
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-admin-auth
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-secret-auth
- namespace: flyte
-stringData:
- client_secret: foobar
-type: Opaque
----
-apiVersion: v1
-kind: Service
-metadata:
- name: cloudsqlproxy
- namespace: flyte
-spec:
- ports:
- - name: http
- port: 5432
- protocol: TCP
- selector:
- app: cloudsqlproxy
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- contour.heptio.com/upstream-protocol.h2c: grpc
- name: datacatalog
- namespace: flyte
-spec:
- ports:
- - name: http
- port: 88
- protocol: TCP
- targetPort: 8088
- - name: grpc
- port: 89
- protocol: TCP
- targetPort: 8089
- selector:
- app: datacatalog
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- cloud.google.com/load-balancer-type: Internal
- name: datacatalog-metrics
- namespace: flyte
-spec:
- ports:
- - name: http-metrics
- port: 10254
- protocol: TCP
- selector:
- app: datacatalog
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- projectcontour.io/upstream-protocol.h2c: grpc
- name: flyte-pod-webhook
- namespace: flyte
-spec:
- ports:
- - name: https
- port: 443
- protocol: TCP
- targetPort: 9443
- selector:
- app: flyte-pod-webhook
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- cloud.google.com/load-balancer-type: Internal
- projectcontour.io/upstream-protocol.h2c: grpc
- name: flyteadmin
- namespace: flyte
-spec:
- ports:
- - name: redoc
- port: 87
- protocol: TCP
- targetPort: 8087
- - name: http-metrics
- port: 10254
- protocol: TCP
- - name: http
- port: 80
- protocol: TCP
- targetPort: 8088
- - name: grpc
- port: 81
- protocol: TCP
- targetPort: 8089
- selector:
- app: flyteadmin
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- cloud.google.com/load-balancer-type: Internal
- name: flyteconsole
- namespace: flyte
-spec:
- ports:
- - name: redoc
- port: 87
- protocol: TCP
- targetPort: 8087
- - name: http-metrics
- port: 10254
- protocol: TCP
- - port: 80
- protocol: TCP
- targetPort: 8080
- selector:
- app: flyteconsole
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- cloud.google.com/load-balancer-type: Internal
- name: flytepropeller
- namespace: flyte
-spec:
- ports:
- - name: http-metrics
- port: 10254
- protocol: TCP
- selector:
- app: flytepropeller
- type: LoadBalancer
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- app: redis-resource-manager
- name: redis-resource-manager
- namespace: flyte
-spec:
- ports:
- - name: redis
- port: 6379
- protocol: TCP
- targetPort: redis
- selector:
- app: redis-resource-manager
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "8443"
- prometheus.io/scrape: "true"
- labels:
- app: pytorch-operator
- kustomize.component: pytorch-operator
- name: pytorch-operator
- namespace: kubeflow
-spec:
- ports:
- - name: monitoring-port
- port: 8443
- targetPort: 8443
- selector:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- name: spark-webhook
- namespace: sparkoperator
-spec:
- ports:
- - name: webhook
- port: 443
- targetPort: 8080
- selector:
- app.kubernetes.io/name: sparkoperator
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: cloudsqlproxy
- name: cloudsqlproxy
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: cloudsqlproxy
- template:
- metadata:
- labels:
- app: cloudsqlproxy
- spec:
- containers:
- - command:
- - /cloud_sql_proxy
- - -instances=::flyte=tcp:0.0.0.0:5432
- image: gcr.io/cloudsql-docker/gce-proxy:1.16
- imagePullPolicy: IfNotPresent
- name: cloudsql-proxy
- ports:
- - containerPort: 5432
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: datacatalog
- name: datacatalog
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: datacatalog
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: datacatalog
- app.kubernetes.io/name: datacatalog
- app.kubernetes.io/version: 0.3.0
- spec:
- containers:
- - command:
- - datacatalog
- - --config
- - /etc/datacatalog/config/*.yaml
- - serve
- image: cr.flyte.org/flyteorg/datacatalog:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: datacatalog
- ports:
- - containerPort: 8088
- - containerPort: 8089
- resources:
- limits:
- cpu: "2"
- ephemeral-storage: 1000Mi
- memory: 1Gi
- volumeMounts:
- - mountPath: /etc/datacatalog/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- initContainers:
- - command:
- - datacatalog
- - --config
- - /etc/datacatalog/config/*.yaml
- - migrate
- - run
- image: cr.flyte.org/flyteorg/datacatalog:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: run-migrations
- volumeMounts:
- - mountPath: /etc/datacatalog/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: datacatalog
- volumes:
- - emptyDir: {}
- name: shared-data
- - configMap:
- name: datacatalog-config-mk4gcdf6db
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyte-pod-webhook
- name: flyte-pod-webhook
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: flyte-pod-webhook
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flyte-pod-webhook
- app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: 0.5.13
- spec:
- containers:
- - args:
- - webhook
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: webhook
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- readOnly: true
- - mountPath: /etc/webhook/certs
- name: webhook-certs
- readOnly: true
- initContainers:
- - args:
- - webhook
- - init-certs
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: generate-secrets
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flyte-pod-webhook
- volumes:
- - configMap:
- name: flyte-propeller-config-kgbdtkgf56
- name: config-volume
- - name: webhook-certs
- secret:
- secretName: flyte-pod-webhook
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyteadmin
- name: flyteadmin
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flyteadmin
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flyteadmin
- app.kubernetes.io/name: flyteadmin
- app.kubernetes.io/version: 0.4.13
- spec:
- containers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - serve
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: flyteadmin
- ports:
- - containerPort: 8088
- - containerPort: 8089
- resources:
- limits:
- cpu: "2"
- ephemeral-storage: 1Gi
- memory: 1Gi
- volumeMounts:
- - mountPath: /srv/flyte
- name: shared-data
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - mountPath: /etc/secrets/
- name: auth
- - command:
- - sh
- - -c
- - ln -s /usr/share/nginx/html /usr/share/nginx/html/openapi && sh /usr/local/bin/docker-run.sh
- env:
- - name: PAGE_TITLE
- value: Flyte Admin OpenAPI
- - name: SPEC_URL
- value: /api/v1/openapi
- - name: PORT
- value: "8087"
- image: docker.io/redocly/redoc
- imagePullPolicy: IfNotPresent
- name: redoc
- ports:
- - containerPort: 8087
- resources:
- limits:
- cpu: "0.1"
- memory: 200Mi
- initContainers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - migrate
- - run
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: run-migrations
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - migrate
- - seed-projects
- - flytesnacks
- - flytetester
- - flyteexamples
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: seed-projects
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - sync
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - args:
- - flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --fromPath /etc/scratch/secrets
- command:
- - /bin/sh
- - -c
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: generate-secrets
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/scratch
- name: scratch
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flyteadmin
- volumes:
- - emptyDir: {}
- name: shared-data
- - emptyDir: {}
- name: scratch
- - configMap:
- name: flyte-admin-config-gf99k75c82
- name: config-volume
- - configMap:
- name: clusterresource-template-4fbh4bk26k
- name: resource-templates
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
- - name: auth
- secret:
- secretName: flyte-admin-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyteconsole
- name: flyteconsole
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flyteconsole
- template:
- metadata:
- labels:
- app: flyteconsole
- app.kubernetes.io/name: flyteconsole
- app.kubernetes.io/version: 0.19.0
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: flyte-console-config
- image: cr.flyte.org/flyteorg/flyteconsole:v1.10.2
- name: flyteconsole
- ports:
- - containerPort: 8080
- volumeMounts:
- - mountPath: /srv/flyte
- name: shared-data
- securityContext:
- fsGroupChangePolicy: Always
- runAsUser: 1000
- volumes:
- - emptyDir: {}
- name: shared-data
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flytepropeller
- name: flytepropeller
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: flytepropeller
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flytepropeller
- app.kubernetes.io/name: flytepropeller
- app.kubernetes.io/version: 0.7.1
- spec:
- containers:
- - args:
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: flytepropeller
- ports:
- - containerPort: 10254
- resources:
- limits:
- cpu: "2"
- ephemeral-storage: 1Gi
- memory: 4Gi
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/secrets/
- name: auth
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flytepropeller
- volumes:
- - configMap:
- name: flyte-propeller-config-kgbdtkgf56
- name: config-volume
- - name: auth
- secret:
- secretName: flyte-secret-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flytescheduler
- name: flytescheduler
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flytescheduler
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flytescheduler
- app.kubernetes.io/name: flytescheduler
- app.kubernetes.io/version: 0.3.4
- spec:
- containers:
- - command:
- - flytescheduler
- - run
- - --config
- - /etc/flyte/config/*.yaml
- image: cr.flyte.org/flyteorg/flytescheduler:v0.6.49
- imagePullPolicy: IfNotPresent
- name: flytescheduler
- resources:
- limits:
- cpu: 250m
- ephemeral-storage: 100Mi
- memory: 500Mi
- requests:
- cpu: 10m
- ephemeral-storage: 50Mi
- memory: 50Mi
- volumeMounts:
- - mountPath: /etc/secrets/
- name: auth
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- initContainers:
- - command:
- - flytescheduler
- - precheck
- - --config
- - /etc/flyte/config/*.yaml
- image: cr.flyte.org/flyteorg/flytescheduler:v0.6.49
- imagePullPolicy: IfNotPresent
- name: flytescheduler-check
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: flyte-scheduler-config
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
- - name: auth
- secret:
- secretName: flyte-secret-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- namespace: kubeflow
-spec:
- replicas: 1
- selector:
- matchLabels:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- template:
- metadata:
- labels:
- kustomize.component: pytorch-operator
- name: pytorch-operator
- spec:
- containers:
- - command:
- - /pytorch-operator.v1
- - --alsologtostderr
- - -v=1
- - --monitoring-port=8443
- env:
- - name: MY_POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: MY_POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-g047cf0f
- name: pytorch-operator
- serviceAccountName: pytorch-operator
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- name: sparkoperator
- namespace: sparkoperator
-spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/name: sparkoperator
- strategy:
- type: Recreate
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- spec:
- containers:
- - args:
- - -logtostderr
- - -v=2
- - -controller-threads=20
- - -enable-metrics=true
- - '-metrics-prefix=service:'
- - -metrics-labels=task_name
- - -metrics-labels=workflow_name
- - -enable-webhook=true
- - -webhook-svc-namespace=sparkoperator
- command:
- - /usr/bin/spark-operator
- image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5
- imagePullPolicy: Always
- name: sparkoperator-unknown
- ports:
- - containerPort: 10254
- - containerPort: 8080
- volumeMounts:
- - mountPath: /etc/webhook-certs
- name: webhook-certs
- serviceAccountName: sparkoperator
- volumes:
- - name: webhook-certs
- secret:
- secretName: spark-webhook-certs
----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: redis
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: redis-resource-manager
- serviceName: redis-resource-manager
- template:
- metadata:
- labels:
- app: redis-resource-manager
- spec:
- containers:
- - env:
- - name: REDIS_PASSWORD
- value: mypassword
- image: ecr.flyte.org/bitnami/redis:6.2.5-debian-10-r59
- imagePullPolicy: IfNotPresent
- livenessProbe:
- exec:
- command:
- - redis-cli
- - ping
- failureThreshold: 3
- initialDelaySeconds: 30
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 5
- name: redis-resource-manager
- ports:
- - containerPort: 6379
- name: redis
- protocol: TCP
- readinessProbe:
- exec:
- command:
- - redis-cli
- - ping
- failureThreshold: 3
- initialDelaySeconds: 5
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- resources:
- requests:
- cpu: 200m
- memory: 128Mi
- volumeMounts:
- - mountPath: /bitnami
- name: redis-data
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- volumes:
- - emptyDir: {}
- name: redis-data
----
-apiVersion: batch/v1beta1
-kind: CronJob
-metadata:
- name: syncresources
- namespace: flyte
-spec:
- jobTemplate:
- spec:
- template:
- spec:
- containers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - sync
- image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b2
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- restartPolicy: OnFailure
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: clusterresource-template-4fbh4bk26k
- name: resource-templates
- - configMap:
- name: flyte-admin-config-gf99k75c82
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-bthd2588cc
- schedule: '*/1 * * * *'
----
-apiVersion: batch/v1
-kind: Job
-metadata:
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- name: sparkoperator-init
- namespace: sparkoperator
-spec:
- backoffLimit: 3
- template:
- metadata:
- labels:
- app.kubernetes.io/name: sparkoperator
- app.kubernetes.io/version: v2.4.5-v1beta2
- spec:
- containers:
- - command:
- - /usr/bin/gencerts.sh
- - --namespace
- - sparkoperator
- - -p
- image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5
- imagePullPolicy: IfNotPresent
- name: main
- restartPolicy: Never
- serviceAccountName: sparkoperator
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- annotations:
- nginx.ingress.kubernetes.io/app-root: /console
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- name: flytesystem
- namespace: flyte
-spec:
- rules:
- - http:
- paths:
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /__webpack_hmr
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.AdminService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.AuthMetadataService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.IdentityService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.SignalService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 87
- path: /openapi
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /console
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /console/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /api
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /api/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /healthcheck
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /v1/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 87
- path: /openapi/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /.well-known/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /login
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /login/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /logout
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /logout/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /callback
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /callback/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /me
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /config
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /config/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /oauth2
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /oauth2/*
- pathType: ImplementationSpecific
diff --git a/deployment/gcp/flyte_helm_controlplane_generated.yaml b/deployment/gcp/flyte_helm_controlplane_generated.yaml
index dc4c4825d2..0f1ebf1381 100644
--- a/deployment/gcp/flyte_helm_controlplane_generated.yaml
+++ b/deployment/gcp/flyte_helm_controlplane_generated.yaml
@@ -178,12 +178,10 @@ data:
task_resources:
defaults:
cpu: 500m
- ephemeralStorage: 500Mi
memory: 500Mi
storage: 500Mi
limits:
cpu: 2
- ephemeralStorage: 20Mi
gpu: 1
memory: 1Gi
storage: 2000Mi
@@ -570,17 +568,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "c7d43aa7ff4bf67124616d00a83d3c45926ea5ca36bdebdfac1cbcd0e465270"
+ configChecksum: "2e169a911a8234dd42d06ca0887279093f4ed36033d0543749ce126b26b50f3"
labels:
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flyteadmin
@@ -588,9 +589,13 @@ spec:
- /etc/flyte/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -605,9 +610,13 @@ spec:
- flytesnacks
- flytetester
- flyteexamples
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -619,9 +628,13 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- sync
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -632,13 +645,17 @@ spec:
- mountPath: /etc/secrets/
name: admin-secrets
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command: ["/bin/sh", "-c"]
args:
[
"flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -655,7 +672,7 @@ spec:
- --config
- /etc/flyte/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flyteadmin
ports:
@@ -680,6 +697,10 @@ spec:
cpu: 500m
ephemeral-storage: 2Gi
memory: 1G
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -756,7 +777,7 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
volumeMounts:
@@ -805,11 +826,14 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
containers:
- - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.2"
+ - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3"
imagePullPolicy: "IfNotPresent"
name: flyteconsole
envFrom:
@@ -817,6 +841,10 @@ spec:
name: flyte-console-config
ports:
- containerPort: 8080
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -865,10 +893,13 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- datacatalog
@@ -876,7 +907,7 @@ spec:
- /etc/datacatalog/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
volumeMounts:
@@ -884,19 +915,27 @@ spec:
name: db-pass
- mountPath: /etc/datacatalog/config
name: config-volume
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 500m
@@ -949,26 +988,33 @@ spec:
template:
metadata:
annotations:
- configChecksum: "c7d43aa7ff4bf67124616d00a83d3c45926ea5ca36bdebdfac1cbcd0e465270"
+ configChecksum: "2e169a911a8234dd42d06ca0887279093f4ed36033d0543749ce126b26b50f3"
labels:
app.kubernetes.io/name: flytescheduler
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flytescheduler
- precheck
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler-check
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -982,11 +1028,15 @@ spec:
- run
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler
ports:
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1029,6 +1079,7 @@ metadata:
nginx.ingress.kubernetes.io/app-root: /console
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -1182,13 +1233,14 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
cert-manager.io/issuer: letsencrypt-production
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/app-root: /console
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: GRPC
+ nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
+ ingressClassName:
rules:
- host: ''
http:
diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml
index fb6147e78b..86c6f10014 100644
--- a/deployment/gcp/flyte_helm_dataplane_generated.yaml
+++ b/deployment/gcp/flyte_helm_dataplane_generated.yaml
@@ -94,7 +94,7 @@ data:
plugins:
k8s:
co-pilot:
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0
name: flyte-copilot-
start-timeout: 30s
core.yaml: |
@@ -154,6 +154,7 @@ data:
- container
- sidecar
- k8s-array
+ - agent-service
k8s.yaml: |
plugins:
k8s:
@@ -435,17 +436,17 @@ spec:
template:
metadata:
annotations:
- configChecksum: "574080d58e672acb923d48388a0746a10a55b3a0397c836d204910e0ead139c"
+ configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441"
labels:
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
runAsUser: 1001
- fsGroupChangePolicy: "Always"
containers:
- command:
- flytepropeller
@@ -460,7 +461,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytepropeller
ports:
@@ -514,18 +515,21 @@ spec:
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: v1.10.7-b4
+ app.kubernetes.io/version: v1.11.0-b0
annotations:
- configChecksum: "574080d58e672acb923d48388a0746a10a55b3a0397c836d204910e0ead139c"
+ configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441"
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
serviceAccountName: flyte-pod-webhook
initContainers:
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -543,12 +547,16 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
containers:
- name: webhook
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -567,6 +575,15 @@ spec:
fieldPath: metadata.namespace
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -594,6 +611,7 @@ metadata:
nginx.ingress.kubernetes.io/app-root: /console
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -747,13 +765,14 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
cert-manager.io/issuer: letsencrypt-production
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/app-root: /console
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: GRPC
+ nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
+ ingressClassName:
rules:
- host: ''
http:
diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml
index 88a62d6ad2..ac527c47a7 100644
--- a/deployment/gcp/flyte_helm_generated.yaml
+++ b/deployment/gcp/flyte_helm_generated.yaml
@@ -209,12 +209,10 @@ data:
task_resources:
defaults:
cpu: 500m
- ephemeralStorage: 500Mi
memory: 500Mi
storage: 500Mi
limits:
cpu: 2
- ephemeralStorage: 20Mi
gpu: 1
memory: 1Gi
storage: 2000Mi
@@ -475,7 +473,7 @@ data:
plugins:
k8s:
co-pilot:
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0
name: flyte-copilot-
start-timeout: 30s
core.yaml: |
@@ -535,6 +533,7 @@ data:
- container
- sidecar
- k8s-array
+ - agent-service
k8s.yaml: |
plugins:
k8s:
@@ -903,17 +902,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "c7d43aa7ff4bf67124616d00a83d3c45926ea5ca36bdebdfac1cbcd0e465270"
+ configChecksum: "2e169a911a8234dd42d06ca0887279093f4ed36033d0543749ce126b26b50f3"
labels:
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flyteadmin
@@ -921,9 +923,13 @@ spec:
- /etc/flyte/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -938,9 +944,13 @@ spec:
- flytesnacks
- flytetester
- flyteexamples
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -952,9 +962,13 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- sync
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -965,13 +979,17 @@ spec:
- mountPath: /etc/secrets/
name: admin-secrets
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command: ["/bin/sh", "-c"]
args:
[
"flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -988,7 +1006,7 @@ spec:
- --config
- /etc/flyte/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flyteadmin
ports:
@@ -1013,6 +1031,10 @@ spec:
cpu: 500m
ephemeral-storage: 2Gi
memory: 1G
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -1089,7 +1111,7 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
volumeMounts:
@@ -1138,11 +1160,14 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
containers:
- - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.2"
+ - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3"
imagePullPolicy: "IfNotPresent"
name: flyteconsole
envFrom:
@@ -1150,6 +1175,10 @@ spec:
name: flyte-console-config
ports:
- containerPort: 8080
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1198,10 +1227,13 @@ spec:
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- datacatalog
@@ -1209,7 +1241,7 @@ spec:
- /etc/datacatalog/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
volumeMounts:
@@ -1217,19 +1249,27 @@ spec:
name: db-pass
- mountPath: /etc/datacatalog/config
name: config-volume
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 500m
@@ -1282,26 +1322,33 @@ spec:
template:
metadata:
annotations:
- configChecksum: "c7d43aa7ff4bf67124616d00a83d3c45926ea5ca36bdebdfac1cbcd0e465270"
+ configChecksum: "2e169a911a8234dd42d06ca0887279093f4ed36033d0543749ce126b26b50f3"
labels:
app.kubernetes.io/name: flytescheduler
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flytescheduler
- precheck
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler-check
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/db
name: db-pass
@@ -1315,11 +1362,15 @@ spec:
- run
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler
ports:
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -1370,17 +1421,17 @@ spec:
template:
metadata:
annotations:
- configChecksum: "574080d58e672acb923d48388a0746a10a55b3a0397c836d204910e0ead139c"
+ configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441"
labels:
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-core-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
runAsUser: 1001
- fsGroupChangePolicy: "Always"
containers:
- command:
- flytepropeller
@@ -1395,7 +1446,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytepropeller
ports:
@@ -1449,18 +1500,21 @@ spec:
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: v1.10.7-b4
+ app.kubernetes.io/version: v1.11.0-b0
annotations:
- configChecksum: "574080d58e672acb923d48388a0746a10a55b3a0397c836d204910e0ead139c"
+ configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441"
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
serviceAccountName: flyte-pod-webhook
initContainers:
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -1478,12 +1532,16 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
containers:
- name: webhook
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -1502,6 +1560,15 @@ spec:
fieldPath: metadata.namespace
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -1529,6 +1596,7 @@ metadata:
nginx.ingress.kubernetes.io/app-root: /console
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
+ ingressClassName:
rules:
- http:
paths:
@@ -1682,13 +1750,14 @@ kind: Ingress
metadata:
name: flyte-core-grpc
namespace: flyte
- annotations:
+ annotations:
cert-manager.io/issuer: letsencrypt-production
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/app-root: /console
- nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: GRPC
+ nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
+ ingressClassName:
rules:
- host: ''
http:
diff --git a/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml b/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml
index 7eca4aaf49..2d93910a5c 100644
--- a/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml
+++ b/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml
@@ -116,7 +116,7 @@ data:
stackdriver-enabled: false
k8s:
co-pilot:
- image: "cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0"
k8s-array:
logs:
config:
@@ -358,7 +358,7 @@ spec:
app.kubernetes.io/instance: flyte
app.kubernetes.io/component: flyte-binary
annotations:
- checksum/configuration: 1ddc2c300b65d37702314ec82808c920e9533830de6986ef6166705666b8d463
+ checksum/configuration: 882c31ec18bdac7aa4f1a9057f9e549b1307b60b5d76839dfb6bc526958bee57
checksum/configuration-secret: d5d93f4e67780b21593dc3799f0f6682aab0765e708e4020939975d14d44f929
checksum/cluster-resource-templates: 7dfa59f3d447e9c099b8f8ffad3af466fecbc9cf9f8c97295d9634254a55d4ae
spec:
diff --git a/deployment/sandbox/flyte_generated.yaml b/deployment/sandbox/flyte_generated.yaml
deleted file mode 100644
index cac33303fd..0000000000
--- a/deployment/sandbox/flyte_generated.yaml
+++ /dev/null
@@ -1,3965 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
- name: flyte
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: kubernetes-dashboard
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: projectcontour
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.4.1
- creationTimestamp: null
- name: extensionservices.projectcontour.io
-spec:
- group: projectcontour.io
- names:
- kind: ExtensionService
- listKind: ExtensionServiceList
- plural: extensionservices
- shortNames:
- - extensionservice
- - extensionservices
- singular: extensionservice
- preserveUnknownFields: false
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- description: ExtensionService is the schema for the Contour extension services API. An ExtensionService resource binds a network service to the Contour API so that Contour API features can be implemented by collaborating components.
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: ExtensionServiceSpec defines the desired state of an ExtensionService resource.
- properties:
- loadBalancerPolicy:
- description: The policy for load balancing GRPC service requests. Note that the `Cookie` and `RequestHash` load balancing strategies cannot be used here.
- properties:
- requestHashPolicies:
- description: RequestHashPolicies contains a list of hash policies to apply when the `RequestHash` load balancing strategy is chosen. If an element of the supplied list of hash policies is invalid, it will be ignored. If the list of hash policies is empty after validation, the load balancing strategy will fall back the the default `RoundRobin`.
- items:
- description: RequestHashPolicy contains configuration for an individual hash policy on a request attribute.
- properties:
- headerHashOptions:
- description: HeaderHashOptions should be set when request header hash based load balancing is desired. It must be the only hash option field set, otherwise this request hash policy object will be ignored.
- properties:
- headerName:
- description: HeaderName is the name of the HTTP request header that will be used to calculate the hash key. If the header specified is not present on a request, no hash will be produced.
- minLength: 1
- type: string
- type: object
- terminal:
- description: Terminal is a flag that allows for short-circuiting computing of a hash for a given request. If set to true, and the request attribute specified in the attribute hash options is present, no further hash policies will be used to calculate a hash for the request.
- type: boolean
- type: object
- type: array
- strategy:
- description: Strategy specifies the policy used to balance requests across the pool of backend pods. Valid policy names are `Random`, `RoundRobin`, `WeightedLeastRequest`, `Cookie`, and `RequestHash`. If an unknown strategy name is specified or no policy is supplied, the default `RoundRobin` policy is used.
- type: string
- type: object
- protocol:
- description: Protocol may be used to specify (or override) the protocol used to reach this Service. Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.
- enum:
- - h2
- - h2c
- type: string
- protocolVersion:
- description: This field sets the version of the GRPC protocol that Envoy uses to send requests to the extension service. Since Contour always uses the v3 Envoy API, this is currently fixed at "v3". However, other protocol options will be available in future.
- enum:
- - v3
- type: string
- services:
- description: Services specifies the set of Kubernetes Service resources that receive GRPC extension API requests. If no weights are specified for any of the entries in this array, traffic will be spread evenly across all the services. Otherwise, traffic is balanced proportionally to the Weight field in each entry.
- items:
- description: ExtensionServiceTarget defines an Kubernetes Service to target with extension service traffic.
- properties:
- name:
- description: Name is the name of Kubernetes service that will accept service traffic.
- type: string
- port:
- description: Port (defined as Integer) to proxy traffic to since a service can have multiple defined.
- exclusiveMaximum: true
- maximum: 65536
- minimum: 1
- type: integer
- weight:
- description: Weight defines proportion of traffic to balance to the Kubernetes Service.
- format: int32
- type: integer
- required:
- - name
- - port
- type: object
- minItems: 1
- type: array
- timeoutPolicy:
- description: The timeout policy for requests to the services.
- properties:
- idle:
- description: Timeout after which, if there are no active requests for this route, the connection between Envoy and the backend or Envoy and the external client will be closed. If not specified, there is no per-route idle timeout, though a connection manager-wide stream_idle_timeout default of 5m still applies.
- pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
- type: string
- response:
- description: Timeout for receiving a response from the server after processing a request from client. If not supplied, Envoy's default value of 15s applies.
- pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
- type: string
- type: object
- validation:
- description: UpstreamValidation defines how to verify the backend service's certificate
- properties:
- caSecret:
- description: Name of the Kubernetes secret be used to validate the certificate presented by the backend
- type: string
- subjectName:
- description: Key which is expected to be present in the 'subjectAltName' of the presented certificate
- type: string
- required:
- - caSecret
- - subjectName
- type: object
- required:
- - services
- type: object
- status:
- description: ExtensionServiceStatus defines the observed state of an ExtensionService resource.
- properties:
- conditions:
- description: "Conditions contains the current status of the ExtensionService resource. \n Contour will update a single condition, `Valid`, that is in normal-true polarity. \n Contour will not modify any other Conditions set in this block, in case some other controller wants to add a Condition."
- items:
- description: "DetailedCondition is an extension of the normal Kubernetes conditions, with two extra fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) of the condition. \n `errors` holds information about sub-conditions which are fatal to that condition and render its state False. \n `warnings` holds information about sub-conditions which are not fatal to that condition and do not force the state to be False. \n Remember that Conditions have a type, a status, and a reason. \n The type is the type of the condition, the most important one in this CRD set is `Valid`. `Valid` is a positive-polarity condition: when it is `status: true` there are no problems. \n In more detail, `status: true` means that the object is has been ingested into Contour with no errors. `warnings` may still be present, and will be indicated in the Reason field. There must be zero entries in the `errors` slice in this case. \n `Valid`, `status: false` means that the object has had one or more fatal errors during processing into Contour. The details of the errors will be present under the `errors` field. There must be at least one error in the `errors` slice if `status` is `false`. \n For DetailedConditions of types other than `Valid`, the Condition must be in the negative polarity. When they have `status` `true`, there is an error. There must be at least one entry in the `errors` Subcondition slice. When they have `status` `false`, there are no serious errors, and there must be zero entries in the `errors` slice. In either case, there may be entries in the `warnings` slice. \n Regardless of the polarity, the `reason` and `message` fields must be updated with either the detail of the reason (if there is one and only one entry in total across both the `errors` and `warnings` slices), or `MultipleReasons` if there is more than one entry."
- properties:
- errors:
- description: "Errors contains a slice of relevant error subconditions for this object. \n Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. An empty slice here indicates no errors."
- items:
- description: "SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition. \n It contains a subset of the Condition fields. \n It is intended for warnings and errors, so `type` names should use abnormal-true polarity, that is, they should be of the form \"ErrorPresent: true\". \n The expected lifecycle for these errors is that they should only be present when the error or warning is, and should be removed when they are not relevant."
- properties:
- message:
- description: "Message is a human readable message indicating details about the transition. \n This may be an empty string."
- maxLength: 32768
- type: string
- reason:
- description: "Reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. \n The value should be a CamelCase string. \n This field may not be empty."
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: Status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`. \n This must be in abnormal-true polarity, that is, `ErrorFound` or `controller.io/ErrorFound`. \n The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - message
- - reason
- - status
- - type
- type: object
- type: array
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- warnings:
- description: "Warnings contains a slice of relevant warning subconditions for this object. \n Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. An empty slice here indicates no warnings."
- items:
- description: "SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition. \n It contains a subset of the Condition fields. \n It is intended for warnings and errors, so `type` names should use abnormal-true polarity, that is, they should be of the form \"ErrorPresent: true\". \n The expected lifecycle for these errors is that they should only be present when the error or warning is, and should be removed when they are not relevant."
- properties:
- message:
- description: "Message is a human readable message indicating details about the transition. \n This may be an empty string."
- maxLength: 32768
- type: string
- reason:
- description: "Reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. \n The value should be a CamelCase string. \n This field may not be empty."
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: Status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`. \n This must be in abnormal-true polarity, that is, `ErrorFound` or `controller.io/ErrorFound`. \n The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - message
- - reason
- - status
- - type
- type: object
- type: array
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- type: object
- type: object
- served: true
- storage: true
- subresources:
- status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- name: flyteworkflows.flyte.lyft.com
-spec:
- group: flyte.lyft.com
- names:
- kind: FlyteWorkflow
- plural: flyteworkflows
- shortNames:
- - fly
- singular: flyteworkflow
- scope: Namespaced
- versions:
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- type: object
- x-kubernetes-preserve-unknown-fields: true
- served: true
- storage: true
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.4.1
- creationTimestamp: null
- name: httpproxies.projectcontour.io
-spec:
- group: projectcontour.io
- names:
- kind: HTTPProxy
- listKind: HTTPProxyList
- plural: httpproxies
- shortNames:
- - proxy
- - proxies
- singular: httpproxy
- preserveUnknownFields: false
- scope: Namespaced
- versions:
- - additionalPrinterColumns:
- - description: Fully qualified domain name
- jsonPath: .spec.virtualhost.fqdn
- name: FQDN
- type: string
- - description: Secret with TLS credentials
- jsonPath: .spec.virtualhost.tls.secretName
- name: TLS Secret
- type: string
- - description: The current status of the HTTPProxy
- jsonPath: .status.currentStatus
- name: Status
- type: string
- - description: Description of the current status
- jsonPath: .status.description
- name: Status Description
- type: string
- name: v1
- schema:
- openAPIV3Schema:
- description: HTTPProxy is an Ingress CRD specification.
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: HTTPProxySpec defines the spec of the CRD.
- properties:
- includes:
- description: Includes allow for specific routing configuration to be included from another HTTPProxy, possibly in another namespace.
- items:
- description: Include describes a set of policies that can be applied to an HTTPProxy in a namespace.
- properties:
- conditions:
- description: 'Conditions are a set of rules that are applied to included HTTPProxies. In effect, they are added onto the Conditions of included HTTPProxy Route structs. When applied, they are merged using AND, with one exception: There can be only one Prefix MatchCondition per Conditions slice. More than one Prefix, or contradictory Conditions, will make the include invalid.'
- items:
- description: MatchCondition are a general holder for matching rules for HTTPProxies. One of Prefix or Header must be provided.
- properties:
- header:
- description: Header specifies the header condition to match.
- properties:
- contains:
- description: Contains specifies a substring that must be present in the header value.
- type: string
- exact:
- description: Exact specifies a string that the header value must be equal to.
- type: string
- name:
- description: Name is the name of the header to match against. Name is required. Header names are case insensitive.
- type: string
- notcontains:
- description: NotContains specifies a substring that must not be present in the header value.
- type: string
- notexact:
- description: NoExact specifies a string that the header value must not be equal to. The condition is true if the header has any other value.
- type: string
- present:
- description: Present specifies that condition is true when the named header is present, regardless of its value. Note that setting Present to false does not make the condition true if the named header is absent.
- type: boolean
- required:
- - name
- type: object
- prefix:
- description: Prefix defines a prefix match for a request.
- type: string
- type: object
- type: array
- name:
- description: Name of the HTTPProxy
- type: string
- namespace:
- description: Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.
- type: string
- required:
- - name
- type: object
- type: array
- routes:
- description: Routes are the ingress routes. If TCPProxy is present, Routes is ignored.
- items:
- description: Route contains the set of routes for a virtual host.
- properties:
- authPolicy:
- description: AuthPolicy updates the authorization policy that was set on the root HTTPProxy object for client requests that match this route.
- properties:
- context:
- additionalProperties:
- type: string
- description: Context is a set of key/value pairs that are sent to the authentication server in the check request. If a context is provided at an enclosing scope, the entries are merged such that the inner scope overrides matching keys from the outer scope.
- type: object
- disabled:
- description: When true, this field disables client request authentication for the scope of the policy.
- type: boolean
- type: object
- conditions:
- description: 'Conditions are a set of rules that are applied to a Route. When applied, they are merged using AND, with one exception: There can be only one Prefix MatchCondition per Conditions slice. More than one Prefix, or contradictory Conditions, will make the route invalid.'
- items:
- description: MatchCondition are a general holder for matching rules for HTTPProxies. One of Prefix or Header must be provided.
- properties:
- header:
- description: Header specifies the header condition to match.
- properties:
- contains:
- description: Contains specifies a substring that must be present in the header value.
- type: string
- exact:
- description: Exact specifies a string that the header value must be equal to.
- type: string
- name:
- description: Name is the name of the header to match against. Name is required. Header names are case insensitive.
- type: string
- notcontains:
- description: NotContains specifies a substring that must not be present in the header value.
- type: string
- notexact:
- description: NoExact specifies a string that the header value must not be equal to. The condition is true if the header has any other value.
- type: string
- present:
- description: Present specifies that condition is true when the named header is present, regardless of its value. Note that setting Present to false does not make the condition true if the named header is absent.
- type: boolean
- required:
- - name
- type: object
- prefix:
- description: Prefix defines a prefix match for a request.
- type: string
- type: object
- type: array
- enableWebsockets:
- description: Enables websocket support for the route.
- type: boolean
- healthCheckPolicy:
- description: The health check policy for this route.
- properties:
- healthyThresholdCount:
- description: The number of healthy health checks required before a host is marked healthy
- format: int64
- minimum: 0
- type: integer
- host:
- description: The value of the host header in the HTTP health check request. If left empty (default value), the name "contour-envoy-healthcheck" will be used.
- type: string
- intervalSeconds:
- description: The interval (seconds) between health checks
- format: int64
- type: integer
- path:
- description: HTTP endpoint used to perform health checks on upstream service
- type: string
- timeoutSeconds:
- description: The time to wait (seconds) for a health check response
- format: int64
- type: integer
- unhealthyThresholdCount:
- description: The number of unhealthy health checks required before a host is marked unhealthy
- format: int64
- minimum: 0
- type: integer
- required:
- - path
- type: object
- loadBalancerPolicy:
- description: The load balancing policy for this route.
- properties:
- requestHashPolicies:
- description: RequestHashPolicies contains a list of hash policies to apply when the `RequestHash` load balancing strategy is chosen. If an element of the supplied list of hash policies is invalid, it will be ignored. If the list of hash policies is empty after validation, the load balancing strategy will fall back the the default `RoundRobin`.
- items:
- description: RequestHashPolicy contains configuration for an individual hash policy on a request attribute.
- properties:
- headerHashOptions:
- description: HeaderHashOptions should be set when request header hash based load balancing is desired. It must be the only hash option field set, otherwise this request hash policy object will be ignored.
- properties:
- headerName:
- description: HeaderName is the name of the HTTP request header that will be used to calculate the hash key. If the header specified is not present on a request, no hash will be produced.
- minLength: 1
- type: string
- type: object
- terminal:
- description: Terminal is a flag that allows for short-circuiting computing of a hash for a given request. If set to true, and the request attribute specified in the attribute hash options is present, no further hash policies will be used to calculate a hash for the request.
- type: boolean
- type: object
- type: array
- strategy:
- description: Strategy specifies the policy used to balance requests across the pool of backend pods. Valid policy names are `Random`, `RoundRobin`, `WeightedLeastRequest`, `Cookie`, and `RequestHash`. If an unknown strategy name is specified or no policy is supplied, the default `RoundRobin` policy is used.
- type: string
- type: object
- pathRewritePolicy:
- description: The policy for rewriting the path of the request URL after the request has been routed to a Service.
- properties:
- replacePrefix:
- description: ReplacePrefix describes how the path prefix should be replaced.
- items:
- description: ReplacePrefix describes a path prefix replacement.
- properties:
- prefix:
- description: "Prefix specifies the URL path prefix to be replaced. \n If Prefix is specified, it must exactly match the MatchCondition prefix that is rendered by the chain of including HTTPProxies and only that path prefix will be replaced by Replacement. This allows HTTPProxies that are included through multiple roots to only replace specific path prefixes, leaving others unmodified. \n If Prefix is not specified, all routing prefixes rendered by the include chain will be replaced."
- minLength: 1
- type: string
- replacement:
- description: Replacement is the string that the routing path prefix will be replaced with. This must not be empty.
- minLength: 1
- type: string
- required:
- - replacement
- type: object
- type: array
- type: object
- permitInsecure:
- description: Allow this path to respond to insecure requests over HTTP which are normally not permitted when a `virtualhost.tls` block is present.
- type: boolean
- rateLimitPolicy:
- description: The policy for rate limiting on the route.
- properties:
- global:
- description: Global defines global rate limiting parameters, i.e. parameters defining descriptors that are sent to an external rate limit service (RLS) for a rate limit decision on each request.
- properties:
- descriptors:
- description: Descriptors defines the list of descriptors that will be generated and sent to the rate limit service. Each descriptor contains 1+ key-value pair entries.
- items:
- description: RateLimitDescriptor defines a list of key-value pair generators.
- properties:
- entries:
- description: Entries is the list of key-value pair generators.
- items:
- description: RateLimitDescriptorEntry is a key-value pair generator. Exactly one field on this struct must be non-nil.
- properties:
- genericKey:
- description: GenericKey defines a descriptor entry with a static key and value.
- properties:
- key:
- description: Key defines the key of the descriptor entry. If not set, the key is set to "generic_key".
- type: string
- value:
- description: Value defines the value of the descriptor entry.
- minLength: 1
- type: string
- type: object
- remoteAddress:
- description: RemoteAddress defines a descriptor entry with a key of "remote_address" and a value equal to the client's IP address (from x-forwarded-for).
- type: object
- requestHeader:
- description: RequestHeader defines a descriptor entry that's populated only if a given header is present on the request. The descriptor key is static, and the descriptor value is equal to the value of the header.
- properties:
- descriptorKey:
- description: DescriptorKey defines the key to use on the descriptor entry.
- minLength: 1
- type: string
- headerName:
- description: HeaderName defines the name of the header to look for on the request.
- minLength: 1
- type: string
- type: object
- type: object
- minItems: 1
- type: array
- type: object
- minItems: 1
- type: array
- type: object
- local:
- description: Local defines local rate limiting parameters, i.e. parameters for rate limiting that occurs within each Envoy pod as requests are handled.
- properties:
- burst:
- description: Burst defines the number of requests above the requests per unit that should be allowed within a short period of time.
- format: int32
- type: integer
- requests:
- description: Requests defines how many requests per unit of time should be allowed before rate limiting occurs.
- format: int32
- minimum: 1
- type: integer
- responseHeadersToAdd:
- description: ResponseHeadersToAdd is an optional list of response headers to set when a request is rate-limited.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- responseStatusCode:
- description: ResponseStatusCode is the HTTP status code to use for responses to rate-limited requests. Codes must be in the 400-599 range (inclusive). If not specified, the Envoy default of 429 (Too Many Requests) is used.
- format: int32
- maximum: 599
- minimum: 400
- type: integer
- unit:
- description: Unit defines the period of time within which requests over the limit will be rate limited. Valid values are "second", "minute" and "hour".
- enum:
- - second
- - minute
- - hour
- type: string
- required:
- - requests
- - unit
- type: object
- type: object
- requestHeadersPolicy:
- description: The policy for managing request headers during proxying.
- properties:
- remove:
- description: Remove specifies a list of HTTP header names to remove.
- items:
- type: string
- type: array
- set:
- description: Set specifies a list of HTTP header values that will be set in the HTTP header. If the header does not exist it will be added, otherwise it will be overwritten with the new value.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- responseHeadersPolicy:
- description: The policy for managing response headers during proxying. Rewriting the 'Host' header is not supported.
- properties:
- remove:
- description: Remove specifies a list of HTTP header names to remove.
- items:
- type: string
- type: array
- set:
- description: Set specifies a list of HTTP header values that will be set in the HTTP header. If the header does not exist it will be added, otherwise it will be overwritten with the new value.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- retryPolicy:
- description: The retry policy for this route.
- properties:
- count:
- description: NumRetries is maximum allowed number of retries. If not supplied, the number of retries is one.
- format: int64
- minimum: 0
- type: integer
- perTryTimeout:
- description: PerTryTimeout specifies the timeout per retry attempt. Ignored if NumRetries is not supplied.
- pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
- type: string
- retriableStatusCodes:
- description: "RetriableStatusCodes specifies the HTTP status codes that should be retried. \n This field is only respected when you include `retriable-status-codes` in the `RetryOn` field."
- items:
- format: int32
- type: integer
- type: array
- retryOn:
- description: "RetryOn specifies the conditions on which to retry a request. \n Supported [HTTP conditions](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on): \n - `5xx` - `gateway-error` - `reset` - `connect-failure` - `retriable-4xx` - `refused-stream` - `retriable-status-codes` - `retriable-headers` \n Supported [gRPC conditions](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-grpc-on): \n - `cancelled` - `deadline-exceeded` - `internal` - `resource-exhausted` - `unavailable`"
- items:
- description: RetryOn is a string type alias with validation to ensure that the value is valid.
- enum:
- - 5xx
- - gateway-error
- - reset
- - connect-failure
- - retriable-4xx
- - refused-stream
- - retriable-status-codes
- - retriable-headers
- - cancelled
- - deadline-exceeded
- - internal
- - resource-exhausted
- - unavailable
- type: string
- type: array
- type: object
- services:
- description: Services are the services to proxy traffic.
- items:
- description: Service defines an Kubernetes Service to proxy traffic.
- properties:
- mirror:
- description: If Mirror is true the Service will receive a read only mirror of the traffic for this route.
- type: boolean
- name:
- description: Name is the name of Kubernetes service to proxy traffic. Names defined here will be used to look up corresponding endpoints which contain the ips to route.
- type: string
- port:
- description: Port (defined as Integer) to proxy traffic to since a service can have multiple defined.
- exclusiveMaximum: true
- maximum: 65536
- minimum: 1
- type: integer
- protocol:
- description: Protocol may be used to specify (or override) the protocol used to reach this Service. Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.
- enum:
- - h2
- - h2c
- - tls
- type: string
- requestHeadersPolicy:
- description: The policy for managing request headers during proxying. Rewriting the 'Host' header is not supported.
- properties:
- remove:
- description: Remove specifies a list of HTTP header names to remove.
- items:
- type: string
- type: array
- set:
- description: Set specifies a list of HTTP header values that will be set in the HTTP header. If the header does not exist it will be added, otherwise it will be overwritten with the new value.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- responseHeadersPolicy:
- description: The policy for managing response headers during proxying. Rewriting the 'Host' header is not supported.
- properties:
- remove:
- description: Remove specifies a list of HTTP header names to remove.
- items:
- type: string
- type: array
- set:
- description: Set specifies a list of HTTP header values that will be set in the HTTP header. If the header does not exist it will be added, otherwise it will be overwritten with the new value.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- validation:
- description: UpstreamValidation defines how to verify the backend service's certificate
- properties:
- caSecret:
- description: Name of the Kubernetes secret be used to validate the certificate presented by the backend
- type: string
- subjectName:
- description: Key which is expected to be present in the 'subjectAltName' of the presented certificate
- type: string
- required:
- - caSecret
- - subjectName
- type: object
- weight:
- description: Weight defines percentage of traffic to balance traffic
- format: int64
- minimum: 0
- type: integer
- required:
- - name
- - port
- type: object
- minItems: 1
- type: array
- timeoutPolicy:
- description: The timeout policy for this route.
- properties:
- idle:
- description: Timeout after which, if there are no active requests for this route, the connection between Envoy and the backend or Envoy and the external client will be closed. If not specified, there is no per-route idle timeout, though a connection manager-wide stream_idle_timeout default of 5m still applies.
- pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
- type: string
- response:
- description: Timeout for receiving a response from the server after processing a request from client. If not supplied, Envoy's default value of 15s applies.
- pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
- type: string
- type: object
- required:
- - services
- type: object
- type: array
- tcpproxy:
- description: TCPProxy holds TCP proxy information.
- properties:
- healthCheckPolicy:
- description: The health check policy for this tcp proxy
- properties:
- healthyThresholdCount:
- description: The number of healthy health checks required before a host is marked healthy
- format: int32
- type: integer
- intervalSeconds:
- description: The interval (seconds) between health checks
- format: int64
- type: integer
- timeoutSeconds:
- description: The time to wait (seconds) for a health check response
- format: int64
- type: integer
- unhealthyThresholdCount:
- description: The number of unhealthy health checks required before a host is marked unhealthy
- format: int32
- type: integer
- type: object
- include:
- description: Include specifies that this tcpproxy should be delegated to another HTTPProxy.
- properties:
- name:
- description: Name of the child HTTPProxy
- type: string
- namespace:
- description: Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.
- type: string
- required:
- - name
- type: object
- includes:
- description: "IncludesDeprecated allow for specific routing configuration to be appended to another HTTPProxy in another namespace. \n Exists due to a mistake when developing HTTPProxy and the field was marked plural when it should have been singular. This field should stay to not break backwards compatibility to v1 users."
- properties:
- name:
- description: Name of the child HTTPProxy
- type: string
- namespace:
- description: Namespace of the HTTPProxy to include. Defaults to the current namespace if not supplied.
- type: string
- required:
- - name
- type: object
- loadBalancerPolicy:
- description: The load balancing policy for the backend services. Note that the `Cookie` and `RequestHash` load balancing strategies cannot be used here.
- properties:
- requestHashPolicies:
- description: RequestHashPolicies contains a list of hash policies to apply when the `RequestHash` load balancing strategy is chosen. If an element of the supplied list of hash policies is invalid, it will be ignored. If the list of hash policies is empty after validation, the load balancing strategy will fall back the the default `RoundRobin`.
- items:
- description: RequestHashPolicy contains configuration for an individual hash policy on a request attribute.
- properties:
- headerHashOptions:
- description: HeaderHashOptions should be set when request header hash based load balancing is desired. It must be the only hash option field set, otherwise this request hash policy object will be ignored.
- properties:
- headerName:
- description: HeaderName is the name of the HTTP request header that will be used to calculate the hash key. If the header specified is not present on a request, no hash will be produced.
- minLength: 1
- type: string
- type: object
- terminal:
- description: Terminal is a flag that allows for short-circuiting computing of a hash for a given request. If set to true, and the request attribute specified in the attribute hash options is present, no further hash policies will be used to calculate a hash for the request.
- type: boolean
- type: object
- type: array
- strategy:
- description: Strategy specifies the policy used to balance requests across the pool of backend pods. Valid policy names are `Random`, `RoundRobin`, `WeightedLeastRequest`, `Cookie`, and `RequestHash`. If an unknown strategy name is specified or no policy is supplied, the default `RoundRobin` policy is used.
- type: string
- type: object
- services:
- description: Services are the services to proxy traffic
- items:
- description: Service defines an Kubernetes Service to proxy traffic.
- properties:
- mirror:
- description: If Mirror is true the Service will receive a read only mirror of the traffic for this route.
- type: boolean
- name:
- description: Name is the name of Kubernetes service to proxy traffic. Names defined here will be used to look up corresponding endpoints which contain the ips to route.
- type: string
- port:
- description: Port (defined as Integer) to proxy traffic to since a service can have multiple defined.
- exclusiveMaximum: true
- maximum: 65536
- minimum: 1
- type: integer
- protocol:
- description: Protocol may be used to specify (or override) the protocol used to reach this Service. Values may be tls, h2, h2c. If omitted, protocol-selection falls back on Service annotations.
- enum:
- - h2
- - h2c
- - tls
- type: string
- requestHeadersPolicy:
- description: The policy for managing request headers during proxying. Rewriting the 'Host' header is not supported.
- properties:
- remove:
- description: Remove specifies a list of HTTP header names to remove.
- items:
- type: string
- type: array
- set:
- description: Set specifies a list of HTTP header values that will be set in the HTTP header. If the header does not exist it will be added, otherwise it will be overwritten with the new value.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- responseHeadersPolicy:
- description: The policy for managing response headers during proxying. Rewriting the 'Host' header is not supported.
- properties:
- remove:
- description: Remove specifies a list of HTTP header names to remove.
- items:
- type: string
- type: array
- set:
- description: Set specifies a list of HTTP header values that will be set in the HTTP header. If the header does not exist it will be added, otherwise it will be overwritten with the new value.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- type: object
- validation:
- description: UpstreamValidation defines how to verify the backend service's certificate
- properties:
- caSecret:
- description: Name of the Kubernetes secret be used to validate the certificate presented by the backend
- type: string
- subjectName:
- description: Key which is expected to be present in the 'subjectAltName' of the presented certificate
- type: string
- required:
- - caSecret
- - subjectName
- type: object
- weight:
- description: Weight defines percentage of traffic to balance traffic
- format: int64
- minimum: 0
- type: integer
- required:
- - name
- - port
- type: object
- type: array
- type: object
- virtualhost:
- description: Virtualhost appears at most once. If it is present, the object is considered to be a "root" HTTPProxy.
- properties:
- authorization:
- description: This field configures an extension service to perform authorization for this virtual host. Authorization can only be configured on virtual hosts that have TLS enabled. If the TLS configuration requires client certificate /validation, the client certificate is always included in the authentication check request.
- properties:
- authPolicy:
- description: AuthPolicy sets a default authorization policy for client requests. This policy will be used unless overridden by individual routes.
- properties:
- context:
- additionalProperties:
- type: string
- description: Context is a set of key/value pairs that are sent to the authentication server in the check request. If a context is provided at an enclosing scope, the entries are merged such that the inner scope overrides matching keys from the outer scope.
- type: object
- disabled:
- description: When true, this field disables client request authentication for the scope of the policy.
- type: boolean
- type: object
- extensionRef:
- description: ExtensionServiceRef specifies the extension resource that will authorize client requests.
- properties:
- apiVersion:
- description: API version of the referent. If this field is not specified, the default "projectcontour.io/v1alpha1" will be used
- minLength: 1
- type: string
- name:
- description: "Name of the referent. \n More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
- minLength: 1
- type: string
- namespace:
- description: "Namespace of the referent. If this field is not specifies, the namespace of the resource that targets the referent will be used. \n More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/"
- minLength: 1
- type: string
- type: object
- failOpen:
- description: If FailOpen is true, the client request is forwarded to the upstream service even if the authorization server fails to respond. This field should not be set in most cases. It is intended for use only while migrating applications from internal authorization to Contour external authorization.
- type: boolean
- responseTimeout:
- description: ResponseTimeout configures maximum time to wait for a check response from the authorization server. Timeout durations are expressed in the Go [Duration format](https://godoc.org/time#ParseDuration). Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The string "infinity" is also a valid input and specifies no timeout.
- pattern: ^(((\d*(\.\d*)?h)|(\d*(\.\d*)?m)|(\d*(\.\d*)?s)|(\d*(\.\d*)?ms)|(\d*(\.\d*)?us)|(\d*(\.\d*)?µs)|(\d*(\.\d*)?ns))+|infinity|infinite)$
- type: string
- required:
- - extensionRef
- type: object
- corsPolicy:
- description: Specifies the cross-origin policy to apply to the VirtualHost.
- properties:
- allowCredentials:
- description: Specifies whether the resource allows credentials.
- type: boolean
- allowHeaders:
- description: AllowHeaders specifies the content for the *access-control-allow-headers* header.
- items:
- description: CORSHeaderValue specifies the value of the string headers returned by a cross-domain request.
- pattern: ^[a-zA-Z0-9!#$%&'*+.^_`|~-]+$
- type: string
- type: array
- allowMethods:
- description: AllowMethods specifies the content for the *access-control-allow-methods* header.
- items:
- description: CORSHeaderValue specifies the value of the string headers returned by a cross-domain request.
- pattern: ^[a-zA-Z0-9!#$%&'*+.^_`|~-]+$
- type: string
- type: array
- allowOrigin:
- description: AllowOrigin specifies the origins that will be allowed to do CORS requests. "*" means allow any origin.
- items:
- type: string
- type: array
- exposeHeaders:
- description: ExposeHeaders Specifies the content for the *access-control-expose-headers* header.
- items:
- description: CORSHeaderValue specifies the value of the string headers returned by a cross-domain request.
- pattern: ^[a-zA-Z0-9!#$%&'*+.^_`|~-]+$
- type: string
- type: array
- maxAge:
- description: MaxAge indicates for how long the results of a preflight request can be cached. MaxAge durations are expressed in the Go [Duration format](https://godoc.org/time#ParseDuration). Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Only positive values are allowed while 0 disables the cache requiring a preflight OPTIONS check for all cross-origin requests.
- type: string
- required:
- - allowMethods
- - allowOrigin
- type: object
- fqdn:
- description: The fully qualified domain name of the root of the ingress tree all leaves of the DAG rooted at this object relate to the fqdn.
- type: string
- rateLimitPolicy:
- description: The policy for rate limiting on the virtual host.
- properties:
- global:
- description: Global defines global rate limiting parameters, i.e. parameters defining descriptors that are sent to an external rate limit service (RLS) for a rate limit decision on each request.
- properties:
- descriptors:
- description: Descriptors defines the list of descriptors that will be generated and sent to the rate limit service. Each descriptor contains 1+ key-value pair entries.
- items:
- description: RateLimitDescriptor defines a list of key-value pair generators.
- properties:
- entries:
- description: Entries is the list of key-value pair generators.
- items:
- description: RateLimitDescriptorEntry is a key-value pair generator. Exactly one field on this struct must be non-nil.
- properties:
- genericKey:
- description: GenericKey defines a descriptor entry with a static key and value.
- properties:
- key:
- description: Key defines the key of the descriptor entry. If not set, the key is set to "generic_key".
- type: string
- value:
- description: Value defines the value of the descriptor entry.
- minLength: 1
- type: string
- type: object
- remoteAddress:
- description: RemoteAddress defines a descriptor entry with a key of "remote_address" and a value equal to the client's IP address (from x-forwarded-for).
- type: object
- requestHeader:
- description: RequestHeader defines a descriptor entry that's populated only if a given header is present on the request. The descriptor key is static, and the descriptor value is equal to the value of the header.
- properties:
- descriptorKey:
- description: DescriptorKey defines the key to use on the descriptor entry.
- minLength: 1
- type: string
- headerName:
- description: HeaderName defines the name of the header to look for on the request.
- minLength: 1
- type: string
- type: object
- type: object
- minItems: 1
- type: array
- type: object
- minItems: 1
- type: array
- type: object
- local:
- description: Local defines local rate limiting parameters, i.e. parameters for rate limiting that occurs within each Envoy pod as requests are handled.
- properties:
- burst:
- description: Burst defines the number of requests above the requests per unit that should be allowed within a short period of time.
- format: int32
- type: integer
- requests:
- description: Requests defines how many requests per unit of time should be allowed before rate limiting occurs.
- format: int32
- minimum: 1
- type: integer
- responseHeadersToAdd:
- description: ResponseHeadersToAdd is an optional list of response headers to set when a request is rate-limited.
- items:
- description: HeaderValue represents a header name/value pair
- properties:
- name:
- description: Name represents a key of a header
- minLength: 1
- type: string
- value:
- description: Value represents the value of a header specified by a key
- minLength: 1
- type: string
- required:
- - name
- - value
- type: object
- type: array
- responseStatusCode:
- description: ResponseStatusCode is the HTTP status code to use for responses to rate-limited requests. Codes must be in the 400-599 range (inclusive). If not specified, the Envoy default of 429 (Too Many Requests) is used.
- format: int32
- maximum: 599
- minimum: 400
- type: integer
- unit:
- description: Unit defines the period of time within which requests over the limit will be rate limited. Valid values are "second", "minute" and "hour".
- enum:
- - second
- - minute
- - hour
- type: string
- required:
- - requests
- - unit
- type: object
- type: object
- tls:
- description: If present the fields describes TLS properties of the virtual host. The SNI names that will be matched on are described in fqdn, the tls.secretName secret must contain a certificate that itself contains a name that matches the FQDN.
- properties:
- clientValidation:
- description: "ClientValidation defines how to verify the client certificate when an external client establishes a TLS connection to Envoy. \n This setting: \n 1. Enables TLS client certificate validation. 2. Requires clients to present a TLS certificate (i.e. not optional validation). 3. Specifies how the client certificate will be validated."
- properties:
- caSecret:
- description: Name of a Kubernetes secret that contains a CA certificate bundle. The client certificate must validate against the certificates in the bundle.
- minLength: 1
- type: string
- required:
- - caSecret
- type: object
- enableFallbackCertificate:
- description: EnableFallbackCertificate defines if the vhost should allow a default certificate to be applied which handles all requests which don't match the SNI defined in this vhost.
- type: boolean
- minimumProtocolVersion:
- description: MinimumProtocolVersion is the minimum TLS version this vhost should negotiate. Valid options are `1.2` (default) and `1.3`. Any other value defaults to TLS 1.2.
- type: string
- passthrough:
- description: Passthrough defines whether the encrypted TLS handshake will be passed through to the backing cluster. Either Passthrough or SecretName must be specified, but not both.
- type: boolean
- secretName:
- description: SecretName is the name of a TLS secret in the current namespace. Either SecretName or Passthrough must be specified, but not both. If specified, the named secret must contain a matching certificate for the virtual host's FQDN.
- type: string
- type: object
- required:
- - fqdn
- type: object
- type: object
- status:
- description: Status is a container for computed information about the HTTPProxy.
- properties:
- conditions:
- description: "Conditions contains information about the current status of the HTTPProxy, in an upstream-friendly container. \n Contour will update a single condition, `Valid`, that is in normal-true polarity. That is, when `currentStatus` is `valid`, the `Valid` condition will be `status: true`, and vice versa. \n Contour will leave untouched any other Conditions set in this block, in case some other controller wants to add a Condition. \n If you are another controller owner and wish to add a condition, you *should* namespace your condition with a label, like `controller.domain.com/ConditionName`."
- items:
- description: "DetailedCondition is an extension of the normal Kubernetes conditions, with two extra fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) of the condition. \n `errors` holds information about sub-conditions which are fatal to that condition and render its state False. \n `warnings` holds information about sub-conditions which are not fatal to that condition and do not force the state to be False. \n Remember that Conditions have a type, a status, and a reason. \n The type is the type of the condition, the most important one in this CRD set is `Valid`. `Valid` is a positive-polarity condition: when it is `status: true` there are no problems. \n In more detail, `status: true` means that the object is has been ingested into Contour with no errors. `warnings` may still be present, and will be indicated in the Reason field. There must be zero entries in the `errors` slice in this case. \n `Valid`, `status: false` means that the object has had one or more fatal errors during processing into Contour. The details of the errors will be present under the `errors` field. There must be at least one error in the `errors` slice if `status` is `false`. \n For DetailedConditions of types other than `Valid`, the Condition must be in the negative polarity. When they have `status` `true`, there is an error. There must be at least one entry in the `errors` Subcondition slice. When they have `status` `false`, there are no serious errors, and there must be zero entries in the `errors` slice. In either case, there may be entries in the `warnings` slice. \n Regardless of the polarity, the `reason` and `message` fields must be updated with either the detail of the reason (if there is one and only one entry in total across both the `errors` and `warnings` slices), or `MultipleReasons` if there is more than one entry."
- properties:
- errors:
- description: "Errors contains a slice of relevant error subconditions for this object. \n Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. An empty slice here indicates no errors."
- items:
- description: "SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition. \n It contains a subset of the Condition fields. \n It is intended for warnings and errors, so `type` names should use abnormal-true polarity, that is, they should be of the form \"ErrorPresent: true\". \n The expected lifecycle for these errors is that they should only be present when the error or warning is, and should be removed when they are not relevant."
- properties:
- message:
- description: "Message is a human readable message indicating details about the transition. \n This may be an empty string."
- maxLength: 32768
- type: string
- reason:
- description: "Reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. \n The value should be a CamelCase string. \n This field may not be empty."
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: Status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`. \n This must be in abnormal-true polarity, that is, `ErrorFound` or `controller.io/ErrorFound`. \n The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - message
- - reason
- - status
- - type
- type: object
- type: array
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- warnings:
- description: "Warnings contains a slice of relevant warning subconditions for this object. \n Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. An empty slice here indicates no warnings."
- items:
- description: "SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition. \n It contains a subset of the Condition fields. \n It is intended for warnings and errors, so `type` names should use abnormal-true polarity, that is, they should be of the form \"ErrorPresent: true\". \n The expected lifecycle for these errors is that they should only be present when the error or warning is, and should be removed when they are not relevant."
- properties:
- message:
- description: "Message is a human readable message indicating details about the transition. \n This may be an empty string."
- maxLength: 32768
- type: string
- reason:
- description: "Reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. \n The value should be a CamelCase string. \n This field may not be empty."
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: Status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`. \n This must be in abnormal-true polarity, that is, `ErrorFound` or `controller.io/ErrorFound`. \n The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - message
- - reason
- - status
- - type
- type: object
- type: array
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- currentStatus:
- type: string
- description:
- type: string
- loadBalancer:
- description: LoadBalancer contains the current status of the load balancer.
- properties:
- ingress:
- description: Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.
- items:
- description: 'LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.'
- properties:
- hostname:
- description: Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)
- type: string
- ip:
- description: IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)
- type: string
- ports:
- description: Ports is a list of records of service ports If used, every port defined in the service should have an entry in it
- items:
- properties:
- error:
- description: 'Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use CamelCase names - cloud provider specific error values must have names that comply with the format foo.example.com/CamelCase. --- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)'
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- port:
- description: Port is the port number of the service port of which status is recorded here
- format: int32
- type: integer
- protocol:
- default: TCP
- description: 'Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP"'
- type: string
- required:
- - port
- - protocol
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- type: array
- type: object
- type: object
- required:
- - metadata
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- controller-gen.kubebuilder.io/version: v0.4.1
- creationTimestamp: null
- name: tlscertificatedelegations.projectcontour.io
-spec:
- group: projectcontour.io
- names:
- kind: TLSCertificateDelegation
- listKind: TLSCertificateDelegationList
- plural: tlscertificatedelegations
- shortNames:
- - tlscerts
- singular: tlscertificatedelegation
- preserveUnknownFields: false
- scope: Namespaced
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: TLSCertificateDelegation is an TLS Certificate Delegation CRD specification. See design/tls-certificate-delegation.md for details.
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: TLSCertificateDelegationSpec defines the spec of the CRD
- properties:
- delegations:
- items:
- description: CertificateDelegation maps the authority to reference a secret in the current namespace to a set of namespaces.
- properties:
- secretName:
- description: required, the name of a secret in the current namespace.
- type: string
- targetNamespaces:
- description: required, the namespaces the authority to reference the the secret will be delegated to. If TargetNamespaces is nil or empty, the CertificateDelegation' is ignored. If the TargetNamespace list contains the character, "*" the secret will be delegated to all namespaces.
- items:
- type: string
- type: array
- required:
- - secretName
- - targetNamespaces
- type: object
- type: array
- required:
- - delegations
- type: object
- status:
- description: TLSCertificateDelegationStatus allows for the status of the delegation to be presented to the user.
- properties:
- conditions:
- description: "Conditions contains information about the current status of the HTTPProxy, in an upstream-friendly container. \n Contour will update a single condition, `Valid`, that is in normal-true polarity. That is, when `currentStatus` is `valid`, the `Valid` condition will be `status: true`, and vice versa. \n Contour will leave untouched any other Conditions set in this block, in case some other controller wants to add a Condition. \n If you are another controller owner and wish to add a condition, you *should* namespace your condition with a label, like `controller.domain.com\\ConditionName`."
- items:
- description: "DetailedCondition is an extension of the normal Kubernetes conditions, with two extra fields to hold sub-conditions, which provide more detailed reasons for the state (True or False) of the condition. \n `errors` holds information about sub-conditions which are fatal to that condition and render its state False. \n `warnings` holds information about sub-conditions which are not fatal to that condition and do not force the state to be False. \n Remember that Conditions have a type, a status, and a reason. \n The type is the type of the condition, the most important one in this CRD set is `Valid`. `Valid` is a positive-polarity condition: when it is `status: true` there are no problems. \n In more detail, `status: true` means that the object is has been ingested into Contour with no errors. `warnings` may still be present, and will be indicated in the Reason field. There must be zero entries in the `errors` slice in this case. \n `Valid`, `status: false` means that the object has had one or more fatal errors during processing into Contour. The details of the errors will be present under the `errors` field. There must be at least one error in the `errors` slice if `status` is `false`. \n For DetailedConditions of types other than `Valid`, the Condition must be in the negative polarity. When they have `status` `true`, there is an error. There must be at least one entry in the `errors` Subcondition slice. When they have `status` `false`, there are no serious errors, and there must be zero entries in the `errors` slice. In either case, there may be entries in the `warnings` slice. \n Regardless of the polarity, the `reason` and `message` fields must be updated with either the detail of the reason (if there is one and only one entry in total across both the `errors` and `warnings` slices), or `MultipleReasons` if there is more than one entry."
- properties:
- errors:
- description: "Errors contains a slice of relevant error subconditions for this object. \n Subconditions are expected to appear when relevant (when there is a error), and disappear when not relevant. An empty slice here indicates no errors."
- items:
- description: "SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition. \n It contains a subset of the Condition fields. \n It is intended for warnings and errors, so `type` names should use abnormal-true polarity, that is, they should be of the form \"ErrorPresent: true\". \n The expected lifecycle for these errors is that they should only be present when the error or warning is, and should be removed when they are not relevant."
- properties:
- message:
- description: "Message is a human readable message indicating details about the transition. \n This may be an empty string."
- maxLength: 32768
- type: string
- reason:
- description: "Reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. \n The value should be a CamelCase string. \n This field may not be empty."
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: Status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`. \n This must be in abnormal-true polarity, that is, `ErrorFound` or `controller.io/ErrorFound`. \n The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - message
- - reason
- - status
- - type
- type: object
- type: array
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- warnings:
- description: "Warnings contains a slice of relevant warning subconditions for this object. \n Subconditions are expected to appear when relevant (when there is a warning), and disappear when not relevant. An empty slice here indicates no warnings."
- items:
- description: "SubCondition is a Condition-like type intended for use as a subcondition inside a DetailedCondition. \n It contains a subset of the Condition fields. \n It is intended for warnings and errors, so `type` names should use abnormal-true polarity, that is, they should be of the form \"ErrorPresent: true\". \n The expected lifecycle for these errors is that they should only be present when the error or warning is, and should be removed when they are not relevant."
- properties:
- message:
- description: "Message is a human readable message indicating details about the transition. \n This may be an empty string."
- maxLength: 32768
- type: string
- reason:
- description: "Reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. \n The value should be a CamelCase string. \n This field may not be empty."
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: Status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`. \n This must be in abnormal-true polarity, that is, `ErrorFound` or `controller.io/ErrorFound`. \n The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - message
- - reason
- - status
- - type
- type: object
- type: array
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- type: object
- required:
- - metadata
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: datacatalog
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flyteadmin
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: flytepropeller
- namespace: flyte
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: contour
- namespace: projectcontour
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: contour-certgen
- namespace: projectcontour
----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- name: envoy
- namespace: projectcontour
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
-rules:
-- apiGroups:
- - ""
- resourceNames:
- - kubernetes-dashboard-key-holder
- - kubernetes-dashboard-certs
- - kubernetes-dashboard-csrf
- resources:
- - secrets
- verbs:
- - get
- - update
- - delete
-- apiGroups:
- - ""
- resourceNames:
- - kubernetes-dashboard-settings
- resources:
- - configmaps
- verbs:
- - get
- - update
-- apiGroups:
- - ""
- resourceNames:
- - heapster
- - dashboard-metrics-scraper
- resources:
- - services
- verbs:
- - proxy
-- apiGroups:
- - ""
- resourceNames:
- - heapster
- - 'http:heapster:'
- - 'https:heapster:'
- - dashboard-metrics-scraper
- - http:dashboard-metrics-scraper
- resources:
- - services/proxy
- verbs:
- - get
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: contour-certgen
- namespace: projectcontour
-rules:
-- apiGroups:
- - ""
- resources:
- - secrets
- verbs:
- - create
- - update
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-rules:
-- apiGroups:
- - '*'
- resources:
- - mutatingwebhookconfigurations
- - secrets
- - pods
- - replicasets/finalizers
- verbs:
- - get
- - create
- - update
- - patch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flyteadmin
- namespace: flyte
-rules:
-- apiGroups:
- - ""
- - flyte.lyft.com
- - rbac.authorization.k8s.io
- resources:
- - configmaps
- - flyteworkflows
- - namespaces
- - pods
- - resourcequotas
- - roles
- - rolebindings
- - secrets
- - services
- - serviceaccounts
- - spark-role
- verbs:
- - '*'
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- creationTimestamp: null
- name: contour
-rules:
-- apiGroups:
- - ""
- resources:
- - configmaps
- verbs:
- - create
- - get
- - update
-- apiGroups:
- - ""
- resources:
- - endpoints
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - secrets
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - services
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - list
-- apiGroups:
- - networking.k8s.io
- resources:
- - ingressclasses
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - networking.k8s.io
- resources:
- - ingresses
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - networking.k8s.io
- resources:
- - ingresses/status
- verbs:
- - create
- - get
- - update
-- apiGroups:
- - networking.x-k8s.io
- resources:
- - backendpolicies
- - gateways
- - httproutes
- - tlsroutes
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - projectcontour.io
- resources:
- - extensionservices
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - projectcontour.io
- resources:
- - extensionservices/status
- verbs:
- - create
- - get
- - update
-- apiGroups:
- - projectcontour.io
- resources:
- - httpproxies
- - tlscertificatedelegations
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - projectcontour.io
- resources:
- - httpproxies/status
- verbs:
- - create
- - get
- - update
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- name: flytepropeller
-rules:
-- apiGroups:
- - ""
- resources:
- - pods
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - ""
- resources:
- - events
- verbs:
- - create
- - update
- - delete
- - patch
-- apiGroups:
- - '*'
- resources:
- - '*'
- verbs:
- - get
- - list
- - watch
- - create
- - update
- - delete
- - patch
-- apiGroups:
- - apiextensions.k8s.io
- resources:
- - customresourcedefinitions
- verbs:
- - get
- - list
- - watch
- - create
- - delete
- - update
-- apiGroups:
- - flyte.lyft.com
- resources:
- - flyteworkflows
- - flyteworkflows/finalizers
- verbs:
- - get
- - list
- - watch
- - create
- - update
- - delete
- - patch
- - post
- - deletecollection
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard
-rules:
-- apiGroups:
- - metrics.k8s.io
- resources:
- - pods
- - nodes
- verbs:
- - get
- - list
- - watch
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: kubernetes-dashboard
-subjects:
-- kind: ServiceAccount
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: contour
- namespace: projectcontour
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: contour-certgen
-subjects:
-- kind: ServiceAccount
- name: contour-certgen
- namespace: projectcontour
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flyte-pod-webhook
-subjects:
-- kind: ServiceAccount
- name: flyte-pod-webhook
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flyteadmin-binding
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flyteadmin
-subjects:
-- kind: ServiceAccount
- name: flyteadmin
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: flytepropeller
- namespace: flyte
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: flytepropeller
-subjects:
-- kind: ServiceAccount
- name: flytepropeller
- namespace: flyte
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: contour
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: contour
-subjects:
-- kind: ServiceAccount
- name: contour
- namespace: projectcontour
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: kubernetes-dashboard
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: kubernetes-dashboard
-subjects:
-- kind: ServiceAccount
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
- name: kubernetes-dashboard-admin
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: cluster-admin
-subjects:
-- kind: ServiceAccount
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
----
-apiVersion: v1
-data:
- aa_namespace.yaml: |
- apiVersion: v1
- kind: Namespace
- metadata:
- name: {{ namespace }}
- spec:
- finalizers:
- - kubernetes
- ab_project-resource-quota.yaml: "apiVersion: v1\nkind: ResourceQuota\nmetadata:\n name: project-quota\n namespace: {{ namespace }} \nspec:\n hard:\n limits.cpu: {{ projectQuotaCpu }} \n limits.memory: {{ projectQuotaMemory }}\n\n"
-kind: ConfigMap
-metadata:
- name: clusterresource-template-dk5mbchdmt
- namespace: flyte
----
-apiVersion: v1
-data:
- db.yaml: |
- database:
- port: 5432
- username: postgres
- host: postgres
- dbname: datacatalog
- options: sslmode=disable
- logger.yaml: |
- logger:
- show-source: true
- level: 2
- server.yaml: |
- datacatalog:
- storage-prefix: metadata/datacatalog
- metrics-scope: "datacatalog"
- profiler-port: 10254
- application:
- grpcPort: 8089
- storage.yaml: |+
- storage:
- type: minio
- connection:
- access-key: minio
- auth-type: accesskey
- secret-key: miniostorage
- disable-ssl: true
- endpoint: http://minio.flyte.svc.cluster.local:9000
- region: us-east-1
- container: "my-s3-bucket"
-
-kind: ConfigMap
-metadata:
- name: datacatalog-config-64k8dg9gck
- namespace: flyte
----
-apiVersion: v1
-data:
- cluster_resources.yaml: |
- cluster_resources:
- templatePath: "/etc/flyte/clusterresource/templates"
- customData:
- - production:
- - projectQuotaCpu:
- value: "5"
- - projectQuotaMemory:
- value: "4000Mi"
- - staging:
- - projectQuotaCpu:
- value: "2"
- - projectQuotaMemory:
- value: "3000Mi"
- - development:
- - projectQuotaCpu:
- value: "4"
- - projectQuotaMemory:
- value: "3000Mi"
- refreshInterval: 1m
- db.yaml: |
- database:
- port: 5432
- username: postgres
- host: postgres
- dbname: postgres
- options: sslmode=disable
- domain.yaml: |
- domains:
- - id: development
- name: development
- - id: staging
- name: staging
- - id: production
- name: production
- logger.yaml: |
- logger:
- show-source: true
- level: 2
- server.yaml: |
- server:
- httpPort: 8088
- grpcPort: 8089
- security:
- # Controls whether to serve requests over SSL/TLS.
- secure: false
- # Controls whether to enforce authentication. Follow the guide in https://docs.flyte.org/ on how to setup authentication.
- useAuth: false
- allowCors: true
- allowedOrigins:
- # Accepting all domains for Sandbox installation
- - "*"
- allowedHeaders:
- - "Content-Type"
- - "flyte-authorization"
- auth:
- authorizedUris:
- # This should point at your public http Uri.
- - https://localhost:30081
- # This will be used by internal services in the same namespace as flyteadmin
- - http://flyteadmin:80
- # This will be used by internal services in the same cluster but different namespaces
- - http://flyteadmin.flyte.svc.cluster.local:80
-
- # Controls app authentication config
- appAuth:
- thirdPartyConfig:
- flyteClient:
- clientId: flytectl
- redirectUri: https://localhost:53593/callback
- scopes:
- - offline
- - all
- # Controls user authentication
- userAuth:
- openId:
- baseUrl: https://accounts.google.com
- scopes:
- - profile
- - openid
- clientId: 657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com
- flyteadmin:
- roleNameKey: "iam.amazonaws.com/role"
- storage.yaml: |+
- storage:
- type: minio
- connection:
- access-key: minio
- auth-type: accesskey
- secret-key: miniostorage
- disable-ssl: true
- endpoint: http://minio.flyte.svc.cluster.local:9000
- region: us-east-1
- container: "my-s3-bucket"
-
- task_resource_defaults.yaml: |
- task_resources:
- defaults:
- cpu: 100m
- memory: 200Mi
- storage: 5Mi
- limits:
- cpu: 2
- memory: 1Gi
- storage: 20Mi
- gpu: 1
-kind: ConfigMap
-metadata:
- name: flyte-admin-config-dbg8dt2dgb
- namespace: flyte
----
-apiVersion: v1
-data:
- BASE_URL: /console
- CONFIG_DIR: /etc/flyte/config
-kind: ConfigMap
-metadata:
- name: flyte-console-config
- namespace: flyte
----
-apiVersion: v1
-data:
- admin.yaml: |
- event:
- type: admin
- rate: 500
- capacity: 1000
- admin:
- endpoint: flyteadmin:81
- insecure: true
- catalog.yaml: |
- catalog-cache:
- endpoint: datacatalog:89
- type: datacatalog
- insecure: true
- copilot.yaml: |
- plugins:
- k8s:
- co-pilot:
- name: "flyte-copilot-"
- image: "cr.flyte.org/flyteorg/flytecopilot:v0.0.15"
- start-timeout: "30s"
- core.yaml: |
- propeller:
- rawoutput-prefix: s3://my-s3-bucket/
- metadata-prefix: metadata/propeller
- workers: 4
- max-workflow-retries: 30
- workflow-reeval-duration: 30s
- downstream-eval-duration: 30s
- limit-namespace: "all"
- prof-port: 10254
- metrics-prefix: flyte
- enable-admin-launcher: true
- leader-election:
- lock-config-map:
- name: propeller-leader
- namespace: flyte
- enabled: true
- lease-duration: 15s
- renew-deadline: 10s
- retry-period: 2s
- queue:
- type: batch
- batching-interval: 2s
- batch-size: -1
- queue:
- type: maxof
- rate: 100
- capacity: 1000
- base-delay: 5s
- max-delay: 120s
- sub-queue:
- type: bucket
- rate: 10
- capacity: 100
- webhook:
- certDir: /etc/webhook/certs
- serviceName: flyte-pod-webhook
- enabled_plugins.yaml: |
- tasks:
- task-plugins:
- enabled-plugins:
- - container
- - sidecar
- - k8s-array
- default-for-task-types:
- container: container
- sidecar: sidecar
- container_array: k8s-array
- k8s.yaml: |
- plugins:
- k8s:
- default-env-vars:
- - FLYTE_AWS_ENDPOINT: "http://minio.flyte:9000"
- - FLYTE_AWS_ACCESS_KEY_ID: minio
- - FLYTE_AWS_SECRET_ACCESS_KEY: miniostorage
- default-cpus: 100m
- default-memory: 200Mi
- logger.yaml: |
- logger:
- show-source: true
- level: 2
- resource_manager.yaml: |
- propeller:
- resourcemanager:
- type: noop
- storage.yaml: |+
- storage:
- type: minio
- connection:
- access-key: minio
- auth-type: accesskey
- secret-key: miniostorage
- disable-ssl: true
- endpoint: http://minio.flyte.svc.cluster.local:9000
- region: us-east-1
- container: "my-s3-bucket"
-
- task_logs.yaml: |
- plugins:
- logs:
- kubernetes-enabled: true
- kubernetes-template-uri: "http://localhost:30082/#/log/{{ .namespace }}/{{ .podName }}/pod?namespace={{ .namespace }}"
-kind: ConfigMap
-metadata:
- name: flyte-propeller-config-g52db28fmc
- namespace: flyte
----
-apiVersion: v1
-data:
- admin.yaml: |
- admin:
- clientId: flytepropeller
- clientSecretLocation: /etc/secrets/client_secret
- endpoint: flyteadmin:81
- insecure: true
- event:
- capacity: 1000
- rate: 500
- type: admin
- db.yaml: |
- database:
- dbname: postgres
- host: postgres
- port: 5432
- username: postgres
- logger.yaml: |
- logger:
- level: 4
- show-source: true
-kind: ConfigMap
-metadata:
- labels:
- app.kubernetes.io/instance: flyte
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/name: flytescheduler
- helm.sh/chart: flyte-v0.1.10
- name: flyte-scheduler-config
- namespace: flyte
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard-settings
- namespace: kubernetes-dashboard
----
-apiVersion: v1
-data:
- contour.yaml: |
- #
- # server:
- # determine which XDS Server implementation to utilize in Contour.
- # xds-server-type: contour
- #
- # Specify the gateway-api Gateway Contour should watch.
- # gateway:
- # name: contour
- # namespace: projectcontour
- #
- # should contour expect to be running inside a k8s cluster
- # incluster: true
- #
- # path to kubeconfig (if not running inside a k8s cluster)
- # kubeconfig: /path/to/.kube/config
- #
- # Disable RFC-compliant behavior to strip "Content-Length" header if
- # "Tranfer-Encoding: chunked" is also set.
- # disableAllowChunkedLength: false
- # Disable HTTPProxy permitInsecure field
- disablePermitInsecure: false
- tls:
- # minimum TLS version that Contour will negotiate
- # minimum-protocol-version: "1.2"
- # TLS ciphers to be supported by Envoy TLS listeners when negotiating
- # TLS 1.2.
- # cipher-suites:
- # - '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]'
- # - '[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]'
- # - 'ECDHE-ECDSA-AES256-GCM-SHA384'
- # - 'ECDHE-RSA-AES256-GCM-SHA384'
- # Defines the Kubernetes name/namespace matching a secret to use
- # as the fallback certificate when requests which don't match the
- # SNI defined for a vhost.
- fallback-certificate:
- # name: fallback-secret-name
- # namespace: projectcontour
- envoy-client-certificate:
- # name: envoy-client-cert-secret-name
- # namespace: projectcontour
- # The following config shows the defaults for the leader election.
- # leaderelection:
- # configmap-name: leader-elect
- # configmap-namespace: projectcontour
- ### Logging options
- # Default setting
- accesslog-format: envoy
- # To enable JSON logging in Envoy
- # accesslog-format: json
- # The default fields that will be logged are specified below.
- # To customise this list, just add or remove entries.
- # The canonical list is available at
- # https://godoc.org/github.com/projectcontour/contour/internal/envoy#JSONFields
- # json-fields:
- # - "@timestamp"
- # - "authority"
- # - "bytes_received"
- # - "bytes_sent"
- # - "downstream_local_address"
- # - "downstream_remote_address"
- # - "duration"
- # - "method"
- # - "path"
- # - "protocol"
- # - "request_id"
- # - "requested_server_name"
- # - "response_code"
- # - "response_flags"
- # - "uber_trace_id"
- # - "upstream_cluster"
- # - "upstream_host"
- # - "upstream_local_address"
- # - "upstream_service_time"
- # - "user_agent"
- # - "x_forwarded_for"
- #
- # default-http-versions:
- # - "HTTP/2"
- # - "HTTP/1.1"
- #
- # The following shows the default proxy timeout settings.
- # timeouts:
- # request-timeout: infinity
- # connection-idle-timeout: 60s
- # stream-idle-timeout: 5m
- # max-connection-duration: infinity
- # delayed-close-timeout: 1s
- # connection-shutdown-grace-period: 5s
- #
- # Envoy cluster settings.
- # cluster:
- # configure the cluster dns lookup family
- # valid options are: auto (default), v4, v6
- # dns-lookup-family: auto
- #
- # Envoy network settings.
- # network:
- # Configure the number of additional ingress proxy hops from the
- # right side of the x-forwarded-for HTTP header to trust.
- # num-trusted-hops: 0
- #
- # Configure an optional global rate limit service.
- # rateLimitService:
- # Identifies the extension service defining the rate limit service,
- # formatted as /.
- # extensionService: projectcontour/ratelimit
- # Defines the rate limit domain to pass to the rate limit service.
- # Acts as a container for a set of rate limit definitions within
- # the RLS.
- # domain: contour
- # Defines whether to allow requests to proceed when the rate limit
- # service fails to respond with a valid rate limit decision within
- # the timeout defined on the extension service.
- # failOpen: false
-kind: ConfigMap
-metadata:
- name: contour
- namespace: projectcontour
----
-apiVersion: v1
-data:
- pass.txt: YXdlc29tZXNhdWNl
-kind: Secret
-metadata:
- name: db-pass-9dgchhk2bm
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-admin-auth
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-pod-webhook
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: flyte-secret-auth
- namespace: flyte
-stringData:
- client_secret: foobar
-type: Opaque
----
-apiVersion: v1
-data:
- password: bXl1c2Vy
- user_secret: bXlzZWNyZXQ=
- username: bXl1c2Vy
-kind: Secret
-metadata:
- name: user-info
- namespace: flyte
-type: Opaque
----
-apiVersion: v1
-data:
- csrf: ""
-kind: Secret
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard-csrf
- namespace: kubernetes-dashboard
-type: Opaque
----
-apiVersion: v1
-kind: Secret
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard-key-holder
- namespace: kubernetes-dashboard
-type: Opaque
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- contour.heptio.com/upstream-protocol.h2c: grpc
- name: datacatalog
- namespace: flyte
-spec:
- ports:
- - name: http
- port: 88
- protocol: TCP
- targetPort: 8088
- - name: grpc
- port: 89
- protocol: TCP
- targetPort: 8089
- selector:
- app: datacatalog
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- projectcontour.io/upstream-protocol.h2c: grpc
- name: flyte-pod-webhook
- namespace: flyte
-spec:
- ports:
- - name: https
- port: 443
- protocol: TCP
- targetPort: 9443
- selector:
- app: flyte-pod-webhook
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- projectcontour.io/upstream-protocol.h2c: grpc
- name: flyteadmin
- namespace: flyte
-spec:
- ports:
- - name: redoc
- port: 87
- protocol: TCP
- targetPort: 8087
- - name: http
- port: 80
- protocol: TCP
- targetPort: 8088
- - name: grpc
- port: 81
- protocol: TCP
- targetPort: 8089
- selector:
- app: flyteadmin
----
-apiVersion: v1
-kind: Service
-metadata:
- name: flyteconsole
- namespace: flyte
-spec:
- ports:
- - port: 80
- protocol: TCP
- targetPort: 8080
- selector:
- app: flyteconsole
----
-apiVersion: v1
-kind: Service
-metadata:
- name: minio
- namespace: flyte
-spec:
- externalName: minio
- ports:
- - name: minio-api
- port: 9000
- - name: minio-console
- port: 9001
- selector:
- app: minio
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- app: minio
- name: minio-direct
- namespace: flyte
-spec:
- ports:
- - nodePort: 30084
- port: 9000
- protocol: TCP
- selector:
- app: minio
- type: NodePort
----
-apiVersion: v1
-kind: Service
-metadata:
- name: postgres
- namespace: flyte
-spec:
- ports:
- - port: 5432
- selector:
- app: postgres
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- app: postgres
- name: postgres-direct
- namespace: flyte
-spec:
- ports:
- - nodePort: 30083
- port: 5432
- protocol: TCP
- selector:
- app: postgres
- type: NodePort
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- k8s-app: dashboard-metrics-scraper
- name: dashboard-metrics-scraper
- namespace: kubernetes-dashboard
-spec:
- ports:
- - port: 8000
- targetPort: 8000
- selector:
- k8s-app: dashboard-metrics-scraper
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
-spec:
- ports:
- - name: http
- nodePort: 30082
- port: 80
- protocol: TCP
- targetPort: 9090
- selector:
- k8s-app: kubernetes-dashboard
- type: NodePort
----
-apiVersion: v1
-kind: Service
-metadata:
- name: contour
- namespace: projectcontour
-spec:
- ports:
- - name: xds
- port: 8001
- protocol: TCP
- targetPort: 8001
- selector:
- app: contour
- type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
- name: envoy
- namespace: projectcontour
-spec:
- externalTrafficPolicy: Local
- ports:
- - name: http
- nodePort: 30081
- port: 80
- protocol: TCP
- - name: https
- port: 443
- protocol: TCP
- selector:
- app: envoy
- type: NodePort
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: datacatalog
- name: datacatalog
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: datacatalog
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: datacatalog
- app.kubernetes.io/name: datacatalog
- app.kubernetes.io/version: 0.3.0
- spec:
- containers:
- - command:
- - datacatalog
- - --config
- - /etc/datacatalog/config/*.yaml
- - serve
- image: cr.flyte.org/flyteorg/datacatalog:v1.0.51
- imagePullPolicy: IfNotPresent
- name: datacatalog
- ports:
- - containerPort: 8088
- - containerPort: 8089
- volumeMounts:
- - mountPath: /etc/datacatalog/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- initContainers:
- - command:
- - datacatalog
- - --config
- - /etc/datacatalog/config/*.yaml
- - migrate
- - run
- image: cr.flyte.org/flyteorg/datacatalog:v1.0.51
- imagePullPolicy: IfNotPresent
- name: run-migrations
- volumeMounts:
- - mountPath: /etc/datacatalog/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: datacatalog
- volumes:
- - emptyDir: {}
- name: shared-data
- - configMap:
- name: datacatalog-config-64k8dg9gck
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-9dgchhk2bm
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyte-pod-webhook
- name: flyte-pod-webhook
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: flyte-pod-webhook
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flyte-pod-webhook
- app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: 0.5.13
- spec:
- containers:
- - args:
- - webhook
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.1.116
- imagePullPolicy: IfNotPresent
- name: webhook
- volumeMounts:
- - mountPath: /etc/secrets/user-info
- name: sample-secrets
- readOnly: true
- - mountPath: /etc/flyte/config
- name: config-volume
- readOnly: true
- - mountPath: /etc/webhook/certs
- name: webhook-certs
- readOnly: true
- initContainers:
- - args:
- - webhook
- - init-certs
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.1.116
- imagePullPolicy: IfNotPresent
- name: generate-secrets
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flyte-pod-webhook
- volumes:
- - name: sample-secrets
- secret:
- secretName: user-info
- - configMap:
- name: flyte-propeller-config-g52db28fmc
- name: config-volume
- - name: webhook-certs
- secret:
- secretName: flyte-pod-webhook
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyteadmin
- name: flyteadmin
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flyteadmin
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flyteadmin
- app.kubernetes.io/name: flyteadmin
- app.kubernetes.io/version: 0.4.13
- spec:
- containers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - serve
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: flyteadmin
- ports:
- - containerPort: 8088
- - containerPort: 8089
- resources:
- limits:
- cpu: "0.1"
- ephemeral-storage: 100Mi
- memory: 200Mi
- volumeMounts:
- - mountPath: /srv/flyte
- name: shared-data
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - mountPath: /etc/secrets/
- name: auth
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - run
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources-goroutine
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - command:
- - sh
- - -c
- - ln -s /usr/share/nginx/html /usr/share/nginx/html/openapi && sh /usr/local/bin/docker-run.sh
- env:
- - name: PAGE_TITLE
- value: Flyte Admin OpenAPI
- - name: SPEC_URL
- value: /api/v1/openapi
- - name: PORT
- value: "8087"
- image: docker.io/redocly/redoc
- imagePullPolicy: IfNotPresent
- name: redoc
- ports:
- - containerPort: 8087
- resources:
- limits:
- cpu: "0.1"
- memory: 200Mi
- initContainers:
- - command:
- - sh
- - -c
- - until pg_isready -h postgres -p 5432; do echo waiting for database; sleep 2; done;
- image: ecr.flyte.org/ubuntu/postgres:13-21.04_beta
- name: check-db-ready
- securityContext:
- runAsUser: 999
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - migrate
- - run
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: run-migrations
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - migrate
- - seed-projects
- - flytesnacks
- - flyteexamples
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: seed-projects
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - sync
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- - args:
- - flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --fromPath /etc/scratch/secrets
- command:
- - /bin/sh
- - -c
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: generate-secrets
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/scratch
- name: scratch
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: clusterresource-template-dk5mbchdmt
- name: resource-templates
- - emptyDir: {}
- name: shared-data
- - emptyDir: {}
- name: scratch
- - configMap:
- name: flyte-admin-config-dbg8dt2dgb
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-9dgchhk2bm
- - name: auth
- secret:
- secretName: flyte-admin-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flyteconsole
- name: flyteconsole
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flyteconsole
- template:
- metadata:
- labels:
- app: flyteconsole
- app.kubernetes.io/name: flyteconsole
- app.kubernetes.io/version: 0.19.0
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: flyte-console-config
- image: cr.flyte.org/flyteorg/flyteconsole:v1.9.2
- name: flyteconsole
- ports:
- - containerPort: 8080
- volumeMounts:
- - mountPath: /srv/flyte
- name: shared-data
- securityContext:
- fsGroupChangePolicy: Always
- runAsUser: 1000
- volumes:
- - emptyDir: {}
- name: shared-data
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flytepropeller
- name: flytepropeller
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: flytepropeller
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flytepropeller
- app.kubernetes.io/name: flytepropeller
- app.kubernetes.io/version: 0.7.1
- spec:
- containers:
- - args:
- - --config
- - /etc/flyte/config/*.yaml
- command:
- - flytepropeller
- env:
- - name: POD_NAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: cr.flyte.org/flyteorg/flytepropeller:v1.1.116
- imagePullPolicy: IfNotPresent
- name: flytepropeller
- ports:
- - containerPort: 10254
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/secrets/
- name: auth
- securityContext:
- fsGroup: 65534
- fsGroupChangePolicy: Always
- runAsUser: 1001
- serviceAccountName: flytepropeller
- volumes:
- - configMap:
- name: flyte-propeller-config-g52db28fmc
- name: config-volume
- - name: auth
- secret:
- secretName: flyte-secret-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: flytescheduler
- name: flytescheduler
- namespace: flyte
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: flytescheduler
- template:
- metadata:
- annotations:
- prometheus.io/path: /metrics
- prometheus.io/port: "10254"
- prometheus.io/scrape: "true"
- labels:
- app: flytescheduler
- app.kubernetes.io/name: flytescheduler
- app.kubernetes.io/version: 0.3.4
- spec:
- containers:
- - command:
- - flytescheduler
- - run
- - --config
- - /etc/flyte/config/*.yaml
- image: cr.flyte.org/flyteorg/flytescheduler:v0.6.49
- imagePullPolicy: IfNotPresent
- name: flytescheduler
- resources:
- limits:
- cpu: 250m
- ephemeral-storage: 100Mi
- memory: 500Mi
- requests:
- cpu: 10m
- ephemeral-storage: 50Mi
- memory: 50Mi
- volumeMounts:
- - mountPath: /etc/secrets/
- name: auth
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- initContainers:
- - command:
- - flytescheduler
- - precheck
- - --config
- - /etc/flyte/config/*.yaml
- image: cr.flyte.org/flyteorg/flytescheduler:v0.6.49
- imagePullPolicy: IfNotPresent
- name: flytescheduler-check
- volumeMounts:
- - mountPath: /etc/flyte/config
- name: config-volume
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: flyte-scheduler-config
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-9dgchhk2bm
- - name: auth
- secret:
- secretName: flyte-secret-auth
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: minio
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: minio
- template:
- metadata:
- labels:
- app: minio
- spec:
- containers:
- - env:
- - name: MINIO_ACCESS_KEY
- value: minio
- - name: MINIO_SECRET_KEY
- value: miniostorage
- - name: MINIO_DEFAULT_BUCKETS
- value: my-s3-bucket
- image: ecr.flyte.org/bitnami/minio:2021.10.13-debian-10-r0
- name: minio
- ports:
- - containerPort: 9000
- name: minio
- - containerPort: 9001
- name: minio-console
- volumeMounts:
- - mountPath: /data
- name: minio-storage
- securityContext:
- fsGroup: 1001
- fsGroupChangePolicy: OnRootMismatch
- runAsUser: 1001
- volumes:
- - emptyDir: {}
- name: minio-storage
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: postgres
- namespace: flyte
-spec:
- selector:
- matchLabels:
- app: postgres
- template:
- metadata:
- labels:
- app: postgres
- spec:
- containers:
- - env:
- - name: POSTGRES_HOST_AUTH_METHOD
- value: trust
- image: ecr.flyte.org/ubuntu/postgres:13-21.04_beta
- name: postgres
- ports:
- - containerPort: 5432
- name: postgres
- volumeMounts:
- - mountPath: /var/lib/postgresql/data
- name: postgres-storage
- volumes:
- - emptyDir: {}
- name: postgres-storage
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- k8s-app: dashboard-metrics-scraper
- name: dashboard-metrics-scraper
- namespace: kubernetes-dashboard
-spec:
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s-app: dashboard-metrics-scraper
- template:
- metadata:
- annotations:
- seccomp.security.alpha.kubernetes.io/pod: runtime/default
- labels:
- k8s-app: dashboard-metrics-scraper
- spec:
- containers:
- - image: kubernetesui/metrics-scraper:v1.0.6
- livenessProbe:
- httpGet:
- path: /
- port: 8000
- scheme: HTTP
- initialDelaySeconds: 30
- timeoutSeconds: 30
- name: dashboard-metrics-scraper
- ports:
- - containerPort: 8000
- protocol: TCP
- securityContext:
- allowPrivilegeEscalation: false
- readOnlyRootFilesystem: true
- runAsGroup: 2001
- runAsUser: 1001
- volumeMounts:
- - mountPath: /tmp
- name: tmp-volume
- nodeSelector:
- kubernetes.io/os: linux
- serviceAccountName: kubernetes-dashboard
- tolerations:
- - effect: NoSchedule
- key: node-role.kubernetes.io/master
- volumes:
- - emptyDir: {}
- name: tmp-volume
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- k8s-app: kubernetes-dashboard
- name: kubernetes-dashboard
- namespace: kubernetes-dashboard
-spec:
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s-app: kubernetes-dashboard
- template:
- metadata:
- labels:
- k8s-app: kubernetes-dashboard
- spec:
- containers:
- - args:
- - --namespace=kubernetes-dashboard
- - --enable-insecure-login
- - --enable-skip-login
- - --disable-settings-authorizer
- image: kubernetesui/dashboard:v2.2.0
- livenessProbe:
- httpGet:
- path: /
- port: 9090
- initialDelaySeconds: 30
- timeoutSeconds: 30
- name: kubernetes-dashboard
- ports:
- - containerPort: 9090
- protocol: TCP
- securityContext:
- allowPrivilegeEscalation: false
- readOnlyRootFilesystem: true
- runAsGroup: 2001
- runAsUser: 1001
- volumeMounts:
- - mountPath: /tmp
- name: tmp-volume
- nodeSelector:
- kubernetes.io/os: linux
- serviceAccountName: kubernetes-dashboard
- tolerations:
- - effect: NoSchedule
- key: node-role.kubernetes.io/master
- volumes:
- - emptyDir: {}
- name: tmp-volume
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- labels:
- app: contour
- name: contour
- namespace: projectcontour
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: contour
- strategy:
- rollingUpdate:
- maxSurge: 50%
- type: RollingUpdate
- template:
- metadata:
- annotations:
- prometheus.io/port: "8000"
- prometheus.io/scrape: "true"
- labels:
- app: contour
- spec:
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app: contour
- topologyKey: kubernetes.io/hostname
- weight: 100
- containers:
- - args:
- - serve
- - --incluster
- - --xds-address=0.0.0.0
- - --xds-port=8001
- - --envoy-service-http-port=80
- - --envoy-service-https-port=443
- - --contour-cafile=/certs/ca.crt
- - --contour-cert-file=/certs/tls.crt
- - --contour-key-file=/certs/tls.key
- - --config-path=/config/contour.yaml
- command:
- - contour
- env:
- - name: CONTOUR_NAMESPACE
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.namespace
- - name: POD_NAME
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.name
- image: docker.io/projectcontour/contour:v1.13.1
- imagePullPolicy: IfNotPresent
- livenessProbe:
- httpGet:
- path: /healthz
- port: 8000
- name: contour
- ports:
- - containerPort: 8001
- name: xds
- protocol: TCP
- - containerPort: 8000
- name: metrics
- protocol: TCP
- - containerPort: 6060
- name: debug
- protocol: TCP
- readinessProbe:
- initialDelaySeconds: 15
- periodSeconds: 10
- tcpSocket:
- port: 8001
- volumeMounts:
- - mountPath: /certs
- name: contourcert
- readOnly: true
- - mountPath: /config
- name: contour-config
- readOnly: true
- dnsPolicy: ClusterFirst
- securityContext:
- runAsGroup: 65534
- runAsNonRoot: true
- runAsUser: 65534
- serviceAccountName: contour
- volumes:
- - name: contourcert
- secret:
- secretName: contourcert
- - configMap:
- defaultMode: 420
- items:
- - key: contour.yaml
- path: contour.yaml
- name: contour
- name: contour-config
----
-apiVersion: batch/v1beta1
-kind: CronJob
-metadata:
- name: syncresources
- namespace: flyte
-spec:
- jobTemplate:
- spec:
- template:
- spec:
- containers:
- - command:
- - flyteadmin
- - --config
- - /etc/flyte/config/*.yaml
- - clusterresource
- - sync
- image: cr.flyte.org/flyteorg/flyteadmin:v1.1.118
- imagePullPolicy: IfNotPresent
- name: sync-cluster-resources
- volumeMounts:
- - mountPath: /etc/flyte/clusterresource/templates
- name: resource-templates
- - mountPath: /etc/flyte/config
- name: config-volume
- - mountPath: /etc/db
- name: db-pass
- restartPolicy: OnFailure
- serviceAccountName: flyteadmin
- volumes:
- - configMap:
- name: clusterresource-template-dk5mbchdmt
- name: resource-templates
- - configMap:
- name: flyte-admin-config-dbg8dt2dgb
- name: config-volume
- - name: db-pass
- secret:
- secretName: db-pass-9dgchhk2bm
- schedule: '*/1 * * * *'
----
-apiVersion: apps/v1
-kind: DaemonSet
-metadata:
- labels:
- app: envoy
- name: envoy
- namespace: projectcontour
-spec:
- selector:
- matchLabels:
- app: envoy
- template:
- metadata:
- annotations:
- prometheus.io/path: /stats/prometheus
- prometheus.io/port: "8002"
- prometheus.io/scrape: "true"
- labels:
- app: envoy
- spec:
- automountServiceAccountToken: false
- containers:
- - args:
- - envoy
- - shutdown-manager
- command:
- - /bin/contour
- image: docker.io/projectcontour/contour:v1.13.1
- imagePullPolicy: IfNotPresent
- lifecycle:
- preStop:
- exec:
- command:
- - /bin/contour
- - envoy
- - shutdown
- livenessProbe:
- httpGet:
- path: /healthz
- port: 8090
- initialDelaySeconds: 3
- periodSeconds: 10
- name: shutdown-manager
- - args:
- - -c
- - /config/envoy.json
- - --service-cluster $(CONTOUR_NAMESPACE)
- - --service-node $(ENVOY_POD_NAME)
- - --log-level info
- command:
- - envoy
- env:
- - name: CONTOUR_NAMESPACE
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.namespace
- - name: ENVOY_POD_NAME
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.name
- image: docker.io/envoyproxy/envoy:v1.17.1
- imagePullPolicy: IfNotPresent
- lifecycle:
- preStop:
- httpGet:
- path: /shutdown
- port: 8090
- scheme: HTTP
- name: envoy
- ports:
- - containerPort: 80
- hostPort: 80
- name: http
- protocol: TCP
- - containerPort: 443
- hostPort: 443
- name: https
- protocol: TCP
- readinessProbe:
- httpGet:
- path: /ready
- port: 8002
- initialDelaySeconds: 3
- periodSeconds: 4
- volumeMounts:
- - mountPath: /config
- name: envoy-config
- readOnly: true
- - mountPath: /certs
- name: envoycert
- readOnly: true
- initContainers:
- - args:
- - bootstrap
- - /config/envoy.json
- - --xds-address=contour
- - --xds-port=8001
- - --xds-resource-version=v3
- - --resources-dir=/config/resources
- - --envoy-cafile=/certs/ca.crt
- - --envoy-cert-file=/certs/tls.crt
- - --envoy-key-file=/certs/tls.key
- command:
- - contour
- env:
- - name: CONTOUR_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: docker.io/projectcontour/contour:v1.13.1
- imagePullPolicy: IfNotPresent
- name: envoy-initconfig
- volumeMounts:
- - mountPath: /config
- name: envoy-config
- - mountPath: /certs
- name: envoycert
- readOnly: true
- restartPolicy: Always
- serviceAccountName: envoy
- terminationGracePeriodSeconds: 300
- volumes:
- - emptyDir: {}
- name: envoy-config
- - name: envoycert
- secret:
- secretName: envoycert
- updateStrategy:
- rollingUpdate:
- maxUnavailable: 10%
- type: RollingUpdate
----
-apiVersion: batch/v1
-kind: Job
-metadata:
- name: contour-certgen-v1.13.1
- namespace: projectcontour
-spec:
- backoffLimit: 1
- completions: 1
- parallelism: 1
- template:
- metadata:
- labels:
- app: contour-certgen
- spec:
- containers:
- - command:
- - contour
- - certgen
- - --kube
- - --incluster
- - --overwrite
- - --secrets-format=compact
- - --namespace=$(CONTOUR_NAMESPACE)
- env:
- - name: CONTOUR_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- image: docker.io/projectcontour/contour:v1.13.1
- imagePullPolicy: Always
- name: contour
- restartPolicy: Never
- securityContext:
- runAsGroup: 65534
- runAsNonRoot: true
- runAsUser: 65534
- serviceAccountName: contour-certgen
- ttlSecondsAfterFinished: 0
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- annotations:
- nginx.ingress.kubernetes.io/app-root: /console
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- name: flytesystem
- namespace: flyte
-spec:
- rules:
- - http:
- paths:
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /__webpack_hmr
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.AdminService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.AuthMetadataService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.IdentityService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 81
- path: /flyteidl.service.SignalService
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 87
- path: /openapi
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /console
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteconsole
- port:
- number: 80
- path: /console/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /api
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /api/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /healthcheck
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /v1/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 87
- path: /openapi/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /.well-known/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /login
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /login/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /logout
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /logout/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /callback
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /callback/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /me
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /config
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /config/*
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /oauth2
- pathType: ImplementationSpecific
- - backend:
- service:
- name: flyteadmin
- port:
- number: 80
- path: /oauth2/*
- pathType: ImplementationSpecific
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- annotations:
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- name: minio
- namespace: flyte
-spec:
- rules:
- - http:
- paths:
- - backend:
- service:
- name: minio
- port:
- number: 9001
- path: /minio
- pathType: ImplementationSpecific
diff --git a/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml
index d6506ebe21..80d9450477 100644
--- a/deployment/sandbox/flyte_helm_generated.yaml
+++ b/deployment/sandbox/flyte_helm_generated.yaml
@@ -326,7 +326,7 @@ data:
region: us-east-1
signedUrl:
stowConfigOverride:
- endpoint: http://localhost:30084
+ endpoint: http://minio.flyte.svc.cluster.local:9000
enable-multicontainer: false
limits:
maxDownloadMBs: 10
@@ -334,12 +334,10 @@ data:
task_resources:
defaults:
cpu: 100m
- ephemeralStorage: 500Mi
memory: 200Mi
storage: 5Mi
limits:
cpu: 2
- ephemeralStorage: 20Mi
gpu: 1
memory: 1Gi
storage: 20Mi
@@ -514,7 +512,7 @@ data:
region: us-east-1
signedUrl:
stowConfigOverride:
- endpoint: http://localhost:30084
+ endpoint: http://minio.flyte.svc.cluster.local:9000
enable-multicontainer: false
limits:
maxDownloadMBs: 10
@@ -587,7 +585,7 @@ data:
plugins:
k8s:
co-pilot:
- image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4
+ image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0
name: flyte-copilot-
start-timeout: 30s
core.yaml: |
@@ -648,6 +646,8 @@ data:
plugins:
k8s:
default-cpus: 100m
+ default-env-from-configmaps: []
+ default-env-from-secrets: []
default-env-vars:
- FLYTE_AWS_ENDPOINT: http://minio.flyte:9000
- FLYTE_AWS_ACCESS_KEY_ID: minio
@@ -676,7 +676,7 @@ data:
region: us-east-1
signedUrl:
stowConfigOverride:
- endpoint: http://localhost:30084
+ endpoint: http://minio.flyte.svc.cluster.local:9000
enable-multicontainer: false
limits:
maxDownloadMBs: 10
@@ -6686,17 +6686,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "82d6ffa2a2dd83eb11c491a95af43fdede659d6b5b400b6edcd88291a28c4f4"
+ configChecksum: "8702cc3d688d44938e6974b267f70fb01ce7fec4780de86b8f2e65f9446c711"
labels:
app.kubernetes.io/name: flyteadmin
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flyteadmin
@@ -6704,9 +6707,13 @@ spec:
- /etc/flyte/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
@@ -6720,9 +6727,13 @@ spec:
- flytesnacks
- flytetester
- flyteexamples
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: seed-projects
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
@@ -6733,9 +6744,13 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- sync
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/clusterresource/templates
@@ -6745,13 +6760,17 @@ spec:
- mountPath: /etc/secrets/
name: admin-secrets
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command: ["/bin/sh", "-c"]
args:
[
"flyteadmin --config=/etc/flyte/config/*.yaml secrets init --localPath /etc/scratch/secrets && flyteadmin --config=/etc/flyte/config/*.yaml secrets create --name flyte-admin-secrets --fromPath /etc/scratch/secrets",
]
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
name: base-config-volume
@@ -6768,7 +6787,7 @@ spec:
- --config
- /etc/flyte/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flyteadmin
ports:
@@ -6793,6 +6812,10 @@ spec:
cpu: 10m
ephemeral-storage: 50Mi
memory: 50Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /srv/flyte
@@ -6859,7 +6882,7 @@ spec:
- /etc/flyte/config/*.yaml
- clusterresource
- run
- image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: sync-cluster-resources
volumeMounts:
@@ -6905,11 +6928,14 @@ spec:
helm.sh/chart: flyte-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1000
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
containers:
- - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.2"
+ - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3"
imagePullPolicy: "IfNotPresent"
name: flyteconsole
envFrom:
@@ -6922,6 +6948,10 @@ spec:
value: "true"
- name: GA_TRACKING_ID
value: "G-0QW4DJWJ20"
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 500m
@@ -6956,17 +6986,20 @@ spec:
template:
metadata:
annotations:
- configChecksum: "8feeaa7f7ec6506426db0d3e3cda6bc3ac0049a7eeba49d6cce62b3e1c7c424"
+ configChecksum: "ccdd0d27618b8053a8ae11046fd2b84b9a397144dd81c7113f398cddf001397"
labels:
app.kubernetes.io/name: datacatalog
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 1001
+ fsGroupChangePolicy: OnRootMismatch
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "OnRootMismatch"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- datacatalog
@@ -6974,26 +7007,34 @@ spec:
- /etc/datacatalog/config/*.yaml
- migrate
- run
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: run-migrations
volumeMounts:
- mountPath: /etc/datacatalog/config
name: config-volume
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
containers:
- command:
- datacatalog
- --config
- /etc/datacatalog/config/*.yaml
- serve
- image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: datacatalog
ports:
- containerPort: 8088
- containerPort: 8089
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 500m
@@ -7036,26 +7077,33 @@ spec:
template:
metadata:
annotations:
- configChecksum: "82d6ffa2a2dd83eb11c491a95af43fdede659d6b5b400b6edcd88291a28c4f4"
+ configChecksum: "8702cc3d688d44938e6974b267f70fb01ce7fec4780de86b8f2e65f9446c711"
labels:
app.kubernetes.io/name: flytescheduler
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
initContainers:
- command:
- flytescheduler
- precheck
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler-check
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- mountPath: /etc/flyte/config
@@ -7068,11 +7116,15 @@ spec:
- run
- --config
- /etc/flyte/config/*.yaml
- image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytescheduler
ports:
- containerPort: 10254
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
resources:
limits:
cpu: 250m
@@ -7120,17 +7172,17 @@ spec:
template:
metadata:
annotations:
- configChecksum: "05780b9daf69f0afaee7339e2948131e9b02b38496e68543370bf267e8ef708"
+ configChecksum: "08d1c92032d4eeaac312ca0cf651f72aa1f214a2de469b49b93ecdfb129b8af"
labels:
app.kubernetes.io/name: flytepropeller
app.kubernetes.io/instance: flyte
helm.sh/chart: flyte-v0.1.10
app.kubernetes.io/managed-by: Helm
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
runAsUser: 1001
- fsGroupChangePolicy: "Always"
containers:
- command:
- flytepropeller
@@ -7145,7 +7197,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
name: flytepropeller
ports:
@@ -7192,18 +7244,21 @@ spec:
labels:
app: flyte-pod-webhook
app.kubernetes.io/name: flyte-pod-webhook
- app.kubernetes.io/version: v1.10.7-b4
+ app.kubernetes.io/version: v1.11.0-b0
annotations:
- configChecksum: "05780b9daf69f0afaee7339e2948131e9b02b38496e68543370bf267e8ef708"
+ configChecksum: "08d1c92032d4eeaac312ca0cf651f72aa1f214a2de469b49b93ecdfb129b8af"
spec:
- securityContext:
+ securityContext:
fsGroup: 65534
+ fsGroupChangePolicy: Always
+ runAsNonRoot: true
runAsUser: 1001
- fsGroupChangePolicy: "Always"
+ seLinuxOptions:
+ type: spc_t
serviceAccountName: flyte-pod-webhook
initContainers:
- name: generate-secrets
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -7221,12 +7276,16 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
containers:
- name: webhook
- image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0"
imagePullPolicy: "IfNotPresent"
command:
- flytepropeller
@@ -7245,6 +7304,15 @@ spec:
fieldPath: metadata.namespace
ports:
- containerPort: 9443
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ resources:
+ requests:
+ cpu: 200m
+ ephemeral-storage: 500Mi
+ memory: 500Mi
volumeMounts:
- name: config-volume
mountPath: /etc/flyte/config
@@ -7538,6 +7606,7 @@ metadata:
annotations:
nginx.ingress.kubernetes.io/app-root: /console
spec:
+ ingressClassName:
rules:
- http:
paths:
diff --git a/docker/sandbox-bundled/Makefile b/docker/sandbox-bundled/Makefile
index 0b4eac7e0a..1c080db16a 100644
--- a/docker/sandbox-bundled/Makefile
+++ b/docker/sandbox-bundled/Makefile
@@ -3,6 +3,7 @@ mkdir -p images/tar/$(1)
docker buildx build \
--build-arg FLYTECONSOLE_VERSION=$(FLYTECONSOLE_VERSION) \
+ --builder flyte-sandbox \
--platform linux/$(1) \
--tag flyte-binary:sandbox \
--output type=docker,dest=images/tar/$(1)/flyte-binary.tar \
@@ -10,17 +11,28 @@ docker buildx build \
endef
+.PHONY: create_builder
+create_builder:
+ [ -n "$(shell docker buildx ls | awk '/^flyte-sandbox / {print $$1}')" ] || \
+ docker buildx create --name flyte-sandbox \
+ --driver docker-container --driver-opt image=moby/buildkit:master \
+ --buildkitd-flags '--allow-insecure-entitlement security.insecure' \
+ --platform linux/arm64,linux/amd64
+
.PHONY: flyte
flyte: FLYTECONSOLE_VERSION := latest
-flyte:
+flyte: create_builder
$(foreach arch,amd64 arm64,$(call FLYTE_BINARY_BUILD,$(arch)))
-.PHONY: manifests
-manifests:
- mkdir -p manifests
+.PHONY: dep_update
+dep_update:
helm dependency update ../../charts/flyteagent
helm dependency update ../../charts/flyte-binary
helm dependency update ../../charts/flyte-sandbox
+
+.PHONY: manifests
+manifests: dep_update
+ mkdir -p manifests
kustomize build \
--enable-helm \
--load-restrictor=LoadRestrictionsNone \
@@ -35,12 +47,7 @@ manifests:
kustomize/complete-agent > manifests/complete-agent.yaml
.PHONY: build
-build: flyte manifests
- [ -n "$(shell docker buildx ls | awk '/^flyte-sandbox / {print $$1}')" ] || \
- docker buildx create --name flyte-sandbox \
- --driver docker-container --driver-opt image=moby/buildkit:master \
- --buildkitd-flags '--allow-insecure-entitlement security.insecure' \
- --platform linux/arm64,linux/amd64
+build: flyte dep_update manifests
docker buildx build --builder flyte-sandbox --allow security.insecure --load \
--tag flyte-sandbox:latest .
diff --git a/docker/sandbox-bundled/README.md b/docker/sandbox-bundled/README.md
deleted file mode 100644
index 17ca62b002..0000000000
--- a/docker/sandbox-bundled/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Flyte Deployment Sandbox
-
-First make images
-```
-ytong@Yees-MBP:~/go/src/github.com/flyteorg/flyte/docker/sandbox-ultra [flyte-sandbox] (cicd-sandbox-lite) $ make images
-```
-
-then build the k3s image.
-```
-ytong@Yees-MBP:~/go/src/github.com/flyteorg/flyte/docker/sandbox-ultra [] (cicd-sandbox-lite) $ docker buildx build --file images/dockerfiles/k3s/Dockerfile --platform linux/arm64,linux/amd64 --push --tag ghcr.io/flyteorg/flyte-sandbox-lite:ultra7 .
-```
diff --git a/docker/sandbox-bundled/images/manifest.txt b/docker/sandbox-bundled/images/manifest.txt
index 04fb34627c..df712fa6a0 100644
--- a/docker/sandbox-bundled/images/manifest.txt
+++ b/docker/sandbox-bundled/images/manifest.txt
@@ -1,4 +1,4 @@
-docker.io/bitnami/bitnami-shell:sandbox=bitnami/bitnami-shell:11-debian-11-r76
+docker.io/bitnami/os-shell:sandbox=bitnami/os-shell:11-debian-11
docker.io/bitnami/minio:sandbox=bitnami/minio:2023.1.25-debian-11-r0
docker.io/bitnami/postgresql:sandbox=bitnami/postgresql:15.1.0-debian-11-r20
docker.io/envoyproxy/envoy:sandbox=envoyproxy/envoy:v1.23-latest
diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml
index 6d58d58baa..3d40c5a8f8 100644
--- a/docker/sandbox-bundled/manifests/complete-agent.yaml
+++ b/docker/sandbox-bundled/manifests/complete-agent.yaml
@@ -35,7 +35,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
secrets:
@@ -468,7 +468,7 @@ data:
stackdriver-enabled: false
k8s:
co-pilot:
- image: "cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0"
k8s-array:
logs:
config:
@@ -772,7 +772,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy-config
namespace: flyte
@@ -816,7 +816,7 @@ type: Opaque
---
apiVersion: v1
data:
- haSharedSecret: UlU2UFB4NWU5UUlYMzdKQw==
+ haSharedSecret: QWVsREJpZnlIR2N1UXJSMg==
proxyPassword: ""
proxyUsername: ""
kind: Secret
@@ -853,7 +853,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
type: Opaque
@@ -867,7 +867,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
type: Opaque
@@ -1006,7 +1006,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
spec:
@@ -1032,7 +1032,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
spec:
@@ -1057,7 +1057,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: flyte-sandbox-postgresql-hl
namespace: flyte
@@ -1081,7 +1081,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy
namespace: flyte
@@ -1149,7 +1149,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-db-storage
namespace: flyte
@@ -1169,7 +1169,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-minio-storage
namespace: flyte
@@ -1189,7 +1189,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-db-storage
namespace: flyte
@@ -1209,7 +1209,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-minio-storage
namespace: flyte
@@ -1246,7 +1246,7 @@ spec:
metadata:
annotations:
checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035
- checksum/configuration: 47b5c4d48a5fe7f26a8d33a6a9bb6065ca6cf2b28cd4ffddc657787d4036b55c
+ checksum/configuration: 9ab632fe7ac69bcf63d6965a44986a05e23798beda4a3175d1601e61057a9832
checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914
labels:
app.kubernetes.io/component: flyte-binary
@@ -1339,7 +1339,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-buildkit
namespace: flyte
@@ -1412,7 +1412,7 @@ spec:
metadata:
annotations:
checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81
- checksum/secret: 39afeefa0c48157ae5713ba9fb66d2e99f59f977fb14aeacd406c9d83fe2b6d5
+ checksum/secret: 6eadd3a29b61a78cf3a7712f3370a10fc0ec1a61c40753a48c7fa8bea69a6ec6
labels:
app: docker-registry
release: flyte-sandbox
@@ -1549,7 +1549,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
spec:
@@ -1562,12 +1562,12 @@ spec:
template:
metadata:
annotations:
- checksum/credentials-secret: c199ac45f9d95d97966921c814d6c8b38cbf7416458e19cbe6d001a04c264448
+ checksum/credentials-secret: ecce809e3af19025d134846a9a81e163dd41df7e26abf2c6657895d9d13607a9
labels:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
spec:
affinity:
nodeAffinity: null
@@ -1653,7 +1653,7 @@ spec:
- -ec
- |
chown -R 1001:1001 /data
- image: docker.io/bitnami/bitnami-shell:sandbox
+ image: docker.io/bitnami/os-shell:sandbox
imagePullPolicy: Never
name: volume-permissions
resources:
@@ -1679,7 +1679,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy
namespace: flyte
@@ -1755,12 +1755,17 @@ spec:
value: minio
- name: FLYTE_AWS_SECRET_ACCESS_KEY
value: miniostorage
- image: ghcr.io/flyteorg/flyteagent:1.10.3
+ image: ghcr.io/flyteorg/flyteagent:1.11.0
imagePullPolicy: IfNotPresent
name: flyteagent
ports:
- containerPort: 8000
name: agent-grpc
+ readinessProbe:
+ grpc:
+ port: 8000
+ initialDelaySeconds: 1
+ periodSeconds: 3
resources:
limits:
cpu: 500m
@@ -1790,7 +1795,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
spec:
@@ -1803,13 +1808,12 @@ spec:
serviceName: flyte-sandbox-postgresql-hl
template:
metadata:
- annotations: null
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
spec:
affinity:
@@ -1893,7 +1897,15 @@ spec:
cpu: 250m
memory: 256Mi
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsGroup: 0
+ runAsNonRoot: true
runAsUser: 1001
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/postgresql
name: data
@@ -1909,14 +1921,18 @@ spec:
chmod 700 /bitnami/postgresql/data
find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \
xargs -r chown -R 1001:1001
- image: docker.io/bitnami/bitnami-shell:sandbox
+ image: docker.io/bitnami/os-shell:sandbox
imagePullPolicy: Never
name: init-chmod-data
resources:
limits: {}
requests: {}
securityContext:
+ runAsGroup: 0
+ runAsNonRoot: false
runAsUser: 0
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/postgresql
name: data
diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml
index cb300b8267..69739d52d7 100644
--- a/docker/sandbox-bundled/manifests/complete.yaml
+++ b/docker/sandbox-bundled/manifests/complete.yaml
@@ -35,7 +35,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
secrets:
@@ -457,7 +457,7 @@ data:
stackdriver-enabled: false
k8s:
co-pilot:
- image: "cr.flyte.org/flyteorg/flytecopilot:v1.10.7-b4"
+ image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0"
k8s-array:
logs:
config:
@@ -752,7 +752,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy-config
namespace: flyte
@@ -796,7 +796,7 @@ type: Opaque
---
apiVersion: v1
data:
- haSharedSecret: YUZuVzcwNzBEZ1NQeldERA==
+ haSharedSecret: NmtkWjAwUWhadWlzb0xNcA==
proxyPassword: ""
proxyUsername: ""
kind: Secret
@@ -833,7 +833,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
type: Opaque
@@ -847,7 +847,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
type: Opaque
@@ -977,7 +977,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
spec:
@@ -1003,7 +1003,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
spec:
@@ -1028,7 +1028,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: flyte-sandbox-postgresql-hl
namespace: flyte
@@ -1052,7 +1052,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy
namespace: flyte
@@ -1097,7 +1097,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-db-storage
namespace: flyte
@@ -1117,7 +1117,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-minio-storage
namespace: flyte
@@ -1137,7 +1137,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-db-storage
namespace: flyte
@@ -1157,7 +1157,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-minio-storage
namespace: flyte
@@ -1194,7 +1194,7 @@ spec:
metadata:
annotations:
checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035
- checksum/configuration: a67c0186a92e807ac104de4fe9ee168cb3c14cb173b55a6606a12357c240a9cd
+ checksum/configuration: 11cd65708fd872839c6e561e84c30e045567486f06757f4549c69cc22aea5697
checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914
labels:
app.kubernetes.io/component: flyte-binary
@@ -1287,7 +1287,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-buildkit
namespace: flyte
@@ -1360,7 +1360,7 @@ spec:
metadata:
annotations:
checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81
- checksum/secret: e0744f578198b80af80004856744b2677195e1689f2a7652823af6235d0c9b50
+ checksum/secret: 98727a2bd78c4e88ef413663ebff406f78c8fdbda001f7ba7b6b784934cd4d4a
labels:
app: docker-registry
release: flyte-sandbox
@@ -1497,7 +1497,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
spec:
@@ -1510,12 +1510,12 @@ spec:
template:
metadata:
annotations:
- checksum/credentials-secret: c199ac45f9d95d97966921c814d6c8b38cbf7416458e19cbe6d001a04c264448
+ checksum/credentials-secret: ecce809e3af19025d134846a9a81e163dd41df7e26abf2c6657895d9d13607a9
labels:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
spec:
affinity:
nodeAffinity: null
@@ -1601,7 +1601,7 @@ spec:
- -ec
- |
chown -R 1001:1001 /data
- image: docker.io/bitnami/bitnami-shell:sandbox
+ image: docker.io/bitnami/os-shell:sandbox
imagePullPolicy: Never
name: volume-permissions
resources:
@@ -1627,7 +1627,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy
namespace: flyte
@@ -1675,7 +1675,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
spec:
@@ -1688,13 +1688,12 @@ spec:
serviceName: flyte-sandbox-postgresql-hl
template:
metadata:
- annotations: null
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
spec:
affinity:
@@ -1778,7 +1777,15 @@ spec:
cpu: 250m
memory: 256Mi
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsGroup: 0
+ runAsNonRoot: true
runAsUser: 1001
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/postgresql
name: data
@@ -1794,14 +1801,18 @@ spec:
chmod 700 /bitnami/postgresql/data
find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \
xargs -r chown -R 1001:1001
- image: docker.io/bitnami/bitnami-shell:sandbox
+ image: docker.io/bitnami/os-shell:sandbox
imagePullPolicy: Never
name: init-chmod-data
resources:
limits: {}
requests: {}
securityContext:
+ runAsGroup: 0
+ runAsNonRoot: false
runAsUser: 0
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/postgresql
name: data
diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml
index b6c00596e8..fd77ad44e0 100644
--- a/docker/sandbox-bundled/manifests/dev.yaml
+++ b/docker/sandbox-bundled/manifests/dev.yaml
@@ -23,7 +23,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
secrets:
@@ -479,7 +479,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy-config
namespace: flyte
@@ -499,7 +499,7 @@ metadata:
---
apiVersion: v1
data:
- haSharedSecret: UElGc1FhSFdTRmthd0RUZA==
+ haSharedSecret: WG01UkdoN2dNTzBMRjJDVA==
proxyPassword: ""
proxyUsername: ""
kind: Secret
@@ -536,7 +536,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
type: Opaque
@@ -550,7 +550,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
type: Opaque
@@ -588,7 +588,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-local
namespace: flyte
@@ -659,7 +659,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-local
namespace: flyte
@@ -683,7 +683,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
spec:
@@ -709,7 +709,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
spec:
@@ -734,7 +734,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: flyte-sandbox-postgresql-hl
namespace: flyte
@@ -758,7 +758,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy
namespace: flyte
@@ -781,7 +781,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-db-storage
namespace: flyte
@@ -801,7 +801,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-minio-storage
namespace: flyte
@@ -821,7 +821,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-db-storage
namespace: flyte
@@ -841,7 +841,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-minio-storage
namespace: flyte
@@ -861,7 +861,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-buildkit
namespace: flyte
@@ -934,7 +934,7 @@ spec:
metadata:
annotations:
checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81
- checksum/secret: 94dc4b66bf04d07ba0681a8e426c8cae2b070d584ca21a85f227ee00d969a852
+ checksum/secret: 5400c48803b4ae9d08115e0f52f00245498c0b06d11d318a36590b01f91e2753
labels:
app: docker-registry
release: flyte-sandbox
@@ -1071,7 +1071,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
name: flyte-sandbox-minio
namespace: flyte
spec:
@@ -1084,12 +1084,12 @@ spec:
template:
metadata:
annotations:
- checksum/credentials-secret: c199ac45f9d95d97966921c814d6c8b38cbf7416458e19cbe6d001a04c264448
+ checksum/credentials-secret: ecce809e3af19025d134846a9a81e163dd41df7e26abf2c6657895d9d13607a9
labels:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: minio
- helm.sh/chart: minio-12.1.1
+ helm.sh/chart: minio-12.6.7
spec:
affinity:
nodeAffinity: null
@@ -1175,7 +1175,7 @@ spec:
- -ec
- |
chown -R 1001:1001 /data
- image: docker.io/bitnami/bitnami-shell:sandbox
+ image: docker.io/bitnami/os-shell:sandbox
imagePullPolicy: Never
name: volume-permissions
resources:
@@ -1201,7 +1201,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: flyte-sandbox
- app.kubernetes.io/version: 1.16.0
+ app.kubernetes.io/version: 1.16.1
helm.sh/chart: flyte-sandbox-0.1.0
name: flyte-sandbox-proxy
namespace: flyte
@@ -1249,7 +1249,7 @@ metadata:
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
namespace: flyte
spec:
@@ -1262,13 +1262,12 @@ spec:
serviceName: flyte-sandbox-postgresql-hl
template:
metadata:
- annotations: null
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: flyte-sandbox
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: postgresql
- helm.sh/chart: postgresql-12.1.9
+ helm.sh/chart: postgresql-12.8.1
name: flyte-sandbox-postgresql
spec:
affinity:
@@ -1352,7 +1351,15 @@ spec:
cpu: 250m
memory: 256Mi
securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsGroup: 0
+ runAsNonRoot: true
runAsUser: 1001
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/postgresql
name: data
@@ -1368,14 +1375,18 @@ spec:
chmod 700 /bitnami/postgresql/data
find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \
xargs -r chown -R 1001:1001
- image: docker.io/bitnami/bitnami-shell:sandbox
+ image: docker.io/bitnami/os-shell:sandbox
imagePullPolicy: Never
name: init-chmod-data
resources:
limits: {}
requests: {}
securityContext:
+ runAsGroup: 0
+ runAsNonRoot: false
runAsUser: 0
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/postgresql
name: data
diff --git a/docker/sandbox-lite/flyte-entrypoint-dind.sh b/docker/sandbox-lite/flyte-entrypoint-dind.sh
deleted file mode 100755
index 0585624970..0000000000
--- a/docker/sandbox-lite/flyte-entrypoint-dind.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/sh
-
-set -euo pipefail
-
-# Apply cgroup v2 hack
-cgroup-v2-hack.sh
-
-trap 'pkill -P $$' EXIT
-FLYTE_TIMEOUT=${FLYTE_TIMEOUT:-600}
-
-monitor() {
- while : ; do
- for pid in $@ ; do
- kill -0 $pid &> /dev/null || exit 1
- done
-
- sleep 1
- done
-}
-
-# Start docker daemon
-echo "Starting Docker daemon..."
-file="/var/run/docker.pid"
-if [ -f "$file" ] ; then
- rm "$file"
-fi
-dockerd &> /var/log/dockerd.log &
-DOCKERD_PID=$!
-timeout "$FLYTE_TIMEOUT" sh -c "until docker info &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for dockerd to start"; exit 1 )
-echo "Done."
-
-# Start k3s
-echo "Starting k3s cluster..."
-KUBERNETES_API_PORT=${KUBERNETES_API_PORT:-6443}
-k3s server --docker --no-deploy=traefik --no-deploy=servicelb --no-deploy=local-storage --no-deploy=metrics-server --https-listen-port=${KUBERNETES_API_PORT} &> /var/log/k3s.log &
-K3S_PID=$!
-timeout "$FLYTE_TIMEOUT" sh -c "until k3s kubectl get node $HOSTNAME &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the Kubernetes cluster to start"; exit 1 )
-k3s kubectl wait node $HOSTNAME --for condition=Ready --timeout ${FLYTE_TIMEOUT}s &> /dev/null || ( echo >&2 "Timed out while waiting for the Kubernetes cluster to be ready"; exit 1 )
-echo "Done."
-
-# Deploy flyte
-echo "Deploying Flyte..."
-charts="/flyteorg/share/flyte-deps"
-version=""
-
-if [[ $FLYTE_TEST = "release" ]]
-then
- helm repo add flyteorg https://flyteorg.github.io/flyte
- helm fetch flyteorg/flyte-deps --version=$FLYTE_VERSION
- 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 $charts --kubeconfig /etc/rancher/k3s/k3s.yaml --install --wait
-
-timeout "$FLYTE_TIMEOUT" sh -c "until k3s kubectl get namespace flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the Flyte namespace to be created"; exit 1 )
-timeout "$FLYTE_TIMEOUT" sh -c "until k3s kubectl rollout status deployment minio -n flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the minio rollout to be created"; exit 1 )
-timeout "$FLYTE_TIMEOUT" sh -c "until k3s kubectl rollout status deployment postgres -n flyte &> /dev/null; do sleep 1; done" || ( echo >&2 "Timed out while waiting for the postgres rollout to be created"; exit 1 )
-
-k3s kubectl wait --for=condition=available deployment/minio deployment/postgres -n flyte --timeout=5m || ( echo >&2 "Timed out while waiting for the Flyte deployment to start"; exit 1 )
-# Create directory to store certificate
-mkdir -p /tmp/k8s-webhook-server/serving-certs
-
-# With flytectl sandbox --source flag, we mount the root volume to user source dir that will create helm & k8s cache specific directory.
-# In Linux, These file belongs to root user that is different then current user
-# In this case during fast serialization, Pyflyte will through error because of permission denied
-rm -rf /root/.cache /root/.kube /root/.config
-
-if [[ $FLYTE_DEV = "True" ]]
-then
- # Namespaces must be manually created since cluster resource manager is disabled by default
- k3s kubectl create ns flytesnacks-development
- # Monitor running processes. Exit when the first process exits.
- monitor ${DOCKERD_PID} ${K3S_PID}
-else
- flyte start --config /flyteorg/share/flyte.yaml &
- FLYTE_PID=$!
- # Monitor running processes. Exit when the first process exits.
- monitor ${DOCKERD_PID} ${K3S_PID} ${FLYTE_PID}
-fi
diff --git a/docker/sandbox-lite/templates/namespace.yaml b/docker/sandbox-lite/templates/namespace.yaml
deleted file mode 100644
index 90b53893ac..0000000000
--- a/docker/sandbox-lite/templates/namespace.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
- name: {{ namespace }}
-spec:
- finalizers:
- - kubernetes
\ No newline at end of file
diff --git a/docker/sandbox-lite/templates/project_resource_quota.yaml b/docker/sandbox-lite/templates/project_resource_quota.yaml
deleted file mode 100644
index 12e7711503..0000000000
--- a/docker/sandbox-lite/templates/project_resource_quota.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-apiVersion: v1
-kind: ResourceQuota
-metadata:
- name: project-quota
- namespace: {{ namespace }}
-spec:
- hard:
- limits.cpu: {{ projectQuotaCpu }}
- limits.memory: {{ projectQuotaMemory }}
\ No newline at end of file
diff --git a/docs/_ext/import_projects.py b/docs/_ext/import_projects.py
index 1e32aa0d8c..da551ae374 100644
--- a/docs/_ext/import_projects.py
+++ b/docs/_ext/import_projects.py
@@ -84,10 +84,11 @@ def parse(self):
def update_sys_path_for_flytekit(import_project_config: ImportProjectsConfig):
# create flytekit/_version.py file manually
- with open(f"{import_project_config.flytekit_api_dir}/flytekit/_version.py", "w") as f:
+ with open(
+ f"{import_project_config.flytekit_api_dir}/flytekit/_version.py", "w"
+ ) as f:
f.write(f'__version__ = "dev"')
-
# add flytekit to python path
flytekit_dir = os.path.abspath(import_project_config.flytekit_api_dir)
flytekit_src_dir = os.path.abspath(os.path.join(flytekit_dir, "flytekit"))
@@ -151,7 +152,7 @@ def import_projects(app: Sphinx, config: Config):
if repo:
tags = sorted(
[t for t in repo.tags if re.match(VERSION_PATTERN, t.name)],
- key=lambda t: t.commit.committed_datetime
+ key=lambda t: t.commit.committed_datetime,
)
if not tags or import_projects_config.dev_build:
# If dev_build is specified or the tags don't exist just use the
@@ -187,7 +188,9 @@ def import_projects(app: Sphinx, config: Config):
update_sys_path_for_flytekit(import_projects_config)
# add functions to clean up source and docstring refs
- for i, (patt, repl) in enumerate(import_projects_config.source_regex_mapping.items()):
+ for i, (patt, repl) in enumerate(
+ import_projects_config.source_regex_mapping.items()
+ ):
app.connect(
"source-read",
partial(replace_refs_in_files, patt, repl),
@@ -200,7 +203,9 @@ def import_projects(app: Sphinx, config: Config):
)
-def replace_refs_in_files(patt: str, repl: str, app: Sphinx, docname: str, source: List[str]):
+def replace_refs_in_files(
+ patt: str, repl: str, app: Sphinx, docname: str, source: List[str]
+):
text = source[0]
if re.search(patt, text):
@@ -211,7 +216,14 @@ def replace_refs_in_files(patt: str, repl: str, app: Sphinx, docname: str, sourc
def replace_refs_in_docstrings(
- patt: str, repl: str, app: Sphinx, what: str, name: str, obj: str, options: dict, lines: List[str],
+ patt: str,
+ repl: str,
+ app: Sphinx,
+ what: str,
+ name: str,
+ obj: str,
+ options: dict,
+ lines: List[str],
):
replace = {}
for i, text in enumerate(lines):
diff --git a/docs/community/contribute.rst b/docs/community/contribute.rst
index d131334957..bb10031a9d 100644
--- a/docs/community/contribute.rst
+++ b/docs/community/contribute.rst
@@ -18,19 +18,19 @@ TL;DR: Find the repo-specific contribution guidelines in the `Component Referenc
An issue tagged with `good first issue `__ is the best place to start for first-time contributors.
-**Appetizer for every repo: Fork and clone the concerned repository. Create a new branch on your fork and make the required changes. Create a pull request once your work is ready for review.**
+**Appetizer for every repo: Fork and clone the concerned repository. Create a new branch on your fork and make the required changes. Create a pull request once your work is ready for review.**
.. note::
- To open a pull request, refer to `GitHub's guide `__ for detailed instructions.
+ To open a pull request, refer to `GitHub's guide `__ for detailed instructions.
-Example PR for your reference: `GitHub PR `__.
-A couple of checks are introduced to help maintain the robustness of the project.
+Example PR for your reference: `GitHub PR `__.
+A couple of checks are introduced to help maintain the robustness of the project.
-#. To get through DCO, sign off on every commit (`Reference `__)
+#. To get through DCO, sign off on every commit (`Reference `__)
#. To improve code coverage, write unit tests to test your code
#. Make sure all the tests pass. If you face any issues, please let us know
-On a side note, format your Go code with ``golangci-lint`` followed by ``goimports`` (use ``make lint`` and ``make goimports``), and Python code with ``black`` and ``isort`` (use ``make fmt``).
+On a side note, format your Go code with ``golangci-lint`` followed by ``goimports`` (use ``make lint`` and ``make goimports``), and Python code with ``black`` and ``isort`` (use ``make fmt``).
If make targets are not available, you can manually format the code.
Refer to `Effective Go `__, `Black `__, and `Isort `__ for full coding standards.
@@ -42,10 +42,10 @@ but there is a medium term effort to move all development to forks.
Flyte uses Sphinx for documentation. ``protoc-gen-doc`` is used to generate the documentation from ``.proto`` files.
-Sphinx spans multiple repositories under `flyteorg `__. It uses reStructured Text (rst) files to store the documentation content.
-For API- and code-related content, it extracts docstrings from the code files.
+Sphinx spans multiple repositories under `flyteorg `__. It uses reStructured Text (rst) files to store the documentation content.
+For API- and code-related content, it extracts docstrings from the code files.
-To get started, refer to the `reStructuredText reference `__.
+To get started, refer to the `reStructuredText reference `__.
For minor edits that don't require a local setup, you can edit the GitHub page in the documentation to propose improvements.
@@ -54,9 +54,9 @@ Intersphinx
`Intersphinx `__ can generate automatic links to the documentation of objects in other projects.
-To establish a reference to any other documentation from Flyte or within it, use Intersphinx.
+To establish a reference to any other documentation from Flyte or within it, use Intersphinx.
-To do so, create an ``intersphinx_mapping`` in the ``conf.py`` file which should be present in the respective ``docs`` repository.
+To do so, create an ``intersphinx_mapping`` in the ``conf.py`` file which should be present in the respective ``docs`` repository.
For example, ``rsts`` is the docs repository for the ``flyte`` repo.
For example:
@@ -68,10 +68,10 @@ For example:
"flytekit": ("https://flyte.readthedocs.io/projects/flytekit/en/master/", None),
}
-The key refers to the name used to refer to the file (while referencing the documentation), and the URL denotes the precise location.
+The key refers to the name used to refer to the file (while referencing the documentation), and the URL denotes the precise location.
Here is an example using ``:std:doc``:
-
+
* Direct reference
.. code-block:: text
@@ -94,7 +94,7 @@ Here is an example using ``:std:doc``:
|
-You can cross-reference multiple Python objects. Check out this `section `__ to learn more.
+You can cross-reference multiple Python objects. Check out this `section `__ to learn more.
|
@@ -150,15 +150,25 @@ To understand how the below components interact with each other, refer to :ref:`
.. list-table::
* - `Repo `__
- * - **Purpose**: Deployment, Documentation, and Issues
- * - **Languages**: Kustomize & RST
-
-.. note::
- For the ``flyte`` repo, run the following command in the repo's root to generate documentation locally.
+ * - **Purpose**: Deployment, Documentation, and Issues
+ * - **Languages**: RST
+
+To build the Flyte docs locally you will need the following prerequisites:
+
+* Install ``conda``.
+ * We recommend Miniconda installed with an `official installer `__.
+* Install `conda-lock `__.
+* In the ``flyteorg/flyte`` root directory run:
+ * ``conda-lock install --name monodocs-env monodocs-environment.lock.yaml``
+ * ``conda activate monodocs-env``
+ * ``pip install ./flyteidl``
+
+This will set up the Python virtual environment for building the docs. Here we called it ``monodocs-env``.
- .. code-block:: console
+To actually build the docs, activate ``monodocs-env`` and (in the ``flyteorg/flyte`` root directory) run:
+ * ``make docs``
- make -C rsts html
+The resulting ``html`` files will be in ``docs/_build/html``. You can view them by running `open docs/_build/html/index.html`
``flyteidl``
************
@@ -169,7 +179,7 @@ To understand how the below components interact with each other, refer to :ref:`
* - **Purpose**: Flyte workflow specification is in `protocol buffers `__ which forms the core of Flyte
* - **Language**: Protobuf
* - **Guidelines**: Refer to the `README `__
-
+
``flytepropeller``
******************
@@ -217,7 +227,7 @@ To understand how the below components interact with each other, refer to :ref:`
* - `Repo `__
* - **Purpose**: Python SDK & Tools
* - **Language**: Python
- * - **Guidelines**: Refer to the `Flytekit Contribution Guide `__
+ * - **Guidelines**: Refer to the `Flytekit Contribution Guide `__
``flyteconsole``
****************
@@ -271,7 +281,7 @@ To understand how the below components interact with each other, refer to :ref:`
* - `Repo `__
* - **Purpose**: Examples, Tips, and Tricks to use Flytekit SDKs
* - **Language**: Python (In the future, Java examples will be added)
- * - **Guidelines**: Refer to the `Flytesnacks Contribution Guide `__
+ * - **Guidelines**: Refer to the `Flytesnacks Contribution Guide `__
``flytectl``
************
@@ -281,21 +291,21 @@ To understand how the below components interact with each other, refer to :ref:`
* - `Repo `__
* - **Purpose**: A standalone Flyte CLI
* - **Language**: Go
- * - **Guidelines**: Refer to the `FlyteCTL Contribution Guide `__
+ * - **Guidelines**: Refer to the `FlyteCTL Contribution Guide `__
🔮 Development Environment Setup Guide
======================================
-This guide provides a step-by-step approach to setting up a local development environment for
-`flyteidl `_, `flyteadmin `_,
-`flyteplugins `_, `flytepropeller `_,
+This guide provides a step-by-step approach to setting up a local development environment for
+`flyteidl `_, `flyteadmin `_,
+`flyteplugins `_, `flytepropeller `_,
`flytekit `_ , `flyteconsole `_,
`datacatalog `_, and `flytestdlib `_.
The video below is a tutorial on how to set up a local development environment for Flyte.
-.. youtube:: V-KlVQmQAjE
+.. youtube:: V-KlVQmQAjE
Requirements
************
@@ -332,13 +342,13 @@ How to setup dev environment for flyteidl, flyteadmin, flyteplugins, flytepropel
.. code:: shell
- # Step1: Install the latest version of flytectl
+ # Step 1: Install the latest version of flytectl
curl -sL https://ctl.flyte.org/install | bash
# flyteorg/flytectl info checking GitHub for latest tag
# flyteorg/flytectl info found version: 0.6.39 for v0.6.39/Linux/x86_64
# flyteorg/flytectl info installed ./bin/flytectl
- # Step2: Export flytectl path based on the previous log "flyteorg/flytectl info installed ./bin/flytectl"
+ # Step 2: Export flytectl path based on the previous log "flyteorg/flytectl info installed ./bin/flytectl"
export PATH=$PATH:/home/ubuntu/bin # replace with your path
**2. Build a k3s cluster that runs minio and postgres Pods.**
@@ -350,18 +360,18 @@ How to setup dev environment for flyteidl, flyteadmin, flyteplugins, flytepropel
.. code:: shell
- # Step1: Start k3s cluster, create Pods for postgres and minio. Note: We cannot access Flyte UI yet! but we can access the minio console now.
+ # Step 1: Start k3s cluster, create Pods for postgres and minio. Note: We cannot access Flyte UI yet! but we can access the minio console now.
flytectl demo start --dev
- # 👨💻 Flyte is ready! Flyte UI is available at http://localhost:30080/console 🚀 🚀 🎉
+ # 👨💻 Flyte is ready! Flyte UI is available at http://localhost:30080/console 🚀 🚀 🎉
# ❇️ Run the following command to export demo environment variables for accessing flytectl
- # export FLYTECTL_CONFIG=/home/ubuntu/.flyte/config-sandbox.yaml
+ # export FLYTECTL_CONFIG=/home/ubuntu/.flyte/config-sandbox.yaml
# 🐋 Flyte sandbox ships with a Docker registry. Tag and push custom workflow images to localhost:30000
# 📂 The Minio API is hosted on localhost:30002. Use http://localhost:30080/minio/login for Minio console
- # Step2: Export FLYTECTL_CONFIG as the previous log indicated.
+ # Step 2: Export FLYTECTL_CONFIG as the previous log indicated.
FLYTECTL_CONFIG=/home/ubuntu/.flyte/config-sandbox.yaml
- # Step3: The kubeconfig will be automatically copied to the user's main kubeconfig (default is `/.kube/config`) with "flyte-sandbox" as the context name.
+ # Step 3: The kubeconfig will be automatically copied to the user's main kubeconfig (default is `/.kube/config`) with "flyte-sandbox" as the context name.
# Check that we can access the K3s cluster. Verify that postgres and minio are running.
kubectl get pod -n flyte
# NAME READY STATUS RESTARTS AGE
@@ -379,25 +389,18 @@ that integrates all Flyte components into a single binary.
.. code:: shell
- # Step1: Clone flyte repo
+ # Step 1: Clone flyte repo
git clone https://github.com/flyteorg/flyte.git
cd flyte
- # Step2: Build a single binary that bundles all the Flyte components.
+ # Step 2: Build a single binary that bundles all the Flyte components.
# The version of each component/library used to build the single binary are defined in `go.mod`.
sudo apt-get -y install jq # You may need to install jq
+ make clean # (Optional) Run this only if you want to run the newest version of flyteconsole
go mod tidy
make compile
- # Step3: Edit the config file: ./flyte-single-binary-local.yaml.
- # Replace occurrences of $HOME with the actual path of your home directory.
- sedi=(-i)
- case "$(uname)" in
- Darwin*) sedi=(-i "")
- esac
- sed "${sedi[@]}" -e "s|\$HOME|${HOME}|g" flyte-single-binary-local.yaml
-
- # Step 4: Prepare a namespace template for the cluster resource controller.
+ # Step 3: Prepare a namespace template for the cluster resource controller.
# The configuration file "flyte-single-binary-local.yaml" has an entry named cluster_resources.templatePath.
# This entry needs to direct to a directory containing the templates for the cluster resource controller to use.
# We will now create a simple template that allows the automatic creation of required namespaces for projects.
@@ -409,8 +412,8 @@ that integrates all Flyte components into a single binary.
metadata:
name: '{{ namespace }}'" > $HOME/.flyte/sandbox/cluster-resource-templates/namespace.yaml
- # Step5: Running the single binary.
- # The POD_NAMESPACE environment variable is necessary for the webhook to function correctly.
+ # Step 4: Running the single binary.
+ # The POD_NAMESPACE environment variable is necessary for the webhook to function correctly.
# You may encounter an error due to `ERROR: duplicate key value violates unique constraint`. Running the command again will solve the problem.
POD_NAMESPACE=flyte ./flyte start --config flyte-single-binary-local.yaml
# All logs from flyteadmin, flyteplugins, flytepropeller, etc. will appear in the terminal.
@@ -428,7 +431,7 @@ The following instructions provide guidance on how to build single binary with y
.. code:: shell
- # Step1: Install Go. Flyte uses Go 1.19, so make sure to switch to Go 1.19.
+ # Step 1: Install Go. Flyte uses Go 1.19, so make sure to switch to Go 1.19.
export PATH=$PATH:$(go env GOPATH)/bin
go install golang.org/dl/go1.19@latest
go1.19 download
@@ -440,10 +443,10 @@ The following instructions provide guidance on how to build single binary with y
go install golang.org/x/tools/cmd/goimports@latest
export PATH=$(go env GOPATH)/bin:$PATH
- # Step2: Go to the {flyteadmin} repository, modify the source code accordingly.
+ # Step 2: Go to the {flyteadmin} repository, modify the source code accordingly.
cd flyte/flyteadmin
- # Step3: Now, you can build the single binary. Go back to Flyte directory.
+ # Step 3: Now, you can build the single binary. Go back to Flyte directory.
go mod tidy
make compile
POD_NAMESPACE=flyte ./flyte start --config flyte-single-binary-local.yaml
@@ -453,10 +456,10 @@ The following instructions provide guidance on how to build single binary with y
.. code:: shell
- # Step1: Install flytekit
+ # Step 1: Install flytekit
pip install flytekit && export PATH=$PATH:/home/ubuntu/.local/bin
- # Step2: Run a hello world example
+ # Step 2: Run a hello world example
pyflyte run --remote https://raw.githubusercontent.com/flyteorg/flytesnacks/master/examples/basics/basics/hello_world.py hello_world_wf
# Go to http://localhost:30080/console/projects/flytesnacks/domains/development/executions/fd63f88a55fed4bba846 to see execution in the console.
# You can go to the [flytesnacks repository](https://github.com/flyteorg/flytesnacks) to see more useful examples.
@@ -470,7 +473,7 @@ The following instructions provide guidance on how to build single binary with y
# context removed for "flyte-sandbox".
# 🧹 🧹 Sandbox cluster is removed successfully.
# ❇️ Run the following command to unset sandbox environment variables for accessing flytectl
- # unset FLYTECTL_CONFIG
+ # unset FLYTECTL_CONFIG
How to setup dev environment for flytekit?
*******************************************
@@ -478,28 +481,28 @@ How to setup dev environment for flytekit?
**1. Set up local Flyte Cluster.**
-If you are also modifying the code for flyteidl, flyteadmin, flyteplugins, flytepropeller datacatalog, or flytestdlib,
+If you are also modifying the code for flyteidl, flyteadmin, flyteplugins, flytepropeller datacatalog, or flytestdlib,
refer to the instructions in the `previous section <#how-to-setup-dev-environment-for-flyteidl-flyteadmin-flyteplugins-flytepropeller-datacatalog-and-flytestdlib>`__ to set up a local Flyte cluster.
If not, we can start backends with a single command.
.. code:: shell
- # Step1: Install the latest version of flytectl, a portable and lightweight command-line interface to work with Flyte.
+ # Step 1: Install the latest version of flytectl, a portable and lightweight command-line interface to work with Flyte.
curl -sL https://ctl.flyte.org/install | bash
# flyteorg/flytectl info checking GitHub for latest tag
# flyteorg/flytectl info found version: 0.6.39 for v0.6.39/Linux/x86_64
# flyteorg/flytectl info installed ./bin/flytectl
- # Step2: Export flytectl path based on the previous log "flyteorg/flytectl info installed ./bin/flytectl"
+ # Step 2: Export flytectl path based on the previous log "flyteorg/flytectl info installed ./bin/flytectl"
export PATH=$PATH:/home/ubuntu/bin # replace with your path
- # Step3: Starts the Flyte demo cluster. This will setup a k3s cluster running minio, postgres Pods, and all Flyte components: flyteadmin, flyteplugins, flytepropeller, etc.
- # See https://docs.flyte.org/projects/flytectl/en/latest/gen/flytectl_demo_start.html for more details.
+ # Step 3: Starts the Flyte demo cluster. This will setup a k3s cluster running minio, postgres Pods, and all Flyte components: flyteadmin, flyteplugins, flytepropeller, etc.
+ # See https://docs.flyte.org/en/latest/flytectl/gen/flytectl_demo_start.html for more details.
flytectl demo start
- # 👨💻 Flyte is ready! Flyte UI is available at http://localhost:30080/console 🚀 🚀 🎉
+ # 👨💻 Flyte is ready! Flyte UI is available at http://localhost:30080/console 🚀 🚀 🎉
# ❇️ Run the following command to export demo environment variables for accessing flytectl
- # export FLYTECTL_CONFIG=/home/ubuntu/.flyte/config-sandbox.yaml
+ # export FLYTECTL_CONFIG=/home/ubuntu/.flyte/config-sandbox.yaml
# 🐋 Flyte sandbox ships with a Docker registry. Tag and push custom workflow images to localhost:30000
# 📂 The Minio API is hosted on localhost:30002. Use http://localhost:30080/minio/login for Minio console
@@ -508,14 +511,14 @@ If not, we can start backends with a single command.
.. code:: shell
- # Step1: Build a virtual environment for developing Flytekit. This will allow your local changes to take effect when the same Python interpreter runs `import flytekit`.
+ # Step 1: Build a virtual environment for developing Flytekit. This will allow your local changes to take effect when the same Python interpreter runs `import flytekit`.
git clone https://github.com/flyteorg/flytekit.git # replace with your own repo
cd flytekit
virtualenv ~/.virtualenvs/flytekit
source ~/.virtualenvs/flytekit/bin/activate
make setup
pip install -e .
-
+
# If you are also developing the plugins, consider the following:
# Installing Specific Plugins:
@@ -534,21 +537,21 @@ If not, we can start backends with a single command.
pip install -e .
# Now you can use all plugins, but the performance is slow.
- # Step2: Modify the source code for flytekit, then run unit tests and lint.
+ # Step 2: Modify the source code for flytekit, then run unit tests and lint.
make lint
make test
- # Step3: Run a hello world sample to test locally
+ # Step 3: Run a hello world sample to test locally
pyflyte run https://raw.githubusercontent.com/flyteorg/flytesnacks/master/examples/basics/basics/hello_world.py hello_world_wf
# Running hello_world_wf() hello world
**3. Run workflow in sandbox.**
-Before running your workflow in the sandbox, make sure you're able to successfully run it locally.
-To deploy the workflow in the sandbox, you'll need to build a Flytekit image.
-Create a Dockerfile in your Flytekit directory with the minimum required configuration to run a task, as shown below.
-If your task requires additional components, such as plugins, you may find it useful to refer to the construction of the `officail flitekit image `__
+Before running your workflow in the sandbox, make sure you're able to successfully run it locally.
+To deploy the workflow in the sandbox, you'll need to build a Flytekit image.
+Create a Dockerfile in your Flytekit directory with the minimum required configuration to run a task, as shown below.
+If your task requires additional components, such as plugins, you may find it useful to refer to the construction of the `officail flitekit image `__
.. code:: Dockerfile
@@ -568,19 +571,19 @@ the Flyte cluster, and finally submit the workflow.
.. code:: shell
- # Step1: Ensure you have pushed your changes to the remote repo
+ # Step 1: Ensure you have pushed your changes to the remote repo
# In the flytekit folder
git add . && git commit -s -m "develop" && git push
- # Step2: Build the image
+ # Step 2: Build the image
# In the flytekit folder
export FLYTE_INTERNAL_IMAGE="localhost:30000/flytekit:demo" # replace with your own image name and tag
docker build --no-cache -t "${FLYTE_INTERNAL_IMAGE}" -f ./Dockerfile .
- # Step3: Push the image to the Flyte cluster
+ # Step 3: Push the image to the Flyte cluster
docker push ${FLYTE_INTERNAL_IMAGE}
- # Step4: Submit a hello world workflow to the Flyte cluster
+ # Step 4: Submit a hello world workflow to the Flyte cluster
cd flytesnacks
pyflyte run --image ${FLYTE_INTERNAL_IMAGE} --remote https://raw.githubusercontent.com/flyteorg/flytesnacks/master/examples/basics/basics/hello_world.py hello_world_wf
# Go to http://localhost:30080/console/projects/flytesnacks/domains/development/executions/f5c17e1b5640c4336bf8 to see execution in the console.
@@ -601,35 +604,35 @@ Depending on your needs, refer to one of the following guides to setup up the Fl
.. code:: shell
- # Step1: Clone the repo and navigate to the Flyteconsole folder
+ # Step 1: Clone the repo and navigate to the Flyteconsole folder
git clone https://github.com/flyteorg/flyteconsole.git
cd flyteconsole
- # Step2: Install Node.js 18. Refer to https://github.com/nodesource/distributions/blob/master/README.md#using-ubuntu-2.
+ # Step 2: Install Node.js 18. Refer to https://github.com/nodesource/distributions/blob/master/README.md#using-ubuntu-2.
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs
- # Step3: Install yarn. Refer to https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable.
+ # Step 3: Install yarn. Refer to https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable.
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
- # Step4: Add environment variables
+ # Step 4: Add environment variables
export BASE_URL=/console
export ADMIN_API_URL=http://localhost:30080
export DISABLE_AUTH=1
export ADMIN_API_USE_SSL="http"
- # Step5: Generate SSL certificate
+ # Step 5: Generate SSL certificate
# Note, since we will use HTTP, SSL is not required. However, missing an SSL certificate will cause an error when starting Flyteconsole.
make generate_ssl
- # Step6: Install node packages
+ # Step 6: Install node packages
yarn install
yarn build:types # It is fine if seeing error `Property 'at' does not exist on type 'string[]'`
yarn run build:prod
- # Step7: Start flyteconsole
+ # Step 7: Start flyteconsole
yarn start
**3. Install the Chrome plugin:** `Moesif Origin & CORS Changer `__.
@@ -656,10 +659,10 @@ This section presumes a local Flyte cluster is already setup. If it isn't, refer
- `How to setup dev environment for flyteidl, flyteadmin, flyteplugins, flytepropeller, datacatalog and flytestdlib? <#how-to-setup-dev-environment-for-flyteidl-flyteadmin-flyteplugins-flytepropeller-datacatalog-and-flytestdlib>`__
-**1. Access the Flyte UI.**
+**1. Access the Flyte UI.**
-`Flyte UI `__ is a web-based user interface for Flyte that lets you interact with Flyte objects and build directed acyclic graphs (DAGs) for your workflows.
+`Flyte UI `__ is a web-based user interface for Flyte that lets you interact with Flyte objects and build directed acyclic graphs (DAGs) for your workflows.
You can access it via http://localhost:30080/console.
@@ -667,7 +670,7 @@ You can access it via http://localhost:30080/console.
Core Flyte components, such as admin, propeller, and datacatalog, as well as user runtime containers rely on an object store (in this case, minio) to hold files.
-During development, you might need to examine files such as `input.pb/output.pb `__, or `deck.html `__ stored in minio.
+During development, you might need to examine files such as `input.pb/output.pb `__, or `deck.html `__ stored in minio.
Access the minio console at: http://localhost:30080/minio/login. The default credentials are:
@@ -681,16 +684,16 @@ Access the minio console at: http://localhost:30080/minio/login. The default cre
FlyteAdmin and datacatalog use postgres to store persistent records, and you can interact with postgres on port ``30001``. Here is an example of using `psql` to connect:
.. code:: shell
-
- # Step1: Install the PostgreSQL client.
+
+ # Step 1: Install the PostgreSQL client.
sudo apt-get update
sudo apt-get install postgresql-client
- # Step2: Connect to the PostgreSQL server. The password is "postgres".
+ # Step 2: Connect to the PostgreSQL server. The password is "postgres".
psql -h localhost -p 30001 -U postgres -d flyte
-**4. Access the k3s dashboard.**
+**4. Access the k3s dashboard.**
Access the k3s dashboard at: http://localhost:30080/kubernetes-dashboard.
@@ -734,4 +737,4 @@ We use `GitHub Issues `__ for issue tr
If none of the above fit your requirements, file a `blank `__ issue.
Also, add relevant labels to your issue. For example, if you are filing a Flytekit plugin request, add the ``flytekit`` label.
-For feedback at any point in the contribution process, feel free to reach out to us on `Slack `__.
+For feedback at any point in the contribution process, feel free to reach out to us on `Slack `__.
diff --git a/docs/community/roadmap.rst b/docs/community/roadmap.rst
index 3e6bc3f5ae..72912ddf37 100644
--- a/docs/community/roadmap.rst
+++ b/docs/community/roadmap.rst
@@ -17,7 +17,7 @@ It is extremely important to let the community know about your use cases, so tha
Milestones and Release Processes
================================
-Flyte consists of many components and services. Each service is independently iterated and coordinated by maintaining backwards compatible contracts using Protobuf messages defined in `FlyteIDL `__.
+Flyte consists of many components and services. Each service is independently iterated and coordinated by maintaining backwards compatible contracts using Protobuf messages defined in `FlyteIDL `__.
Release Cadence
---------------
diff --git a/docs/community/troubleshoot.rst b/docs/community/troubleshoot.rst
index b4f6c271d4..41bc6624c3 100644
--- a/docs/community/troubleshoot.rst
+++ b/docs/community/troubleshoot.rst
@@ -14,7 +14,7 @@ Before getting started, collect the following information from the underlying in
.. prompt:: bash $
- $ kubectl describe pod -n
+ kubectl describe pod -n
Where will typically correspond to the node execution string that you can find in the UI.
@@ -23,7 +23,7 @@ Where will typically correspond to the node execution string that you
.. prompt:: bash $
- $ kubectl logs pods -n
+ kubectl logs pods -n
Where will typically correspond to the Flyte -, e.g. flytesnacks-development.
@@ -70,7 +70,7 @@ This issue is more common on MacOS devices. Make sure that your Docker daemon ha
.. prompt:: bash $
- $ flytectl demo start --env HTTP_PROXY=
+ flytectl demo start --env HTTP_PROXY=
- If you're building a custom Docker image, make sure to use a tag other than ``latest``. Otherwise, the Kubernetes default pull policy will be changed from ``IfNotPresent`` to ``Always``, forcing an image pull with every Pod deployment.
@@ -85,14 +85,14 @@ Issues running workloads
.. prompt:: bash $
- $ export FLYTECTL_CONFIG=~/.flyte/config-sandbox.yaml
+ export FLYTECTL_CONFIG=~/.flyte/config-sandbox.yaml
``ModuleNotFoundError``
^^^^^^^^^^^^^^^^^^^^^^^
- If you're using a custom container image and using Docker, make sure your ``Dockerfile`` is located at the same level of the ``flyte`` directory and that there is an empty ``__init__.py`` file in your project's folder :
-.. prompt:: bash $
+.. prompt::
myflyteapp
├── Dockerfile
@@ -111,11 +111,11 @@ Issues running workloads
.. prompt:: bash $
- $ kubectl describe sa -n
+ kubectl describe sa -n
Example output:
-.. prompt:: bash $
+.. prompt::
Name:
Namespace: flyte
@@ -130,6 +130,24 @@ Example output:
.. prompt:: bash $
- $ kubectl annotate serviceaccount -n eks.amazonaws.com/role-arn=arn:aws:iam::xxxx:role/
+ kubectl annotate serviceaccount -n eks.amazonaws.com/role-arn=arn:aws:iam::xxxx:role/
- Refer to this community-maintained `guides `_ for further information about Flyte deployment on EKS
+
+``FlyteScopedUserException: 'JavaPackage' object is not callable`` when running a Spark task
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Please add ``spark`` to the list of `enabled-plugins` in the config yaml file. For example,
+
+.. code-block:: yaml
+
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - K8S-ARRAY
+ - spark
+ default-for-task-types:
+ - container: container
+ - container_array: K8S-ARRAY
diff --git a/docs/concepts/admin.rst b/docs/concepts/admin.rst
index 4e6ee67a8e..f33ef51364 100644
--- a/docs/concepts/admin.rst
+++ b/docs/concepts/admin.rst
@@ -237,44 +237,6 @@ Permitted project operations include:
- Register
- List
-.. _divedeep-admin-matchable-resources:
-
-Matchable resources
-+++++++++++++++++++
-
-A thorough background on :ref:`matchable resources ` explains
-their purpose and application logic. As a summary, these are used to override system level defaults for Kubernetes cluster
-resource management, default execution values, and more across different levels of specificity.
-
-These entities consist of:
-
-- ProjectDomainAttributes
-- WorkflowAttributes
-
-``ProjectDomainAttributes`` configure customizable overrides at the project and domain level, and ``WorkflowAttributes`` configure customizable overrides at the project, domain and workflow level.
-
-Permitted attribute operations include:
-
-- Update (implicitly creates if there is no existing override)
-- Get
-- Delete
-
-
-Defaults
---------
-
-Task resource defaults
-++++++++++++++++++++++
-
-User-facing documentation on configuring task resource requests and limits can be found in :std:ref:`cookbook:customizing task resources`.
-
-As a system administrator you may want to define default task resource requests and limits across your Flyte deployment.
-This can be done through the flyteadmin config.
-
-**Default** values get injected as the task requests and limits when a task definition omits a specific resource.
-**Limit** values are only used as validation. Neither a task request nor limit can exceed the limit for a resource type.
-
-
Using the Admin Service
-----------------------
diff --git a/docs/concepts/component_architecture/native_scheduler_architecture.rst b/docs/concepts/component_architecture/native_scheduler_architecture.rst
index 19f13ef6c7..a923403625 100644
--- a/docs/concepts/component_architecture/native_scheduler_architecture.rst
+++ b/docs/concepts/component_architecture/native_scheduler_architecture.rst
@@ -35,7 +35,7 @@ Components
Schedule Management
-------------------
-This component supports creation/activation and deactivation of schedules. Each schedule is tied to a launch plan and is versioned in a similar manner. The schedule is created or its state is changed to activated/deactivated whenever the `admin API `__ is invoked for it with `ACTIVE/INACTIVE state `__. This is done either through `flytectl `__ or through any other client that calls the GRPC API.
+This component supports creation/activation and deactivation of schedules. Each schedule is tied to a launch plan and is versioned in a similar manner. The schedule is created or its state is changed to activated/deactivated whenever the `admin API `__ is invoked for it with `ACTIVE/INACTIVE state `__. This is done either through `flytectl `__ or through any other client that calls the GRPC API.
The API is similar to a launchplan, ensuring that only one schedule is active for a given launchplan.
diff --git a/docs/concepts/registration.rst b/docs/concepts/registration.rst
index bc745f7a0f..b7552d9fb9 100644
--- a/docs/concepts/registration.rst
+++ b/docs/concepts/registration.rst
@@ -16,7 +16,7 @@ The following steps elaborate on the specifics of the registration process:
* Define the tasks using the :py:mod:`Flytekit ` Task Definition language.
* Define a workflow using the :py:mod:`Flytekit ` Workflow definition language.
-* Use `flytectl register CLI `__ to compile the tasks into their serialized representation as described in :std:ref:`Flyte Specification language `. During this, the task representation is bound to a container that constitutes the code for the task. This associated entity is registered with FlyteAdmin using the registerTask API.
+* Use `flytectl register CLI `__ to compile the tasks into their serialized representation as described in :std:ref:`Flyte Specification language `. During this, the task representation is bound to a container that constitutes the code for the task. This associated entity is registered with FlyteAdmin using the registerTask API.
* Use flytectl register CLI to compile the workflow into their serialized representation as described in :std:ref:`Flyte Specification language `. The referenced tasks are replaced by their FlyteAdmin registered Identifiers, obtained in the previous step. The associated entity is registered with FlyteAdmin using the registerWorkflow API.
* Launch an execution using the FlyteAdmin launch execution API, which requires the necessary inputs provided. This is automatically done if the user uses flytectl to launch the execution.
* Use the FlyteAdmin read APIs to get details of the execution, monitor it to completion, or retrieve a historical execution.
diff --git a/docs/concepts/schedules.rst b/docs/concepts/schedules.rst
index 34644b217b..092a67f4a1 100644
--- a/docs/concepts/schedules.rst
+++ b/docs/concepts/schedules.rst
@@ -24,37 +24,116 @@ Let's now look at how schedules can be defined through cron_expression_ or rate_
Cron Expression
---------------
-Cron expression strings use :ref:`this ` syntax. They are validated at launch plan registration time.
-
-.. _rate_unit:
+Cron expression strings use the syntax shown below. They are validated at launch plan registration time.
Format
------
A cron expression represents a set of times, with the help of 5 space-separated fields.
-.. _cron_expression_table:
-
-+--------------+------------+-----------------+----------------------------+
-| Field name | Mandatory? | Allowed values | Allowed special characters |
-+==============+============+=================+============================+
-| Minutes | Yes | 0-59 | * / , - |
-+--------------+------------+-----------------+----------------------------+
-| Hours | Yes | 0-23 | * / , - |
-+--------------+------------+-----------------+----------------------------+
-| Day of month | Yes | 1-31 | * / , - ? |
-+--------------+------------+-----------------+----------------------------+
-| Month | Yes | 1-12 or JAN-DEC | * / , - |
-+--------------+------------+-----------------+----------------------------+
-| Day of week | Yes | 0-6 or SUN-SAT | * / , - ? |
-+--------------+------------+-----------------+----------------------------+
+.. raw:: html
+
+
+
+
+
+
+
+
+
+
+
+ Field name
+ |
+
+ Required
+ |
+
+ Allowed values
+ |
+
+ Allowed special characters
+ |
+
+
+
+
+
+ Minutes
+ |
+
+ Yes
+ |
+
+ 0-59
+ |
+
+ * / , -
+ |
+
+
+ Hours |
+
+ Yes
+ |
+
+ 0-23
+ |
+
+ * / , -
+ |
+
+
+
+ Day of month
+ |
+
+ Yes
+ |
+
+ 1-31 <
+ |
+
+ / , - ?
+ |
+
+
+
+ Month
+ |
+
+ Yes
+ |
+
+ 1-12 or JAN-DEC
+ |
+
+ * / , -
+ |
+
+
+
+ Day of week
+ |
+
+ Yes
+ |
+
+ 0-6 or SUN-SAT
+ |
+
+ * / , - ?
+ |
+
+
+
**Note**: The 'Month' and 'Day of week' fields are case insensitive.
Cron schedules
--------------
-An incorrect cron schedule expression leads to a failure in triggering the schedule. :ref:`Here ` is a table that shows the format of a cron expression.
+An incorrect cron schedule expression leads to a failure in triggering the schedule. :ref:`Here ` is a table that shows the format of a cron expression.
Below is another example:
@@ -73,6 +152,8 @@ Below is another example:
)
+.. _fixed_rate:
+
Fixed rate schedules
----------------------
Instead of cron schedules, fixed rate schedules can be used.
@@ -95,6 +176,7 @@ Below is an example with duration in `days`.
)
+.. _rate_unit:
Rate Unit
---------
diff --git a/docs/concepts/tasks.rst b/docs/concepts/tasks.rst
index 301287fc7b..94807d3632 100644
--- a/docs/concepts/tasks.rst
+++ b/docs/concepts/tasks.rst
@@ -30,7 +30,7 @@ When deciding if a unit of execution constitutes a Flyte task, consider these qu
- Is there a well-defined graceful/successful exit criteria for the task? A task is expected to exit after completion of input processing.
- Is it repeatable? Under certain circumstances, a task might be retried, rerun, etc. with the same inputs. It is expected
- to produce the same output every single time. For example, avoid using random number generators with current clock as seed. Use a system-provided clock as the seed instead.
+ to produce the same output every single time. For example, avoid using random number generators with current clock as seed. Use a system-provided clock as the seed instead.
- Is it a pure function, i.e., does it have side effects that are unknown to the system (calls a web-service)? It is recommended to avoid side-effects in tasks. When side-effects are evident, ensure that the operations are idempotent.
Dynamic Tasks
@@ -38,7 +38,7 @@ Dynamic Tasks
"Dynamic tasks" is a misnomer.
Flyte is one-of-a-kind workflow engine that ships with the concept of truly `Dynamic Workflows `__!
-Users can generate workflows in reaction to user inputs or computed values at runtime.
+Users can generate workflows in reaction to user inputs or computed values at runtime.
These executions are evaluated to generate a static graph before execution.
Extending Task
@@ -47,9 +47,9 @@ Extending Task
Plugins
^^^^^^^
-Flyte exposes an extensible model to express tasks in an execution-independent language.
-It contains first-class task plugins (for example: `Papermill `__,
-`Great Expectations `__, and :ref:`more `.)
+Flyte exposes an extensible model to express tasks in an execution-independent language.
+It contains first-class task plugins (for example: `Papermill `__,
+`Great Expectations `__, and :ref:`more `.)
that execute the Flyte tasks.
Almost any action can be implemented and introduced into Flyte as a "Plugin", which includes:
@@ -58,7 +58,7 @@ Almost any action can be implemented and introduced into Flyte as a "Plugin", wh
- Tasks that call web services.
Flyte ships with certain defaults, for example, running a simple Python function does not need any hosted service. Flyte knows how to
-execute these kinds of tasks on Kubernetes. It turns out these are the vast majority of tasks in machine learning, and Flyte is adept at
+execute these kinds of tasks on Kubernetes. It turns out these are the vast majority of tasks in machine learning, and Flyte is adept at
handling an enormous scale on Kubernetes. This is achieved by implementing a unique scheduler on Kubernetes.
Types
@@ -74,14 +74,14 @@ Inherent Features
Fault tolerance
^^^^^^^^^^^^^^^
-In any distributed system, failure is inevitable. Allowing users to design a fault-tolerant system (e.g. workflow) is an inherent goal of Flyte.
+In any distributed system, failure is inevitable. Allowing users to design a fault-tolerant system (e.g. workflow) is an inherent goal of Flyte.
At a high level, tasks offer two parameters to achieve fault tolerance:
**Retries**
-
-Tasks can define a retry strategy to let the system know how to handle failures (For example: retry 3 times on any kind of error).
-There are two kinds of retries:
+Tasks can define a retry strategy to let the system know how to handle failures (For example: retry 3 times on any kind of error).
+
+There are two kinds of retries:
1. System retry: It is a system-defined, recoverable failure that is used when system failures occur. The number of retries is validated against the number of system retries.
@@ -91,7 +91,7 @@ System retry can be of two types:
- **Downstream System Retry**: When a downstream system (or service) fails, or remote service is not contactable, the failure is retried against the number of retries set `here `__. This performs end-to-end system retry against the node whenever the task fails with a system error. This is useful when the downstream service throws a 500 error, abrupt network failure, etc.
-- **Transient Failure Retry**: This retry mechanism offers resiliency against transient failures, which are opaque to the user. It is tracked across the entire duration of execution. It helps Flyte entities and the additional services connected to Flyte like S3, to continue operating despite a system failure. Indeed, all transient failures are handled gracefully by Flyte! Moreover, in case of a transient failure retry, Flyte does not necessarily retry the entire task. “Retrying an entire task” means that the entire pod associated with the Flyte task would be rerun with a clean slate; instead, it just retries the atomic operation. For example, Flyte tries to persist the state until it can, exhausts the max retries, and backs off.
+- **Transient Failure Retry**: This retry mechanism offers resiliency against transient failures, which are opaque to the user. It is tracked across the entire duration of execution. It helps Flyte entities and the additional services connected to Flyte like S3, to continue operating despite a system failure. Indeed, all transient failures are handled gracefully by Flyte! Moreover, in case of a transient failure retry, Flyte does not necessarily retry the entire task. “Retrying an entire task” means that the entire pod associated with the Flyte task would be rerun with a clean slate; instead, it just retries the atomic operation. For example, Flyte tries to persist the state until it can, exhausts the max retries, and backs off.
To set a transient failure retry:
@@ -99,25 +99,25 @@ System retry can be of two types:
- Or update `max-workflow-retries `__ in helm.
-2. User retry: If a task fails to execute, it is retried for a specific number of times, and this number is set by the user in `TaskMetadata `__. The number of retries must be less than or equal to 10.
+2. User retry: If a task fails to execute, it is retried for a specific number of times, and this number is set by the user in `TaskMetadata `__. The number of retries must be less than or equal to 10.
.. note::
-
+
Recoverable vs. Non-Recoverable failures: Recoverable failures will be retried and counted against the task's retry count. Non-recoverable failures will just fail, i.e., the task isn’t retried irrespective of user/system retry configurations. All user exceptions are considered non-recoverable unless the exception is a subclass of FlyteRecoverableException.
.. note::
- `RFC 3902 `_ implements an alternative, simplified retry behaviour with which both system and user retries are counted towards a single retry budget defined in the task decorator (thus, without a second retry budget defined in the platform configuration). The last retries are always performed on non-spot instances to guarantee completion. To activate this behaviour, set ``configmap.core.propeller.node-config.ignore-retry-cause`` to ``true`` in the helm values.
+ `RFC 3902 `_ implements an alternative, simplified retry behavior with which both system and user retries are counted towards a single retry budget defined in the task decorator (thus, without a second retry budget defined in the platform configuration). The last retries are always performed on non-spot instances to guarantee completion. To activate this behaviour, set ``configmap.core.propeller.node-config.ignore-retry-cause`` to ``true`` in the helm values.
**Timeouts**
-
-To ensure that the system is always making progress, tasks must be guaranteed to end gracefully/successfully. The system defines a default timeout period for the tasks. It is possible for task authors to define a timeout period, after which the task is marked as ``failure``. Note that a timed-out task will be retried if it has a retry strategy defined. The timeout can be handled in the `TaskMetadata `__.
+
+To ensure that the system is always making progress, tasks must be guaranteed to end gracefully/successfully. The system defines a default timeout period for the tasks. It is possible for task authors to define a timeout period, after which the task is marked as ``failure``. Note that a timed-out task will be retried if it has a retry strategy defined. The timeout can be handled in the `TaskMetadata `__.
Caching/Memoization
^^^^^^^^^^^^^^^^^^^
Flyte supports memoization of task outputs to ensure that identical invocations of a task are not executed repeatedly, thereby saving compute resources and execution time. For example, if you wish to run the same piece of code multiple times, you can reuse the output instead of re-computing it.
-For more information on memoization, refer to the :std:doc:`Caching Example `.
+For more information on memoization, refer to the :std:doc:`/user_guide/development_lifecycle/caching`.
diff --git a/docs/conf.py b/docs/conf.py
index de33648810..eca3047f25 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -35,7 +35,7 @@
# The short X.Y version
version = ""
# The full version, including alpha/beta/rc tags
-release = "1.10.7-b4"
+release = "1.11.1-b0"
# -- General configuration ---------------------------------------------------
@@ -313,6 +313,7 @@
# These patterns are used to replace values in source files that are imported
# from other repos.
REPLACE_PATTERNS = {
+
r"": r"",
r"": r"",
INTERSPHINX_REFS_PATTERN: INTERSPHINX_REFS_REPLACE,
@@ -328,17 +329,18 @@
PROTO_REF_PATTERN: PROTO_REF_REPLACE,
r"/protos/docs/service/index": r"/protos/docs/service/service",
r"": r"",
- r"": r""
}
+# r"": r"",
+
import_projects_config = {
"clone_dir": "_projects",
"flytekit_api_dir": "_src/flytekit/",
"source_regex_mapping": REPLACE_PATTERNS,
"list_table_toc": [
- "flytesnacks/userguide",
- "flytesnacks/tutorials",
- "flytesnacks/integrations",
+ "flytesnacks/tutorials",
+ "flytesnacks/integrations",
+ "flytesnacks/deprecated_integrations"
],
"dev_build": bool(int(os.environ.get("MONODOCS_DEV_BUILD", 1))),
}
@@ -369,6 +371,25 @@
"flytesnacks/_build",
"flytesnacks/_tags",
"flytesnacks/getting_started",
+ "flytesnacks/userguide.md",
+ "flytesnacks/environment_setup.md",
+ "flytesnacks/index.md",
+ "examples/advanced_composition",
+ "examples/basics",
+ "examples/customizing_dependencies",
+ "examples/data_types_and_io",
+ "examples/development_lifecycle",
+ "examples/extending",
+ "examples/productionizing",
+ "examples/testing",
+ "flytesnacks/examples/advanced_composition",
+ "flytesnacks/examples/basics",
+ "flytesnacks/examples/customizing_dependencies",
+ "flytesnacks/examples/data_types_and_io",
+ "flytesnacks/examples/development_lifecycle",
+ "flytesnacks/examples/extending",
+ "flytesnacks/examples/productionizing",
+ "flytesnacks/examples/testing",
]
],
"local": flytesnacks_local_path is not None,
diff --git a/docs/core_use_cases/analytics.md b/docs/core_use_cases/analytics.md
index 58b6ab770c..886b75618d 100644
--- a/docs/core_use_cases/analytics.md
+++ b/docs/core_use_cases/analytics.md
@@ -173,7 +173,7 @@ and [DBT](https://github.com/flyteorg/flytekit/tree/master/plugins/flytekit-dbt)
integrations.
If you need to connect to a database, Flyte provides first-party
-support for {ref}`AWS Athena `, {ref}`Google Bigquery `,
-{ref}`Snowflake `, {ref}`SQLAlchemy `, and
+support for {ref}`AWS Athena `, {ref}`Google Bigquery `,
+{ref}`Snowflake `, {ref}`SQLAlchemy `, and
{ref}`SQLite3 `.
```
diff --git a/docs/core_use_cases/data_engineering.md b/docs/core_use_cases/data_engineering.md
index 25eb802fc2..9cbfca430c 100644
--- a/docs/core_use_cases/data_engineering.md
+++ b/docs/core_use_cases/data_engineering.md
@@ -170,6 +170,6 @@ and [DBT](https://github.com/flyteorg/flytekit/tree/master/plugins/flytekit-dbt)
integrations.
For database connectors, Flyte provides first-party support for {ref}`AWS Athena `,
-{ref}`Google Bigquery `, {ref}`Snowflake `,
+{ref}`Google BigQuery `, {ref}`Snowflake `,
{ref}`SQLAlchemy `, and {ref}`SQLite3 `.
```
diff --git a/docs/core_use_cases/machine_learning.md b/docs/core_use_cases/machine_learning.md
index 78925af26f..489b8b05f9 100644
--- a/docs/core_use_cases/machine_learning.md
+++ b/docs/core_use_cases/machine_learning.md
@@ -108,9 +108,8 @@ There are many ways to extend your workloads:
[Ray Tune](https://docs.ray.io/en/latest/tune/index.html) for hyperparameter
optimization, all orchestrated by Flyte as ephemerally-provisioned Ray clusters.
* - **📦 Ephemeral Cluster Resources**
- - Use the {ref}`MPI Operator `, {ref}`Sagemaker `,
- {ref}`Kubeflow Tensorflow `, {ref}`Kubeflow Pytorch`
- and {doc}`more <_tags/DistributedComputing>` to do distributed training.
+ - Use the {ref}`MPI Operator `, {ref}`Kubeflow Tensorflow `,
+ {ref}`Kubeflow Pytorch` and {doc}`more <_tags/DistributedComputing>` to do distributed training.
* - **🔎 Experiment Tracking**
- Auto-capture training logs with the {py:func}`~flytekitplugins.mlflow.mlflow_autolog`
decorator, which can be viewed as Flyte Decks with `@task(disable_decks=False)`.
diff --git a/docs/deployment/agents/airflow.rst b/docs/deployment/agents/airflow.rst
new file mode 100644
index 0000000000..ad6a6dab36
--- /dev/null
+++ b/docs/deployment/agents/airflow.rst
@@ -0,0 +1,97 @@
+.. _deployment-agent-setup-airflow:
+
+Airflow agent
+=================
+
+This guide provides an overview of how to set up the Airflow agent in your Flyte deployment.
+Please note that the you don't need an Airflow cluster to run the Airflow tasks, since Flytekit will
+automatically compile Airflow tasks to Flyte tasks and execute them on the Flyte cluster.
+
+Specify agent configuration
+----------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ Edit the relevant YAML file to specify the agent.
+
+ .. code-block:: bash
+
+ kubectl edit configmap flyte-sandbox-config -n flyte
+
+ .. code-block:: yaml
+ :emphasize-lines: 7,11,16
+
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ - container: container
+ - container_array: k8s-array
+ - airflow: agent-service
+
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - airflow
+
+ .. group-tab:: Flyte core
+
+ Create a file named ``values-override.yaml`` and add the following configuration to it.
+
+ .. code-block:: yaml
+
+ configmap:
+ enabled_plugins:
+ # -- Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig)
+ tasks:
+ # -- Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig)
+ task-plugins:
+ # -- [Enabled Plugins](https://pkg.go.dev/github.com/flyteorg/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ container: container
+ sidecar: sidecar
+ container_array: k8s-array
+ airflow: agent-service
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - airflow
+
+
+Upgrade the Flyte Helm release
+------------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ .. code-block:: bash
+
+ helm upgrade flyteorg/flyte-binary -n --values
+
+ Replace ```` with the name of your release (e.g., ``flyte-backend``),
+ ```` with the name of your namespace (e.g., ``flyte``),
+ and ```` with the name of your YAML file.
+
+ .. group-tab:: Flyte core
+
+ .. code-block:: bash
+
+ helm upgrade flyte/flyte-core -n --values values-override.yaml
+
+ Replace ```` with the name of your release (e.g., ``flyte``)
+
+ and ```` with the name of your namespace (e.g., ``flyte``).
+
+For Airflow agent on the Flyte cluster, see `Airflow agent `_.
diff --git a/docs/deployment/agents/bigquery.rst b/docs/deployment/agents/bigquery.rst
index 9835c3d47a..d3e4ee490e 100644
--- a/docs/deployment/agents/bigquery.rst
+++ b/docs/deployment/agents/bigquery.rst
@@ -1,6 +1,6 @@
.. _deployment-agent-setup-bigquery:
-Google BigQuery Agent
+Google BigQuery agent
======================
This guide provides an overview of setting up BigQuery agent in your Flyte deployment.
@@ -103,4 +103,4 @@ Upgrade the Flyte Helm release
and ```` with the name of your namespace (e.g., ``flyte``).
-For BigQuery plugin on the Flyte cluster, please refer to `BigQuery Plugin Example `_
+For BigQuery agent on the Flyte cluster, see `BigQuery agent `_.
diff --git a/docs/deployment/agents/chatgpt.rst b/docs/deployment/agents/chatgpt.rst
new file mode 100644
index 0000000000..a810bf5fdf
--- /dev/null
+++ b/docs/deployment/agents/chatgpt.rst
@@ -0,0 +1,138 @@
+.. _deployment-agent-setup-chatgpt:
+
+ChatGPT agent
+=================
+
+This guide provides an overview of how to set up the ChatGPT agent in your Flyte deployment.
+Please note that you have to set up the OpenAI API key in the agent server to to run ChatGPT tasks.
+
+Specify agent configuration
+----------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ Edit the relevant YAML file to specify the agent.
+
+ .. code-block:: bash
+
+ kubectl edit configmap flyte-sandbox-config -n flyte
+
+ .. code-block:: yaml
+ :emphasize-lines: 7,11,16
+
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ - container: container
+ - container_array: k8s-array
+ - chatgpt: agent-service
+
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - chatgpt
+
+ .. group-tab:: Flyte core
+
+ Create a file named ``values-override.yaml`` and add the following configuration to it:
+
+ .. code-block:: yaml
+
+ configmap:
+ enabled_plugins:
+ # -- Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig)
+ tasks:
+ # -- Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig)
+ task-plugins:
+ # -- [Enabled Plugins](https://pkg.go.dev/github.com/flyteorg/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ container: container
+ sidecar: sidecar
+ container_array: k8s-array
+ chatgpt: agent-service
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - chatgpt
+
+Add the OpenAI API token
+-------------------------------
+
+1. Install flyteagent pod using helm:
+
+.. code-block::
+
+ helm repo add flyteorg https://flyteorg.github.io/flyte
+ helm install flyteagent flyteorg/flyteagent --namespace flyte
+
+2. Get the base64 value of your OpenAI API token:
+
+.. code-block::
+
+ echo -n "" | base64
+
+3. Edit the flyteagent secret:
+
+ .. code-block:: bash
+
+ kubectl edit secret flyteagent -n flyte
+
+ .. code-block:: yaml
+ :emphasize-lines: 3
+
+ apiVersion: v1
+ data:
+ flyte_openai_api_key:
+ kind: Secret
+ metadata:
+ annotations:
+ meta.helm.sh/release-name: flyteagent
+ meta.helm.sh/release-namespace: flyte
+ creationTimestamp: "2023-10-04T04:09:03Z"
+ labels:
+ app.kubernetes.io/managed-by: Helm
+ name: flyteagent
+ namespace: flyte
+ resourceVersion: "753"
+ uid: 5ac1e1b6-2a4c-4e26-9001-d4ba72c39e54
+ type: Opaque
+
+
+Upgrade the Flyte Helm release
+------------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ .. code-block:: bash
+
+ helm upgrade flyteorg/flyte-binary -n --values
+
+ Replace ```` with the name of your release (e.g., ``flyte-backend``),
+ ```` with the name of your namespace (e.g., ``flyte``),
+ and ```` with the name of your YAML file.
+
+ .. group-tab:: Flyte core
+
+ .. code-block:: bash
+
+ helm upgrade flyte/flyte-core -n --values values-override.yaml
+
+ Replace ```` with the name of your release (e.g., ``flyte``)
+
+ and ```` with the name of your namespace (e.g., ``flyte``).
+
+For ChatGPT agent on the Flyte cluster, see `ChatGPT agent `_.
diff --git a/docs/deployment/agents/databricks.rst b/docs/deployment/agents/databricks.rst
index 00a5e97a47..b21fab3c57 100644
--- a/docs/deployment/agents/databricks.rst
+++ b/docs/deployment/agents/databricks.rst
@@ -1,6 +1,6 @@
.. _deployment-agent-setup-databricks:
-Databricks Agent
+Databricks agent
=================
This guide provides an overview of how to set up Databricks agent in your Flyte deployment.
@@ -291,4 +291,4 @@ Wait for the upgrade to complete. You can check the status of the deployment pod
kubectl get pods -n flyte
-For databricks plugin on the Flyte cluster, please refer to `Databricks Plugin Example `_
+For Databricks agent on the Flyte cluster, see `Databricks agent `_.
diff --git a/docs/deployment/agents/index.md b/docs/deployment/agents/index.md
index e27644570a..c79a5ecd53 100644
--- a/docs/deployment/agents/index.md
+++ b/docs/deployment/agents/index.md
@@ -2,22 +2,33 @@
# Agent Setup
-.. tags:: Agent, Integration, Data, Advanced
+```{tags} Agent, Integration, Data, Advanced
+```
+
+To set configure your Flyte deployment for agents, see the documentation below.
-Discover the process of setting up Agents for Flyte.
+:::{note}
+If you are using a managed deployment of Flyte, you will need to contact your deployment administrator to configure agents in your deployment.
+:::
```{list-table}
:header-rows: 0
:widths: 20 30
-* - {ref}`Bigquery Agent `
- - Guide to setting up the Bigquery agent.
+* - {ref}`Airflow Agent `
+ - Configuring your Flyte deployment for the Airflow agent
+* - {ref}`ChatGPT Agent `
+ - Configuring your Flyte deployment for the ChatGPT agent.
+* - {ref}`Databricks Agent `
+ - Configuring your Flyte deployment for the Databricks agent.
+* - {ref}`Google BigQuery Agent `
+ - Configuring your Flyte deployment for the BigQuery agent.
* - {ref}`MMCloud Agent `
- - Guide to setting up the MMCloud agent.
+ - Configuring your Flyte deployment for the MMCloud agent.
* - {ref}`Sensor Agent `
- - Guide to setting up the Sensor agent.
-* - {ref}`Databricks Agent `
- - Guide to setting up the Databricks agent.
+ - Configuring your Flyte deployment for the sensor agent.
+* - {ref}`SageMaker Inference `
+ - Deploy models and create, as well as trigger inference endpoints on SageMaker.
```
```{toctree}
@@ -25,8 +36,12 @@ Discover the process of setting up Agents for Flyte.
:name: Agent setup
:hidden:
+airflow
+chatgpt
+databricks
bigquery
mmcloud
-databricks
+sagemaker_inference
sensor
+snowflake
```
diff --git a/docs/deployment/agents/mmcloud.rst b/docs/deployment/agents/mmcloud.rst
index 217beab8ed..422162af27 100644
--- a/docs/deployment/agents/mmcloud.rst
+++ b/docs/deployment/agents/mmcloud.rst
@@ -118,4 +118,4 @@ Wait for the upgrade to complete. You can check the status of the deployment pod
kubectl get pods -n flyte
-For MMCloud plugin on the Flyte cluster, please refer to `Memory Machine Cloud Plugin Example `_
+For MMCloud agent on the Flyte cluster, see `MMCloud agent `_.
diff --git a/docs/deployment/agents/sagemaker_inference.rst b/docs/deployment/agents/sagemaker_inference.rst
new file mode 100644
index 0000000000..be9188d873
--- /dev/null
+++ b/docs/deployment/agents/sagemaker_inference.rst
@@ -0,0 +1,126 @@
+.. _deployment-agent-setup-sagemaker-inference:
+
+SageMaker Inference Agent
+=========================
+
+This guide provides an overview of how to set up the SageMaker inference agent in your Flyte deployment.
+
+Specify agent configuration
+---------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ Edit the relevant YAML file to specify the agent.
+
+ .. code-block:: bash
+
+ kubectl edit configmap flyte-sandbox-config -n flyte
+
+ .. code-block:: yaml
+ :emphasize-lines: 7,11-12,16-17
+
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ - container: container
+ - container_array: k8s-array
+ - boto: agent-service
+ - sagemaker-endpoint: agent-service
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - boto
+ - sagemaker-endpoint
+
+ .. group-tab:: Flyte core
+
+ Create a file named ``values-override.yaml`` and add the following configuration to it:
+
+ .. code-block:: yaml
+ :emphasize-lines: 9,14-15,19-20
+
+ configmap:
+ enabled_plugins:
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ container: container
+ sidecar: sidecar
+ container_array: k8s-array
+ boto: agent-service
+ sagemaker-endpoint: agent-service
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - boto
+ - sagemaker-endpoint
+
+Add the AWS credentials
+-----------------------
+
+1. Install the flyteagent pod using helm:
+
+.. code-block::
+
+ helm repo add flyteorg https://flyteorg.github.io/flyte
+ helm install flyteagent flyteorg/flyteagent --namespace flyte
+
+2. Get the base64 value of your AWS credentials:
+
+.. code-block::
+
+ echo -n "" | base64
+
+3. Edit the flyteagent secret:
+
+.. code-block:: bash
+
+ kubectl edit secret flyteagent -n flyte
+
+.. code-block:: yaml
+ :emphasize-lines: 3-5
+
+ apiVersion: v1
+ data:
+ aws-access-key:
+ aws-secret-access-key:
+ aws-session-token:
+ kind: Secret
+
+Upgrade the Flyte Helm release
+------------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ .. code-block:: bash
+
+ helm upgrade flyteorg/flyte-binary -n --values
+
+ Replace ```` with the name of your release (e.g., ``flyte-backend``),
+ ```` with the name of your namespace (e.g., ``flyte``),
+ and ```` with the name of your YAML file.
+
+ .. group-tab:: Flyte core
+
+ .. code-block:: bash
+
+ helm upgrade flyte/flyte-core -n --values values-override.yaml
+
+ Replace ```` with the name of your release (e.g., ``flyte``)
+ and ```` with the name of your namespace (e.g., ``flyte``).
+
+You can refer to the documentation `here `__.
diff --git a/docs/deployment/agents/sensor.rst b/docs/deployment/agents/sensor.rst
index ecb45e426f..958e5d896a 100644
--- a/docs/deployment/agents/sensor.rst
+++ b/docs/deployment/agents/sensor.rst
@@ -1,13 +1,13 @@
.. _deployment-agent-setup-sensor:
-Sensor Agent
+Sensor agent
=================
-Sensor enables users to continuously check for a file or a condition to be met periodically.
+The `sensor agent `_ enables users to continuously check for a file or a condition to be met periodically.
When the condition is met, the sensor will complete.
-This guide provides an overview of how to set up Sensor in your Flyte deployment.
+This guide provides an overview of how to set up the sensor agent in your Flyte deployment.
Spin up a cluster
-----------------
@@ -43,7 +43,7 @@ Spin up a cluster
Specify agent configuration
----------------------------
-Enable the Sensor agent by adding the following config to the relevant YAML file(s):
+Enable the sensor agent by adding the following config to the relevant YAML file(s):
.. tabs::
@@ -77,7 +77,7 @@ Enable the Sensor agent by adding the following config to the relevant YAML file
.. group-tab:: Flyte core
- Create a file named ``values-override.yaml`` and add the following configuration to it.
+ Create a file named ``values-override.yaml`` and add the following configuration to it:
.. code-block:: yaml
diff --git a/docs/deployment/agents/snowflake.rst b/docs/deployment/agents/snowflake.rst
new file mode 100644
index 0000000000..fe1c8482ae
--- /dev/null
+++ b/docs/deployment/agents/snowflake.rst
@@ -0,0 +1,103 @@
+.. _deployment-agent-setup-snowflake:
+
+Snowflake agent
+=================
+
+This guide provides an overview of how to set up the Snowflake agent in your Flyte deployment.
+
+1. Set up the key pair authentication in Snowflake. For more details, see the `Snowflake key-pair authentication and key-pair rotation guide `__.
+2. Create a secret with the group "snowflake" and the key "private_key". For more details, see `"Using Secrets in a Task" `__.
+
+.. code-block:: bash
+
+ kubectl create secret generic snowflake-private-key --namespace=flytesnacks-development --from-file=your_private_key_above
+
+Specify agent configuration
+----------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ Edit the relevant YAML file to specify the agent.
+
+ .. code-block:: bash
+
+ kubectl edit configmap flyte-sandbox-config -n flyte
+
+ .. code-block:: yaml
+ :emphasize-lines: 7,11,16
+
+ tasks:
+ task-plugins:
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ - container: container
+ - container_array: k8s-array
+ - snowflake: agent-service
+
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - snowflake
+
+ .. group-tab:: Flyte core
+
+ Create a file named ``values-override.yaml`` and add the following configuration to it.
+
+ .. code-block:: yaml
+
+ configmap:
+ enabled_plugins:
+ # -- Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig)
+ tasks:
+ # -- Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig)
+ task-plugins:
+ # -- [Enabled Plugins](https://pkg.go.dev/github.com/flyteorg/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend
+ enabled-plugins:
+ - container
+ - sidecar
+ - k8s-array
+ - agent-service
+ default-for-task-types:
+ container: container
+ sidecar: sidecar
+ container_array: k8s-array
+ snowflake: agent-service
+ plugins:
+ agent-service:
+ supportedTaskTypes:
+ - snowflake
+
+Ensure that the propeller has the correct service account for BigQuery.
+
+Upgrade the Flyte Helm release
+------------------------------
+
+.. tabs::
+
+ .. group-tab:: Flyte binary
+
+ .. code-block:: bash
+
+ helm upgrade flyteorg/flyte-binary -n --values
+
+ Replace ```` with the name of your release (e.g., ``flyte-backend``),
+ ```` with the name of your namespace (e.g., ``flyte``),
+ and ```` with the name of your YAML file.
+
+ .. group-tab:: Flyte core
+
+ .. code-block:: bash
+
+ helm upgrade flyte/flyte-core -n --values values-override.yaml
+
+ Replace ```` with the name of your release (e.g., ``flyte``)
+
+ and ```` with the name of your namespace (e.g., ``flyte``).
+
+For Snowflake agent on the Flyte cluster, see `Snowflake agent `_.
diff --git a/docs/deployment/configuration/auth_setup.rst b/docs/deployment/configuration/auth_setup.rst
index 61a6b4c0ae..2887e830ed 100644
--- a/docs/deployment/configuration/auth_setup.rst
+++ b/docs/deployment/configuration/auth_setup.rst
@@ -120,7 +120,7 @@ browser.
- ``http://localhost:30081/callback`` for sandbox or ``https:///callback`` for other Flyte deployment types.
- .. group-tab:: Microsoft Azure AD
+ .. group-tab:: Microsoft Entra ID (Azure AD)
1. From the Azure homepage go to **Azure Active Directory**
2. From the **Ovierview** page, take note of the **Tenant ID**
@@ -330,7 +330,7 @@ Apply OIDC Configuration
userAuth:
openId:
# baseUrl: https://accounts.google.com # Uncomment for Google
- # baseUrl: https://login.microsoftonline.com//oauth2/v2.0/authorize # Uncomment for Azure AD
+ # baseUrl: https://login.microsoftonline.com//v2.0 # Uncomment for Azure AD
# For Okta, use the Issuer URI of the default auth server
baseUrl: https://dev-.okta.com/oauth2/default
# Use the client ID generated by your IdP
@@ -351,28 +351,28 @@ Apply OIDC Configuration
# Use the non-encoded version of the random password
clientSecret: ""
clientId: flytepropeller
-
- 8. Save and exit your editor.
- 9. Restart ``flyteadmin`` for the changes to take effect:
+.. note::
- .. prompt:: bash $
+ For `multi-cluster deployments `__,
+ you must add this Secret definition block to the `values-dataplane.yaml` file.
+ If you are not running `flytepropeller` in the control plane cluster, you do not need to create this secret there.
- kubectl rollout restart deployment/flyteadmin -n flyte
+ 8. Save and exit your editor.
- 10. Restart ``flytepropeller`` to start using authenticated requests:
+ 9. Upgrade your Helm release with the new configuration:
.. prompt:: bash $
- kubectl rollout restart deployment/flytepropeller -n flyte
+ helm upgrade flyteorg/flyte-binary -n --values .yaml
- 11. Restart ``flytescheduler``` to start using authenticated requests:
+ 10. Verify that the `flytepropeller`, `flytescheduler` and `flyteadmin` Pods are restarted and running:
.. prompt:: bash $
- kubectl rollout restart deployment/flytescheduler -n flyte
+ kubectl get pods -n flyte
- 12. For flytectl/pyflyte, make sure that your local config file (``$HOME/.flyte/config.yaml``) includes the following option:
+ 11. For flytectl/pyflyte, make sure that your local config file (``$HOME/.flyte/config.yaml``) includes the following option:
.. code-block:: yaml
@@ -702,7 +702,7 @@ If your organization does any automated registration, then you'll need to authen
.. group-tab:: flytectl
- Flytectl's `config.yaml `_ can be
+ Flytectl's `config.yaml `_ can be
configured to use either PKCE (`Proof key for code exchange `_)
or Client Credentials (`Client Credentials `_) flows.
diff --git a/docs/deployment/configuration/customizable_resources.rst b/docs/deployment/configuration/customizable_resources.rst
index 1de7664130..29bb7c8ca9 100644
--- a/docs/deployment/configuration/customizable_resources.rst
+++ b/docs/deployment/configuration/customizable_resources.rst
@@ -1,12 +1,292 @@
.. _deployment-configuration-customizable-resources:
-#################################
-Adding New Customizable Resources
-#################################
+#################################################################
+Customizing project, domain, and workflow resources with flytectl
+#################################################################
+
+For critical projects and workflows, you can use the :ref:`flytectl update ` command to configure
+settings for task, cluster, and workflow execution resources, set matching executions to execute on specific clusters, set execution queue attributes, and :ref:`more `
+that differ from the default values set for your global Flyte installation. These customizable settings are created, updated, and deleted via the API and stored in the FlyteAdmin database.
+
+In code, these settings are sometimes called `matchable attributes` or `matchable resources`, because we use a hierarchy for matching the customizations to applicable Flyte inventory and executions.
+
+*******************************
+Configuring existing resources
+*******************************
+
+
+About the resource hierarchy
+============================
+
+Many platform specifications set in the FlyteAdmin config are applied to every project and domain. Although these values are customizable as part of your helm installation, they are still applied to every user project and domain combination.
+
+You can choose to customize these settings along increasing levels of specificity with Flyte:
+
+- Domain
+- Project and Domain
+- Project, Domain, and Workflow name
+- Project, Domain, Workflow name and LaunchPlan name
+
+See :ref:`control-plane` to understand projects and domains.
+The following section will show you how to configure the settings along
+these dimensions.
+
+Task resources
+==============
+
+As a system administrator you may want to define default task resource requests and limits across your Flyte deployment. This can be set globally in the FlyteAdmin `config `__
+in `task_resource_defaults`.
+
+**Default** values get injected as the task requests and limits when a task definition omits a specific :py:class:`resource `.
+
+**Limit** values are only used as validation. Neither a task request nor limit can exceed the limit for a resource type.
+
+Configuring task resources
+--------------------------
+Available resources for configuration include:
+
+- CPU
+- GPU
+- Memory
+- `Ephemeral Storage