From d751d0ba83a5c4596c3fa4d3d7de16478de30058 Mon Sep 17 00:00:00 2001 From: "Ethan Brown (Domino)" <111539728+ddl-ebrown@users.noreply.github.com> Date: Mon, 26 Feb 2024 05:55:05 -0800 Subject: [PATCH 01/76] Fix flyte-core rendering when flyteagent enabled (#4922) - Flyte agent now tries to render a specific set of podLabels, so assumes that there is an empty `podLabels: {}` set. This change to values.yaml for flyte-core ensures empty values are there. - Fixes: Error: template: flyte-core/charts/flyteagent/templates/agent/deployment.yaml:17:17: executing "flyte-core/charts/flyteagent/templates/agent/deployment.yaml" at : error calling include: template: flyte-core/templates/_helpers.tpl:122:16: executing "flyteagent.podLabels" at <.Values.flyteagent.podLabels>: nil pointer evaluating interface {}.podLabels Signed-off-by: ddl-ebrown --- charts/flyte-core/README.md | 1 + charts/flyte-core/values.yaml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index 460151fcbb..ea4435945d 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -194,6 +194,7 @@ 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` | | diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml index 109710edef..36e2b87eaa 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -279,6 +279,8 @@ flyteagent: defaultAgent: endpoint: "dns:///flyteagent.flyte.svc.cluster.local:8000" insecure: true + # -- Labels for flyteagent pods + podLabels: {} # # FLYTEPROPELLER SETTINGS From 0c771ef6b956c56a2d209900edc4cf7179b74fc4 Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Mon, 26 Feb 2024 14:03:55 -0600 Subject: [PATCH 02/76] Further edits to agents docs (#4952) * copy edits Signed-off-by: nikki everett * add anchor link Signed-off-by: nikki everett * add note about contribution Signed-off-by: nikki everett * add deprecated integrations section, update agents links Signed-off-by: nikki everett --------- Signed-off-by: nikki everett --- docs/conf.py | 3 ++- docs/core_use_cases/analytics.md | 4 ++-- docs/core_use_cases/data_engineering.md | 2 +- docs/flyte_agents/developing_agents.md | 12 ++++++++++++ docs/flyte_agents/index.md | 7 ++++--- docs/flyte_fundamentals/optimizing_tasks.md | 2 +- docs/index.md | 1 + 7 files changed, 23 insertions(+), 8 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 63a1ec9483..00c82afd2a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -339,7 +339,8 @@ "source_regex_mapping": REPLACE_PATTERNS, "list_table_toc": [ "flytesnacks/tutorials", - "flytesnacks/integrations", + "flytesnacks/integrations", + "flytesnacks/deprecated_integrations" ], "dev_build": bool(int(os.environ.get("MONODOCS_DEV_BUILD", 1))), } 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/flyte_agents/developing_agents.md b/docs/flyte_agents/developing_agents.md index bd7d1c7610..688f241852 100644 --- a/docs/flyte_agents/developing_agents.md +++ b/docs/flyte_agents/developing_agents.md @@ -13,6 +13,12 @@ The Flyte agent framework enables rapid agent development, since agents are deco If you need to create a new type of task, we recommend creating a new agent to run it rather than running the task in a pod. After testing the new agent, you can update your FlytePropeller configMap to specify the type of task that the agent should run. +```{note} + +We strongly encourage you to contribute your agent to the Flyte community. To do so, follow the steps in "[Contributing to Flyte](https://docs.flyte.org/en/latest/community/contribute.html)", and reach out to us on [Slack](https://docs.flyte.org/en/latest/community/contribute.html#) if you have any questions. + +``` + There are two types of agents: **async** and **sync**. * **Async agents** enable long-running jobs that execute on an external platform over time. They communicate with external services that have asynchronous APIs that support `create`, `get`, and `delete` operations. The vast majority of agents are async agents. * **Sync agents** enable request/response services that return immediate outputs (e.g. calling an internal API to fetch data or communicating with the OpenAI API). @@ -83,3 +89,9 @@ AgentRegistry.register(CustomAsyncAgent()) ``` For an example implementation, see the [BigQuery agent](https://github.com/flyteorg/flytekit/blob/master/plugins/flytekit-bigquery/flytekitplugins/bigquery/agent.py#L43). + +```{note} + +To contribute + +``` diff --git a/docs/flyte_agents/index.md b/docs/flyte_agents/index.md index d56c7fed4b..293f661be9 100644 --- a/docs/flyte_agents/index.md +++ b/docs/flyte_agents/index.md @@ -7,17 +7,18 @@ prev-page-title: Extending Flyte (flyte_agents_guide)= # Flyte agents -Flyte agents are long-running, stateless services that receive execution requests via gRPC and initiate jobs with appropriate external or internal services. They enable two key workflows: asynchronously launching jobs on hosted platforms (e.g. Databbricks or Snowflake) and calling external synchronous services, such as access control, data retrieval, and model inferencing. +Flyte agents are long-running, stateless services that receive execution requests via gRPC and initiate jobs with appropriate external or internal services. They enable two key workflows: asynchronously launching jobs on hosted platforms (e.g. Databricks or Snowflake) and calling external synchronous services, such as access control, data retrieval, and model inferencing. -Each agent service is a Kubernetes deployment that receives gRPC requests from FlytePropeller when users trigger a particular type of task (for example, the BigQuery agent handles BigQuery tasks). The agent service then initiates a job with the appropriate service. Since Agents can be spawned in process, they allow for running all services locally as long as the connection secrets are available. Moreover, Agents use a protobuf interface, thus can be implemented in any language, providing a lot of opportunity for flexibility and reuse of existing libraries, as well as simpler testing. +Each agent service is a Kubernetes deployment that receives gRPC requests from FlytePropeller when users trigger a particular type of task (for example, the BigQuery agent handles BigQuery tasks). The agent service then initiates a job with the appropriate service. Since agents can be spawned in process, they allow for running all services locally as long as the connection secrets are available. Moreover, agents use a protobuf interface, thus can be implemented in any language, enabling flexibility, reuse of existing libraries, and simpler testing. -You can create different agent services that host different agents, e.g., a production and a development agent service. +You can create different agent services that host different agents, e.g., a production and a development agent service: :::{figure} https://i.ibb.co/vXhBDjP/Screen-Shot-2023-05-29-at-2-54-14-PM.png :alt: Agent Service :class: with-shadow ::: +(using_agents_in_tasks)= ## Using agents in tasks If you need to connect to an external service in your workflow, we recommend using the corresponding agent rather than a web API plugin. Agents are designed to be scalable and can handle large workloads efficiently, and decrease load on FlytePropeller, since they run outside of it. You can also test agents locally without having to change the Flyte backend configuration, streamlining development. diff --git a/docs/flyte_fundamentals/optimizing_tasks.md b/docs/flyte_fundamentals/optimizing_tasks.md index 508767d05f..00c27c881f 100644 --- a/docs/flyte_fundamentals/optimizing_tasks.md +++ b/docs/flyte_fundamentals/optimizing_tasks.md @@ -243,7 +243,7 @@ When this task is executed on a Flyte cluster, it automatically provisions all o the resources that you need. In this case, that need is distributed training, but Flyte also provides integrations for {ref}`Spark `, {ref}`Ray `, {ref}`MPI `, {ref}`Sagemaker `, -{ref}`Snowflake `, and more. +{ref}`Snowflake `, and more. Even though Flyte itself is a powerful compute engine and orchestrator for data engineering, machine learning, and analytics, perhaps you have existing diff --git a/docs/index.md b/docs/index.md index 9df04ccd78..4720be51f7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -151,6 +151,7 @@ Core use cases User Guide Tutorials Integrations +Deprecated integrations ``` ```{toctree} From b43af7987a45edc6f1efcbcbe7d5770d6d07723d Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Tue, 27 Feb 2024 09:30:05 +0800 Subject: [PATCH 03/76] Generating sandbox-bundled manifests via root Makefile (#4940) Signed-off-by: Ryan Lo --- Makefile | 1 + docker/sandbox-bundled/Makefile | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 7bcc6e8cf8..64af820787 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,7 @@ kustomize: .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: diff --git a/docker/sandbox-bundled/Makefile b/docker/sandbox-bundled/Makefile index 0b4eac7e0a..8946886840 100644 --- a/docker/sandbox-bundled/Makefile +++ b/docker/sandbox-bundled/Makefile @@ -15,12 +15,15 @@ flyte: FLYTECONSOLE_VERSION := latest flyte: $(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: + mkdir -p manifests kustomize build \ --enable-helm \ --load-restrictor=LoadRestrictionsNone \ @@ -35,7 +38,7 @@ manifests: kustomize/complete-agent > manifests/complete-agent.yaml .PHONY: build -build: flyte manifests +build: flyte dep_update 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 \ From 311de7057074b691f2437f7fbb575c13479be839 Mon Sep 17 00:00:00 2001 From: Paul Dittamo <37558497+pvditt@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:37:29 -0800 Subject: [PATCH 04/76] [BUG] Datacatalog put errors don't get persisted (#4938) * bubble up catalog put failures with populated catalogmetadata Signed-off-by: Paul Dittamo * tests Signed-off-by: Paul Dittamo * don't error on already exists catalog puts Signed-off-by: Paul Dittamo --------- Signed-off-by: Paul Dittamo --- .../tasks/pluginmachinery/catalog/client.go | 7 + .../pluginmachinery/catalog/client_test.go | 20 +++ .../nodes/catalog/datacatalog/datacatalog.go | 40 +++-- .../catalog/datacatalog/datacatalog_test.go | 166 +++++++++++++++++- 4 files changed, 214 insertions(+), 19 deletions(-) diff --git a/flyteplugins/go/tasks/pluginmachinery/catalog/client.go b/flyteplugins/go/tasks/pluginmachinery/catalog/client.go index 5d0e981e08..56cb4be202 100644 --- a/flyteplugins/go/tasks/pluginmachinery/catalog/client.go +++ b/flyteplugins/go/tasks/pluginmachinery/catalog/client.go @@ -49,6 +49,13 @@ func (s Status) GetMetadata() *core.CatalogMetadata { return s.metadata } +func NewPutFailureStatus(key *Key) Status { + md := &core.CatalogMetadata{ + DatasetId: &key.Identifier, + } + return Status{cacheStatus: core.CatalogCacheStatus_CACHE_PUT_FAILURE, metadata: md} +} + func NewStatus(cacheStatus core.CatalogCacheStatus, md *core.CatalogMetadata) Status { return Status{cacheStatus: cacheStatus, metadata: md} } diff --git a/flyteplugins/go/tasks/pluginmachinery/catalog/client_test.go b/flyteplugins/go/tasks/pluginmachinery/catalog/client_test.go index 196b5374de..15a4347351 100644 --- a/flyteplugins/go/tasks/pluginmachinery/catalog/client_test.go +++ b/flyteplugins/go/tasks/pluginmachinery/catalog/client_test.go @@ -23,8 +23,28 @@ var ( Name: "artifactName", }, } + key = &Key{ + Identifier: core.Identifier{ + Project: "project", + Domain: "domain", + Name: "name", + Version: "1.0.0", + }, + CacheVersion: "1.0.0", + TypedInterface: core.TypedInterface{ + Inputs: nil, + Outputs: nil, + }, + } ) +func TestNewPutFailureStatus(t *testing.T) { + status := NewPutFailureStatus(key) + + assert.Equal(t, status.GetCacheStatus(), core.CatalogCacheStatus_CACHE_PUT_FAILURE) + assert.EqualValues(t, status.GetMetadata().GetDatasetId(), &key.Identifier) +} + func TestStatus(t *testing.T) { status := NewStatus(cacheStatus, &catalogMetadata) diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog.go index b3db72d129..6a029255a8 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog.go @@ -147,8 +147,8 @@ func (m *CatalogClient) Get(ctx context.Context, key catalog.Key) (catalog.Entry return catalog.NewCatalogEntry(ioutils.NewInMemoryOutputReader(outputs, nil, nil), catalog.NewStatus(core.CatalogCacheStatus_CACHE_HIT, md)), nil } -// CreateDataset creates a Dataset in datacatalog including the associated metadata. -func (m *CatalogClient) CreateDataset(ctx context.Context, key catalog.Key, metadata *datacatalog.Metadata) (*datacatalog.DatasetID, error) { +// createDataset creates a Dataset in datacatalog including the associated metadata. +func (m *CatalogClient) createDataset(ctx context.Context, key catalog.Key, metadata *datacatalog.Metadata) (*datacatalog.DatasetID, error) { datasetID, err := GenerateDatasetIDForTask(ctx, key) if err != nil { logger.Errorf(ctx, "DataCatalog failed to generate dataset for ID: %s, err: %s", key.Identifier, err) @@ -205,9 +205,9 @@ func (m *CatalogClient) prepareInputsAndOutputs(ctx context.Context, key catalog return inputs, outputs, nil } -// CreateArtifact creates an Artifact in datacatalog including its associated ArtifactData and tags it with a hash of +// createArtifact creates an Artifact in datacatalog including its associated ArtifactData and tags it with a hash of // the provided input values for retrieval. -func (m *CatalogClient) CreateArtifact(ctx context.Context, key catalog.Key, datasetID *datacatalog.DatasetID, inputs *core.LiteralMap, outputs *core.LiteralMap, metadata catalog.Metadata) (catalog.Status, error) { +func (m *CatalogClient) createArtifact(ctx context.Context, key catalog.Key, datasetID *datacatalog.DatasetID, inputs *core.LiteralMap, outputs *core.LiteralMap, metadata catalog.Metadata) (catalog.Status, error) { logger.Debugf(ctx, "Creating artifact for key %+v, dataset %+v and execution %+v", key, datasetID, metadata) // Create the artifact for the execution that belongs in the task @@ -263,8 +263,8 @@ func (m *CatalogClient) CreateArtifact(ctx context.Context, key catalog.Key, dat return catalog.NewStatus(core.CatalogCacheStatus_CACHE_POPULATED, EventCatalogMetadata(datasetID, tag, nil)), nil } -// UpdateArtifact overwrites the ArtifactData of an existing artifact with the provided data in datacatalog. -func (m *CatalogClient) UpdateArtifact(ctx context.Context, key catalog.Key, datasetID *datacatalog.DatasetID, inputs *core.LiteralMap, outputs *core.LiteralMap, metadata catalog.Metadata) (catalog.Status, error) { +// updateArtifact overwrites the ArtifactData of an existing artifact with the provided data in datacatalog. +func (m *CatalogClient) updateArtifact(ctx context.Context, key catalog.Key, datasetID *datacatalog.DatasetID, inputs *core.LiteralMap, outputs *core.LiteralMap, metadata catalog.Metadata) (catalog.Status, error) { logger.Debugf(ctx, "Updating artifact for key %+v, dataset %+v and execution %+v", key, datasetID, metadata) artifactDataList := make([]*datacatalog.ArtifactData, 0, len(outputs.Literals)) @@ -316,17 +316,21 @@ func (m *CatalogClient) UpdateArtifact(ctx context.Context, key catalog.Key, dat // Lastly, CatalogClient will create an Artifact tagged with the input value hash and store the provided execution data. func (m *CatalogClient) Put(ctx context.Context, key catalog.Key, reader io.OutputReader, metadata catalog.Metadata) (catalog.Status, error) { // Ensure dataset exists, idempotent operations. Populate Metadata for later recovery - datasetID, err := m.CreateDataset(ctx, key, GetDatasetMetadataForSource(metadata.TaskExecutionIdentifier)) + datasetID, err := m.createDataset(ctx, key, GetDatasetMetadataForSource(metadata.TaskExecutionIdentifier)) if err != nil { - return catalog.Status{}, err + return catalog.NewPutFailureStatus(&key), err } inputs, outputs, err := m.prepareInputsAndOutputs(ctx, key, reader) if err != nil { - return catalog.Status{}, err + return catalog.NewPutFailureStatus(&key), err } - return m.CreateArtifact(ctx, key, datasetID, inputs, outputs, metadata) + createArtifactStatus, err := m.createArtifact(ctx, key, datasetID, inputs, outputs, metadata) + if err != nil { + return catalog.NewPutFailureStatus(&key), err + } + return createArtifactStatus, err } // Update stores the result of a task execution as a cached Artifact, overwriting any already stored data from a previous @@ -337,27 +341,31 @@ func (m *CatalogClient) Put(ctx context.Context, key catalog.Key, reader io.Outp // has of the input values will exist. func (m *CatalogClient) Update(ctx context.Context, key catalog.Key, reader io.OutputReader, metadata catalog.Metadata) (catalog.Status, error) { // Ensure dataset exists, idempotent operations. Populate Metadata for later recovery - datasetID, err := m.CreateDataset(ctx, key, GetDatasetMetadataForSource(metadata.TaskExecutionIdentifier)) + datasetID, err := m.createDataset(ctx, key, GetDatasetMetadataForSource(metadata.TaskExecutionIdentifier)) if err != nil { - return catalog.Status{}, err + return catalog.NewPutFailureStatus(&key), err } inputs, outputs, err := m.prepareInputsAndOutputs(ctx, key, reader) if err != nil { - return catalog.Status{}, err + return catalog.NewPutFailureStatus(&key), err } - catalogStatus, err := m.UpdateArtifact(ctx, key, datasetID, inputs, outputs, metadata) + catalogStatus, err := m.updateArtifact(ctx, key, datasetID, inputs, outputs, metadata) if err != nil { if status.Code(err) == codes.NotFound { // No existing artifact found (e.g. initial execution of task with overwrite flag already set), // silently ignore error and create artifact instead to make overwriting an idempotent operation. logger.Debugf(ctx, "Artifact %+v for dataset %+v does not exist while updating, creating instead", key, datasetID) - return m.CreateArtifact(ctx, key, datasetID, inputs, outputs, metadata) + createArtifactStatus, err := m.createArtifact(ctx, key, datasetID, inputs, outputs, metadata) + if err != nil { + return catalog.NewPutFailureStatus(&key), err + } + return createArtifactStatus, nil } logger.Errorf(ctx, "Failed to update artifact %+v for dataset %+v: %v", key, datasetID, err) - return catalog.Status{}, err + return catalog.NewPutFailureStatus(&key), err } logger.Debugf(ctx, "Successfully updated artifact %+v for dataset %+v", key, datasetID) diff --git a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog_test.go b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog_test.go index d9787ceeaa..ce8f6f4069 100644 --- a/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog_test.go +++ b/flytepropeller/pkg/controller/nodes/catalog/datacatalog/datacatalog_test.go @@ -443,6 +443,73 @@ func TestCatalog_Put(t *testing.T) { assert.Equal(t, "flyte_cached-BE6CZsMk6N3ExR_4X9EuwBgj2Jh2UwasXK3a_pM9xlY", s.GetMetadata().ArtifactTag.Name) }) + t.Run("Create dataset fails", func(t *testing.T) { + ir := &mocks2.InputReader{} + ir.On("Get", mock.Anything).Return(sampleParameters, nil, nil) + + mockClient := &mocks.DataCatalogClient{} + discovery := &CatalogClient{ + client: mockClient, + } + + mockClient.On("CreateDataset", + ctx, + mock.MatchedBy(func(o *datacatalog.CreateDatasetRequest) bool { + return true + }), + ).Return(&datacatalog.CreateDatasetResponse{}, errors.New("generic error")) + + newKey := sampleKey + newKey.InputReader = ir + or := ioutils.NewInMemoryOutputReader(sampleParameters, nil, nil) + s, err := discovery.Put(ctx, newKey, or, catalog.Metadata{ + WorkflowExecutionIdentifier: &core.WorkflowExecutionIdentifier{ + Name: "test", + }, + TaskExecutionIdentifier: nil, + }) + assert.Error(t, err) + assert.Equal(t, core.CatalogCacheStatus_CACHE_PUT_FAILURE, s.GetCacheStatus()) + assert.NotNil(t, s.GetMetadata()) + }) + + t.Run("Create artifact fails", func(t *testing.T) { + ir := &mocks2.InputReader{} + ir.On("Get", mock.Anything).Return(sampleParameters, nil, nil) + + mockClient := &mocks.DataCatalogClient{} + discovery := &CatalogClient{ + client: mockClient, + } + + mockClient.On("CreateDataset", + ctx, + mock.MatchedBy(func(o *datacatalog.CreateDatasetRequest) bool { + return true + }), + ).Return(&datacatalog.CreateDatasetResponse{}, nil) + + mockClient.On("CreateArtifact", + ctx, + mock.MatchedBy(func(o *datacatalog.CreateArtifactRequest) bool { + return true + }), + ).Return(&datacatalog.CreateArtifactResponse{}, errors.New("generic error")) + + newKey := sampleKey + newKey.InputReader = ir + or := ioutils.NewInMemoryOutputReader(sampleParameters, nil, nil) + s, err := discovery.Put(ctx, newKey, or, catalog.Metadata{ + WorkflowExecutionIdentifier: &core.WorkflowExecutionIdentifier{ + Name: "test", + }, + TaskExecutionIdentifier: nil, + }) + assert.Error(t, err) + assert.Equal(t, core.CatalogCacheStatus_CACHE_PUT_FAILURE, s.GetCacheStatus()) + assert.NotNil(t, s.GetMetadata()) + }) + t.Run("Create new cached execution with no inputs/outputs", func(t *testing.T) { mockClient := &mocks.DataCatalogClient{} catalogClient := &CatalogClient{ @@ -611,6 +678,70 @@ func TestCatalog_Update(t *testing.T) { assert.Equal(t, taskID.NodeExecutionId.String(), sourceTID.NodeExecutionId.String()) }) + t.Run("Overwrite non-existing execution", func(t *testing.T) { + ir := &mocks2.InputReader{} + ir.On("Get", mock.Anything).Return(sampleParameters, nil, nil) + + mockClient := &mocks.DataCatalogClient{} + discovery := &CatalogClient{ + client: mockClient, + } + + mockClient.On("CreateDataset", + ctx, + mock.MatchedBy(func(o *datacatalog.CreateDatasetRequest) bool { + return true + }), + ).Return(&datacatalog.CreateDatasetResponse{}, nil) + + mockClient.On("UpdateArtifact", ctx, mock.Anything).Return(nil, status.New(codes.NotFound, "missing entity of type Artifact with identifier id").Err()) + + mockClient.On("CreateArtifact", + ctx, + mock.MatchedBy(func(o *datacatalog.CreateArtifactRequest) bool { + return true + }), + ).Return(&datacatalog.CreateArtifactResponse{}, errors.New("generic error")) + + taskID := &core.TaskExecutionIdentifier{ + TaskId: &core.Identifier{ + ResourceType: core.ResourceType_TASK, + Name: sampleKey.Identifier.Name, + Project: sampleKey.Identifier.Project, + Domain: sampleKey.Identifier.Domain, + Version: "version", + }, + NodeExecutionId: &core.NodeExecutionIdentifier{ + ExecutionId: &core.WorkflowExecutionIdentifier{ + Name: "wf", + Project: "p1", + Domain: "d1", + }, + NodeId: "unknown", // not set in Put request below --> defaults to "unknown" + }, + RetryAttempt: 0, + } + + newKey := sampleKey + newKey.InputReader = ir + or := ioutils.NewInMemoryOutputReader(sampleParameters, nil, nil) + s, err := discovery.Update(ctx, newKey, or, catalog.Metadata{ + WorkflowExecutionIdentifier: &core.WorkflowExecutionIdentifier{ + Name: taskID.NodeExecutionId.ExecutionId.Name, + Domain: taskID.NodeExecutionId.ExecutionId.Domain, + Project: taskID.NodeExecutionId.ExecutionId.Project, + }, + TaskExecutionIdentifier: &core.TaskExecutionIdentifier{ + TaskId: &sampleKey.Identifier, + NodeExecutionId: taskID.NodeExecutionId, + RetryAttempt: 0, + }, + }) + assert.Error(t, err) + assert.Equal(t, core.CatalogCacheStatus_CACHE_PUT_FAILURE, s.GetCacheStatus()) + assert.NotNil(t, s.GetMetadata()) + }) + t.Run("Overwrite non-existing execution", func(t *testing.T) { ir := &mocks2.InputReader{} ir.On("Get", mock.Anything).Return(sampleParameters, nil, nil) @@ -702,6 +833,36 @@ func TestCatalog_Update(t *testing.T) { assert.True(t, addTagCalled) }) + t.Run("Error while creating dataset", func(t *testing.T) { + ir := &mocks2.InputReader{} + ir.On("Get", mock.Anything).Return(sampleParameters, nil, nil) + + mockClient := &mocks.DataCatalogClient{} + discovery := &CatalogClient{ + client: mockClient, + } + + mockClient.On("CreateDataset", + ctx, + mock.MatchedBy(func(o *datacatalog.CreateDatasetRequest) bool { + return true + }), + ).Return(&datacatalog.CreateDatasetResponse{}, errors.New("generic error")) + + newKey := sampleKey + newKey.InputReader = ir + or := ioutils.NewInMemoryOutputReader(sampleParameters, nil, nil) + s, err := discovery.Update(ctx, newKey, or, catalog.Metadata{ + WorkflowExecutionIdentifier: &core.WorkflowExecutionIdentifier{ + Name: "test", + }, + TaskExecutionIdentifier: nil, + }) + assert.Error(t, err) + assert.Equal(t, core.CatalogCacheStatus_CACHE_PUT_FAILURE, s.GetCacheStatus()) + assert.NotNil(t, s.GetMetadata()) + }) + t.Run("Error while overwriting execution", func(t *testing.T) { ir := &mocks2.InputReader{} ir.On("Get", mock.Anything).Return(sampleParameters, nil, nil) @@ -714,7 +875,6 @@ func TestCatalog_Update(t *testing.T) { mockClient.On("CreateDataset", ctx, mock.MatchedBy(func(o *datacatalog.CreateDatasetRequest) bool { - assert.True(t, proto.Equal(o.Dataset.Id, datasetID)) return true }), ).Return(&datacatalog.CreateDatasetResponse{}, nil) @@ -733,8 +893,8 @@ func TestCatalog_Update(t *testing.T) { }) assert.Error(t, err) assert.Equal(t, genericErr, err) - assert.Equal(t, core.CatalogCacheStatus_CACHE_DISABLED, s.GetCacheStatus()) - assert.Nil(t, s.GetMetadata()) + assert.Equal(t, core.CatalogCacheStatus_CACHE_PUT_FAILURE, s.GetCacheStatus()) + assert.NotNil(t, s.GetMetadata()) }) } From 2b709f1c4788fe598f9159acd31f8ae769da1849 Mon Sep 17 00:00:00 2001 From: Yee Hing Tong Date: Tue, 27 Feb 2024 15:23:12 -0800 Subject: [PATCH 05/76] Update launch condition column (#4903) Signed-off-by: Yee Hing Tong --- .../impl/validation/launch_plan_validator.go | 6 + .../validation/launch_plan_validator_test.go | 2 +- .../pkg/repositories/config/migrations.go | 43 ++- .../gormimpl/launch_plan_repo_test.go | 8 +- .../pkg/repositories/models/launch_plan.go | 14 +- .../repositories/transformers/launch_plan.go | 11 +- flyteidl/clients/go/assets/admin.swagger.json | 9 +- .../gen/pb-es/flyteidl/admin/execution_pb.ts | 8 + .../gen/pb-es/flyteidl/core/artifact_id_pb.ts | 6 - .../gen/pb-go/flyteidl/admin/execution.pb.go | 305 +++++++++--------- .../gen/pb-go/flyteidl/core/artifact_id.pb.go | 195 ++++++----- .../flyteidl/service/admin.swagger.json | 9 +- .../flyteidl/service/agent.swagger.json | 4 - .../external_plugin_service.swagger.json | 4 - flyteidl/gen/pb-js/flyteidl.d.ts | 9 +- flyteidl/gen/pb-js/flyteidl.js | 20 +- .../pb_python/flyteidl/admin/execution_pb2.py | 54 ++-- .../flyteidl/admin/execution_pb2.pyi | 2 + .../flyteidl/core/artifact_id_pb2.py | 36 +-- .../flyteidl/core/artifact_id_pb2.pyi | 6 +- flyteidl/gen/pb_rust/flyteidl.admin.rs | 4 + flyteidl/gen/pb_rust/flyteidl.core.rs | 2 - .../protos/flyteidl/admin/execution.proto | 3 + .../protos/flyteidl/core/artifact_id.proto | 2 - 24 files changed, 396 insertions(+), 366 deletions(-) diff --git a/flyteadmin/pkg/manager/impl/validation/launch_plan_validator.go b/flyteadmin/pkg/manager/impl/validation/launch_plan_validator.go index 732c00666a..6a4a3b137f 100644 --- a/flyteadmin/pkg/manager/impl/validation/launch_plan_validator.go +++ b/flyteadmin/pkg/manager/impl/validation/launch_plan_validator.go @@ -54,12 +54,18 @@ func ValidateLaunchPlan(ctx context.Context, if err := validateSchedule(request, expectedInputs); err != nil { return err } + // Augment default inputs with the unbound workflow inputs. request.Spec.DefaultInputs = expectedInputs if request.Spec.EntityMetadata != nil { if err := validateNotifications(request.Spec.EntityMetadata.Notifications); err != nil { return err } + if request.GetSpec().GetEntityMetadata().GetLaunchConditions() != nil { + return errors.NewFlyteAdminErrorf( + codes.InvalidArgument, + "Launch condition must be empty, found %v", request.GetSpec().GetEntityMetadata().GetLaunchConditions()) + } } return nil } diff --git a/flyteadmin/pkg/manager/impl/validation/launch_plan_validator_test.go b/flyteadmin/pkg/manager/impl/validation/launch_plan_validator_test.go index 8c2c768d42..86bfc5c6b7 100644 --- a/flyteadmin/pkg/manager/impl/validation/launch_plan_validator_test.go +++ b/flyteadmin/pkg/manager/impl/validation/launch_plan_validator_test.go @@ -317,7 +317,7 @@ func TestValidateSchedule_ArgNotFixed(t *testing.T) { }) t.Run("with rate", func(t *testing.T) { request := testutils.GetLaunchPlanRequestWithFixedRateSchedule(2, admin.FixedRateUnit_HOUR) - + err := validateSchedule(request, inputMap) assert.NotNil(t, err) }) diff --git a/flyteadmin/pkg/repositories/config/migrations.go b/flyteadmin/pkg/repositories/config/migrations.go index 891a80db1d..a3e5484a7d 100644 --- a/flyteadmin/pkg/repositories/config/migrations.go +++ b/flyteadmin/pkg/repositories/config/migrations.go @@ -1182,7 +1182,48 @@ var NoopMigrations = []*gormigrate.Migration{ }, } -var Migrations = append(LegacyMigrations, NoopMigrations...) +// ContinuedMigrations - Above are a series of migrations labeled as no-op migrations. These are migrations that we +// wrote to bring the then-existing migrations up to the Gorm standard, which is to write from scratch, each struct +// that we want auto-migrated, inside each function. Previously we had not been doing that. The idea is that we will +// one day delete the migrations prior to the no-op series. New migrations should continue in this array here, again +// using the proper Gorm methodology of including the struct definitions inside each migration function. +var ContinuedMigrations = []*gormigrate.Migration{ + { + ID: "pg-continue-2024-02-launchplan", + Migrate: func(tx *gorm.DB) error { + type LaunchPlanScheduleType string + type LaunchConditionType string + + type LaunchPlan struct { + ID uint `gorm:"index;autoIncrement;not null"` + CreatedAt time.Time `gorm:"type:time"` + UpdatedAt time.Time `gorm:"type:time"` + DeletedAt *time.Time `gorm:"index"` + Project string `gorm:"primary_key;index:lp_project_domain_name_idx,lp_project_domain_idx" valid:"length(0|255)"` + Domain string `gorm:"primary_key;index:lp_project_domain_name_idx,lp_project_domain_idx" valid:"length(0|255)"` + Name string `gorm:"primary_key;index:lp_project_domain_name_idx" valid:"length(0|255)"` + Version string `gorm:"primary_key" valid:"length(0|255)"` + Spec []byte `gorm:"not null"` + WorkflowID uint `gorm:"index"` + Closure []byte `gorm:"not null"` + // GORM doesn't save the zero value for ints, so we use a pointer for the State field + State *int32 `gorm:"default:0"` + // Hash of the launch plan + Digest []byte + ScheduleType LaunchPlanScheduleType + // store the type of event that this launch plan is triggered by, can be empty, or SCHED + LaunchConditionType *LaunchConditionType `gorm:"type:varchar(32);index:idx_launch_plans_launch_conditions,where:launch_condition_type is not null"` + } + return tx.AutoMigrate(&LaunchPlan{}) + }, + Rollback: func(tx *gorm.DB) error { + return tx.Table("launch_plans").Migrator().DropColumn(&models.LaunchPlan{}, "launch_condition_type") + }, + }, +} + +var m = append(LegacyMigrations, NoopMigrations...) +var Migrations = append(m, ContinuedMigrations...) func alterTableColumnType(db *sql.DB, columnName, columnType string) error { var err error diff --git a/flyteadmin/pkg/repositories/gormimpl/launch_plan_repo_test.go b/flyteadmin/pkg/repositories/gormimpl/launch_plan_repo_test.go index b43b9d75ff..05487fe4c9 100644 --- a/flyteadmin/pkg/repositories/gormimpl/launch_plan_repo_test.go +++ b/flyteadmin/pkg/repositories/gormimpl/launch_plan_repo_test.go @@ -264,7 +264,7 @@ func TestListLaunchPlans_Pagination(t *testing.T) { GlobalMock := mocket.Catcher.Reset() GlobalMock.NewMock().WithQuery( - `SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 LIMIT 2 OFFSET 1`).WithReply(launchPlans) + `SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type","launch_plans"."launch_condition_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 LIMIT 2 OFFSET 1`).WithReply(launchPlans) collection, err := launchPlanRepo.List(context.Background(), interfaces.ListResourceInput{ InlineFilters: []common.InlineFilter{ @@ -311,7 +311,7 @@ func TestListLaunchPlans_Filters(t *testing.T) { GlobalMock := mocket.Catcher.Reset() GlobalMock.Logging = true // Only match on queries that append the name filter - GlobalMock.NewMock().WithQuery(`SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 AND launch_plans.version = $4 LIMIT 20`).WithReply(launchPlans[0:1]) + GlobalMock.NewMock().WithQuery(`SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type","launch_plans"."launch_condition_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 AND launch_plans.version = $4 LIMIT 20`).WithReply(launchPlans[0:1]) collection, err := launchPlanRepo.List(context.Background(), interfaces.ListResourceInput{ InlineFilters: []common.InlineFilter{ @@ -403,8 +403,8 @@ func TestListLaunchPlansForWorkflow(t *testing.T) { // HACK: gorm orders the filters on join clauses non-deterministically. Ordering of filters doesn't affect // correctness, but because the mocket library only pattern matches on substrings, both variations of the (valid) // SQL that gorm produces are checked below. - query := `SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 AND workflows.deleted_at = $4 LIMIT 20` - alternateQuery := `SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 AND workflows.deleted_at = $4 LIMIT 20` + query := `SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type","launch_plans"."launch_condition_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 AND workflows.deleted_at = $4 LIMIT 20` + alternateQuery := `SELECT "launch_plans"."id","launch_plans"."created_at","launch_plans"."updated_at","launch_plans"."deleted_at","launch_plans"."project","launch_plans"."domain","launch_plans"."name","launch_plans"."version","launch_plans"."spec","launch_plans"."workflow_id","launch_plans"."closure","launch_plans"."state","launch_plans"."digest","launch_plans"."schedule_type","launch_plans"."launch_condition_type" FROM "launch_plans" inner join workflows on launch_plans.workflow_id = workflows.id WHERE launch_plans.project = $1 AND launch_plans.domain = $2 AND launch_plans.name = $3 AND workflows.deleted_at = $4 LIMIT 20` GlobalMock.NewMock().WithQuery(query).WithReply(launchPlans) GlobalMock.NewMock().WithQuery(alternateQuery).WithReply(launchPlans) diff --git a/flyteadmin/pkg/repositories/models/launch_plan.go b/flyteadmin/pkg/repositories/models/launch_plan.go index 1a12dd259a..75d4c63669 100644 --- a/flyteadmin/pkg/repositories/models/launch_plan.go +++ b/flyteadmin/pkg/repositories/models/launch_plan.go @@ -19,7 +19,14 @@ const ( LaunchPlanScheduleTypeRATE LaunchPlanScheduleType = "RATE" ) -// Database model to encapsulate a launch plan. +type LaunchConditionType string + +const ( + // LaunchConditionTypeSCHED is the const representing the launch plan has a trigger type of schedule + LaunchConditionTypeSCHED LaunchConditionType = "SCHED" +) + +// LaunchPlan Database model to encapsulate a launch plan. type LaunchPlan struct { BaseModel LaunchPlanKey @@ -29,8 +36,9 @@ type LaunchPlan struct { // GORM doesn't save the zero value for ints, so we use a pointer for the State field State *int32 `gorm:"default:0"` // Hash of the launch plan - Digest []byte - ScheduleType LaunchPlanScheduleType + Digest []byte + ScheduleType LaunchPlanScheduleType + LaunchConditionType *LaunchConditionType `gorm:"type:varchar(32);index:idx_launch_plans_launch_conditions,where:launch_condition_type is not null"` } var LaunchPlanColumns = modelColumns(LaunchPlan{}) diff --git a/flyteadmin/pkg/repositories/transformers/launch_plan.go b/flyteadmin/pkg/repositories/transformers/launch_plan.go index f11cdacb5f..f716f3cc4e 100644 --- a/flyteadmin/pkg/repositories/transformers/launch_plan.go +++ b/flyteadmin/pkg/repositories/transformers/launch_plan.go @@ -40,18 +40,21 @@ func CreateLaunchPlanModel( return models.LaunchPlan{}, errors.NewFlyteAdminError(codes.Internal, "Failed to serialize launch plan closure") } + var launchConditionType models.LaunchConditionType scheduleType := models.LaunchPlanScheduleTypeNONE if launchPlan.Spec.EntityMetadata != nil && launchPlan.Spec.EntityMetadata.Schedule != nil { if launchPlan.Spec.EntityMetadata.Schedule.GetCronExpression() != "" || launchPlan.Spec.EntityMetadata.Schedule.GetCronSchedule() != nil { scheduleType = models.LaunchPlanScheduleTypeCRON + launchConditionType = models.LaunchConditionTypeSCHED } else if launchPlan.Spec.EntityMetadata.Schedule.GetRate() != nil { scheduleType = models.LaunchPlanScheduleTypeRATE + launchConditionType = models.LaunchConditionTypeSCHED } } state := int32(initState) - return models.LaunchPlan{ + lpModel := models.LaunchPlan{ LaunchPlanKey: models.LaunchPlanKey{ Project: launchPlan.Id.Project, Domain: launchPlan.Id.Domain, @@ -64,7 +67,11 @@ func CreateLaunchPlanModel( WorkflowID: workflowRepoID, Digest: digest, ScheduleType: scheduleType, - }, nil + } + if launchConditionType != "" { + lpModel.LaunchConditionType = &launchConditionType + } + return lpModel, nil } // Transforms a LaunchPlanModel to a LaunchPlan diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 1adf1fa70c..191143dd89 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -4273,10 +4273,11 @@ "SYSTEM", "RELAUNCH", "CHILD_WORKFLOW", - "RECOVERED" + "RECOVERED", + "TRIGGER" ], "default": "MANUAL", - "description": "The method by which this execution was launched.\n\n - MANUAL: The default execution mode, MANUAL implies that an execution was launched by an individual.\n - SCHEDULED: A schedule triggered this execution launch.\n - SYSTEM: A system process was responsible for launching this execution rather an individual.\n - RELAUNCH: This execution was launched with identical inputs as a previous execution.\n - CHILD_WORKFLOW: This execution was triggered by another execution.\n - RECOVERED: This execution was recovered from another execution." + "description": "The method by which this execution was launched.\n\n - MANUAL: The default execution mode, MANUAL implies that an execution was launched by an individual.\n - SCHEDULED: A schedule triggered this execution launch.\n - SYSTEM: A system process was responsible for launching this execution rather an individual.\n - RELAUNCH: This execution was launched with identical inputs as a previous execution.\n - CHILD_WORKFLOW: This execution was triggered by another execution.\n - RECOVERED: This execution was recovered from another execution.\n - TRIGGER: Execution was kicked off by the artifact trigger system" }, "IOStrategyDownloadMode": { "type": "string", @@ -6474,10 +6475,6 @@ "coreArtifactBindingData": { "type": "object", "properties": { - "index": { - "type": "integer", - "format": "int64" - }, "partition_key": { "type": "string" }, diff --git a/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts b/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts index 409a27d96f..bce98af489 100644 --- a/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts @@ -914,6 +914,13 @@ export enum ExecutionMetadata_ExecutionMode { * @generated from enum value: RECOVERED = 5; */ RECOVERED = 5, + + /** + * Execution was kicked off by the artifact trigger system + * + * @generated from enum value: TRIGGER = 6; + */ + TRIGGER = 6, } // Retrieve enum metadata with: proto3.getEnumType(ExecutionMetadata_ExecutionMode) proto3.util.setEnumType(ExecutionMetadata_ExecutionMode, "flyteidl.admin.ExecutionMetadata.ExecutionMode", [ @@ -923,6 +930,7 @@ proto3.util.setEnumType(ExecutionMetadata_ExecutionMode, "flyteidl.admin.Executi { no: 3, name: "RELAUNCH" }, { no: 4, name: "CHILD_WORKFLOW" }, { no: 5, name: "RECOVERED" }, + { no: 6, name: "TRIGGER" }, ]); /** diff --git a/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts b/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts index 2e03e3916f..42d063161d 100644 --- a/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts @@ -69,11 +69,6 @@ export class ArtifactKey extends Message { * @generated from message flyteidl.core.ArtifactBindingData */ export class ArtifactBindingData extends Message { - /** - * @generated from field: uint32 index = 1; - */ - index = 0; - /** * These two fields are only relevant in the partition value case * @@ -108,7 +103,6 @@ export class ArtifactBindingData extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "flyteidl.core.ArtifactBindingData"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "index", kind: "scalar", T: 13 /* ScalarType.UINT32 */ }, { no: 2, name: "partition_key", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "partition_data" }, { no: 3, name: "bind_to_time_partition", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "partition_data" }, { no: 4, name: "transform", kind: "scalar", T: 9 /* ScalarType.STRING */ }, diff --git a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go index 205ea0f303..e288f658ad 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go @@ -89,6 +89,8 @@ const ( ExecutionMetadata_CHILD_WORKFLOW ExecutionMetadata_ExecutionMode = 4 // This execution was recovered from another execution. ExecutionMetadata_RECOVERED ExecutionMetadata_ExecutionMode = 5 + // Execution was kicked off by the artifact trigger system + ExecutionMetadata_TRIGGER ExecutionMetadata_ExecutionMode = 6 ) // Enum value maps for ExecutionMetadata_ExecutionMode. @@ -100,6 +102,7 @@ var ( 3: "RELAUNCH", 4: "CHILD_WORKFLOW", 5: "RECOVERED", + 6: "TRIGGER", } ExecutionMetadata_ExecutionMode_value = map[string]int32{ "MANUAL": 0, @@ -108,6 +111,7 @@ var ( "RELAUNCH": 3, "CHILD_WORKFLOW": 4, "RECOVERED": 5, + "TRIGGER": 6, } ) @@ -2113,7 +2117,7 @@ var file_flyteidl_admin_execution_proto_rawDesc = []byte{ 0x09, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x22, 0xf8, 0x04, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x22, 0x85, 0x05, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, @@ -2146,166 +2150,167 @@ var file_flyteidl_admin_execution_proto_rawDesc = []byte{ 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x49, 0x64, 0x73, 0x22, 0x67, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x73, 0x22, 0x74, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x22, 0x56, 0x0a, 0x10, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x42, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x90, 0x08, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0b, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x50, 0x6c, - 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0f, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x39, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, - 0x73, 0x6d, 0x12, 0x58, 0x0a, 0x16, 0x72, 0x61, 0x77, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x72, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x12, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, - 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, - 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x65, 0x6e, 0x76, - 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x73, 0x52, 0x04, 0x65, - 0x6e, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, - 0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x6d, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x09, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, + 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x10, 0x06, 0x22, 0x56, 0x0a, 0x10, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, + 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x90, 0x08, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0b, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x6e, 0x12, + 0x35, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x21, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6c, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x39, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x61, + 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, + 0x58, 0x0a, 0x16, 0x72, 0x61, 0x77, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x72, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x12, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x73, 0x52, 0x04, 0x65, 0x6e, 0x76, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x61, 0x67, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x4a, 0x04, + 0x08, 0x04, 0x10, 0x05, 0x22, 0x6d, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, + 0x75, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5d, 0x0a, 0x1f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x1f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x20, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x72, 0x6c, 0x42, 0x6c, - 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, - 0x33, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x55, 0x72, 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, - 0x12, 0x3c, 0x0a, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x22, 0x88, 0x02, 0x0a, 0x20, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x72, 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x72, + 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, - 0x70, 0x52, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x8a, - 0x01, 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x1b, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x19, 0x0a, 0x17, + 0x70, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3c, 0x0a, + 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x0b, + 0x66, 0x75, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x22, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, - 0x4e, 0x0a, 0x23, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x2a, - 0x3e, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x58, 0x45, 0x43, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, 0x42, - 0xba, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, - 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, 0xaa, 0x02, 0x0e, 0x46, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xca, 0x02, 0x0e, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xe2, 0x02, 0x1a, - 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x46, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x22, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x4e, 0x0a, 0x23, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x2a, 0x3e, 0x0a, 0x0e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, + 0x0a, 0x10, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, 0x42, 0xba, 0x01, 0x0a, + 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, + 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, 0xaa, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xca, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xe2, 0x02, 0x1a, 0x46, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go b/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go index 86cc4025eb..7d692916a7 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go @@ -99,7 +99,6 @@ type ArtifactBindingData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // These two fields are only relevant in the partition value case // // Types that are assignable to PartitionData: @@ -143,13 +142,6 @@ func (*ArtifactBindingData) Descriptor() ([]byte, []int) { return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{1} } -func (x *ArtifactBindingData) GetIndex() uint32 { - if x != nil { - return x.Index - } - return 0 -} - func (m *ArtifactBindingData) GetPartitionData() isArtifactBindingData_PartitionData { if m != nil { return m.PartitionData @@ -708,102 +700,101 @@ var file_flyteidl_core_artifact_id_proto_rawDesc = []byte{ 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x74, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, - 0x16, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x13, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x24, 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x72, 0x22, 0x92, 0x02, 0x0a, 0x0a, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, - 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x74, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x46, - 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x9d, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x53, 0x0a, 0x0a, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x16, 0x62, 0x69, 0x6e, 0x64, 0x5f, + 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x6e, 0x64, 0x54, + 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x10, 0x0a, 0x0e, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x24, + 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x76, 0x61, 0x72, 0x22, 0x92, 0x02, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, + 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0a, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x53, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x0d, 0x54, 0x69, 0x6d, + 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x40, 0x0a, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, - 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, - 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0b, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x61, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x3e, 0x0a, - 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, - 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0xb5, 0x01, 0x0a, 0x11, - 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x42, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, - 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, - 0xa2, 0x02, 0x03, 0x46, 0x43, 0x58, 0xaa, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0xca, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0xe2, 0x02, 0x19, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, - 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x0a, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, + 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, + 0x61, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, + 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x49, 0x44, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, + 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0f, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x43, 0x58, + 0xaa, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x43, 0x6f, 0x72, 0x65, + 0xca, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x6f, 0x72, 0x65, + 0xe2, 0x02, 0x19, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x6f, 0x72, 0x65, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x46, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index 1adf1fa70c..191143dd89 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -4273,10 +4273,11 @@ "SYSTEM", "RELAUNCH", "CHILD_WORKFLOW", - "RECOVERED" + "RECOVERED", + "TRIGGER" ], "default": "MANUAL", - "description": "The method by which this execution was launched.\n\n - MANUAL: The default execution mode, MANUAL implies that an execution was launched by an individual.\n - SCHEDULED: A schedule triggered this execution launch.\n - SYSTEM: A system process was responsible for launching this execution rather an individual.\n - RELAUNCH: This execution was launched with identical inputs as a previous execution.\n - CHILD_WORKFLOW: This execution was triggered by another execution.\n - RECOVERED: This execution was recovered from another execution." + "description": "The method by which this execution was launched.\n\n - MANUAL: The default execution mode, MANUAL implies that an execution was launched by an individual.\n - SCHEDULED: A schedule triggered this execution launch.\n - SYSTEM: A system process was responsible for launching this execution rather an individual.\n - RELAUNCH: This execution was launched with identical inputs as a previous execution.\n - CHILD_WORKFLOW: This execution was triggered by another execution.\n - RECOVERED: This execution was recovered from another execution.\n - TRIGGER: Execution was kicked off by the artifact trigger system" }, "IOStrategyDownloadMode": { "type": "string", @@ -6474,10 +6475,6 @@ "coreArtifactBindingData": { "type": "object", "properties": { - "index": { - "type": "integer", - "format": "int64" - }, "partition_key": { "type": "string" }, diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json index 985b8acb99..ff115cad21 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json @@ -837,10 +837,6 @@ "coreArtifactBindingData": { "type": "object", "properties": { - "index": { - "type": "integer", - "format": "int64" - }, "partition_key": { "type": "string" }, diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json index 5dd386c39c..eda2434bcd 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json @@ -167,10 +167,6 @@ "coreArtifactBindingData": { "type": "object", "properties": { - "index": { - "type": "integer", - "format": "int64" - }, "partition_key": { "type": "string" }, diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 03d2ac7c2f..c876340a61 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -78,9 +78,6 @@ export namespace flyteidl { /** Properties of an ArtifactBindingData. */ interface IArtifactBindingData { - /** ArtifactBindingData index */ - index?: (number|null); - /** ArtifactBindingData partitionKey */ partitionKey?: (string|null); @@ -100,9 +97,6 @@ export namespace flyteidl { */ constructor(properties?: flyteidl.core.IArtifactBindingData); - /** ArtifactBindingData index. */ - public index: number; - /** ArtifactBindingData partitionKey. */ public partitionKey: string; @@ -13693,7 +13687,8 @@ export namespace flyteidl { SYSTEM = 2, RELAUNCH = 3, CHILD_WORKFLOW = 4, - RECOVERED = 5 + RECOVERED = 5, + TRIGGER = 6 } } diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index a97bd6951f..161d05475b 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -201,7 +201,6 @@ * Properties of an ArtifactBindingData. * @memberof flyteidl.core * @interface IArtifactBindingData - * @property {number|null} [index] ArtifactBindingData index * @property {string|null} [partitionKey] ArtifactBindingData partitionKey * @property {boolean|null} [bindToTimePartition] ArtifactBindingData bindToTimePartition * @property {string|null} [transform] ArtifactBindingData transform @@ -222,14 +221,6 @@ this[keys[i]] = properties[keys[i]]; } - /** - * ArtifactBindingData index. - * @member {number} index - * @memberof flyteidl.core.ArtifactBindingData - * @instance - */ - ArtifactBindingData.prototype.index = 0; - /** * ArtifactBindingData partitionKey. * @member {string} partitionKey @@ -292,8 +283,6 @@ ArtifactBindingData.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.index != null && message.hasOwnProperty("index")) - writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.index); if (message.partitionKey != null && message.hasOwnProperty("partitionKey")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.partitionKey); if (message.bindToTimePartition != null && message.hasOwnProperty("bindToTimePartition")) @@ -321,9 +310,6 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.index = reader.uint32(); - break; case 2: message.partitionKey = reader.string(); break; @@ -353,9 +339,6 @@ if (typeof message !== "object" || message === null) return "object expected"; var properties = {}; - if (message.index != null && message.hasOwnProperty("index")) - if (!$util.isInteger(message.index)) - return "index: integer expected"; if (message.partitionKey != null && message.hasOwnProperty("partitionKey")) { properties.partitionData = 1; if (!$util.isString(message.partitionKey)) @@ -33126,6 +33109,7 @@ case 3: case 4: case 5: + case 6: break; } if (message.principal != null && message.hasOwnProperty("principal")) @@ -33176,6 +33160,7 @@ * @property {number} RELAUNCH=3 RELAUNCH value * @property {number} CHILD_WORKFLOW=4 CHILD_WORKFLOW value * @property {number} RECOVERED=5 RECOVERED value + * @property {number} TRIGGER=6 TRIGGER value */ ExecutionMetadata.ExecutionMode = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -33185,6 +33170,7 @@ values[valuesById[3] = "RELAUNCH"] = 3; values[valuesById[4] = "CHILD_WORKFLOW"] = 4; values[valuesById[5] = "RECOVERED"] = 5; + values[valuesById[6] = "TRIGGER"] = 6; return values; })(); diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py index 918db78e56..4c2a628407 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py @@ -24,7 +24,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd6\x01\n\x16\x45xecutionCreateRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12\x31\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\x99\x01\n\x18\x45xecutionRelaunchRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\'\n\x0foverwrite_cache\x18\x04 \x01(\x08R\x0eoverwriteCacheJ\x04\x08\x02\x10\x03\"\xa8\x01\n\x17\x45xecutionRecoverRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\"U\n\x17\x45xecutionCreateResponse\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"Y\n\x1bWorkflowExecutionGetRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\xb6\x01\n\tExecution\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x31\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12:\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosureR\x07\x63losure\"`\n\rExecutionList\x12\x39\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.ExecutionR\nexecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"e\n\x0eLiteralMapBlob\x12\x37\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\x06values\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uriB\x06\n\x04\x64\x61ta\"C\n\rAbortMetadata\x12\x14\n\x05\x63\x61use\x18\x01 \x01(\tR\x05\x63\x61use\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\"\x98\x07\n\x10\x45xecutionClosure\x12>\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00R\x07outputs\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12%\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00R\nabortCause\x12\x46\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00R\rabortMetadata\x12@\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x46\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x0e\x63omputedInputs\x12<\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12:\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12]\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsR\x12stateChangeDetailsB\x0f\n\routput_result\"[\n\x0eSystemMetadata\x12+\n\x11\x65xecution_cluster\x18\x01 \x01(\tR\x10\x65xecutionCluster\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\xf8\x04\n\x11\x45xecutionMetadata\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionModeR\x04mode\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x18\n\x07nesting\x18\x03 \x01(\rR\x07nesting\x12=\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12Z\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12G\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadataR\x0esystemMetadata\x12<\n\x0c\x61rtifact_ids\x18\x12 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\"g\n\rExecutionMode\x12\n\n\x06MANUAL\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\x0c\n\x08RELAUNCH\x10\x03\x12\x12\n\x0e\x43HILD_WORKFLOW\x10\x04\x12\r\n\tRECOVERED\x10\x05\"V\n\x10NotificationList\x12\x42\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\"\x90\x08\n\rExecutionSpec\x12:\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nlaunchPlan\x12\x35\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x06inputs\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\x12H\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00R\rnotifications\x12!\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00R\ndisableAll\x12.\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12\x39\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12M\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12X\n\x16raw_output_data_config\x18\x13 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12P\n\x12\x63luster_assignment\x18\x14 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentR\x11\x63lusterAssignment\x12@\n\rinterruptible\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x16 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x17 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\x12\x12\n\x04tags\x18\x18 \x03(\tR\x04tagsB\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"m\n\x19\x45xecutionTerminateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x63\x61use\x18\x02 \x01(\tR\x05\x63\x61use\"\x1c\n\x1a\x45xecutionTerminateResponse\"]\n\x1fWorkflowExecutionGetDataRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\x88\x02\n WorkflowExecutionGetDataResponse\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\"\x8a\x01\n\x16\x45xecutionUpdateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\"\xae\x01\n\x1b\x45xecutionStateChangeDetails\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\x12;\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1c\n\tprincipal\x18\x03 \x01(\tR\tprincipal\"\x19\n\x17\x45xecutionUpdateResponse\"v\n\"WorkflowExecutionGetMetricsRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"N\n#WorkflowExecutionGetMetricsResponse\x12\'\n\x04span\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.SpanR\x04span*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\xba\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd6\x01\n\x16\x45xecutionCreateRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12\x31\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\x99\x01\n\x18\x45xecutionRelaunchRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\'\n\x0foverwrite_cache\x18\x04 \x01(\x08R\x0eoverwriteCacheJ\x04\x08\x02\x10\x03\"\xa8\x01\n\x17\x45xecutionRecoverRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\"U\n\x17\x45xecutionCreateResponse\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"Y\n\x1bWorkflowExecutionGetRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\xb6\x01\n\tExecution\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x31\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12:\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosureR\x07\x63losure\"`\n\rExecutionList\x12\x39\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.ExecutionR\nexecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"e\n\x0eLiteralMapBlob\x12\x37\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\x06values\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uriB\x06\n\x04\x64\x61ta\"C\n\rAbortMetadata\x12\x14\n\x05\x63\x61use\x18\x01 \x01(\tR\x05\x63\x61use\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\"\x98\x07\n\x10\x45xecutionClosure\x12>\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00R\x07outputs\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12%\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00R\nabortCause\x12\x46\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00R\rabortMetadata\x12@\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x46\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x0e\x63omputedInputs\x12<\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12:\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12]\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsR\x12stateChangeDetailsB\x0f\n\routput_result\"[\n\x0eSystemMetadata\x12+\n\x11\x65xecution_cluster\x18\x01 \x01(\tR\x10\x65xecutionCluster\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\x85\x05\n\x11\x45xecutionMetadata\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionModeR\x04mode\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x18\n\x07nesting\x18\x03 \x01(\rR\x07nesting\x12=\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12Z\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12G\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadataR\x0esystemMetadata\x12<\n\x0c\x61rtifact_ids\x18\x12 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\"t\n\rExecutionMode\x12\n\n\x06MANUAL\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\x0c\n\x08RELAUNCH\x10\x03\x12\x12\n\x0e\x43HILD_WORKFLOW\x10\x04\x12\r\n\tRECOVERED\x10\x05\x12\x0b\n\x07TRIGGER\x10\x06\"V\n\x10NotificationList\x12\x42\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\"\x90\x08\n\rExecutionSpec\x12:\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nlaunchPlan\x12\x35\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x06inputs\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\x12H\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00R\rnotifications\x12!\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00R\ndisableAll\x12.\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12\x39\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12M\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12X\n\x16raw_output_data_config\x18\x13 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12P\n\x12\x63luster_assignment\x18\x14 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentR\x11\x63lusterAssignment\x12@\n\rinterruptible\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x16 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x17 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\x12\x12\n\x04tags\x18\x18 \x03(\tR\x04tagsB\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"m\n\x19\x45xecutionTerminateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x63\x61use\x18\x02 \x01(\tR\x05\x63\x61use\"\x1c\n\x1a\x45xecutionTerminateResponse\"]\n\x1fWorkflowExecutionGetDataRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\x88\x02\n WorkflowExecutionGetDataResponse\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\"\x8a\x01\n\x16\x45xecutionUpdateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\"\xae\x01\n\x1b\x45xecutionStateChangeDetails\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\x12;\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1c\n\tprincipal\x18\x03 \x01(\tR\tprincipal\"\x19\n\x17\x45xecutionUpdateResponse\"v\n\"WorkflowExecutionGetMetricsRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"N\n#WorkflowExecutionGetMetricsResponse\x12\'\n\x04span\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.SpanR\x04span*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\xba\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -51,8 +51,8 @@ _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._serialized_options = b'\030\001' _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._options = None _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._serialized_options = b'\030\001' - _globals['_EXECUTIONSTATE']._serialized_start=5409 - _globals['_EXECUTIONSTATE']._serialized_end=5471 + _globals['_EXECUTIONSTATE']._serialized_start=5422 + _globals['_EXECUTIONSTATE']._serialized_end=5484 _globals['_EXECUTIONCREATEREQUEST']._serialized_start=403 _globals['_EXECUTIONCREATEREQUEST']._serialized_end=617 _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_start=620 @@ -76,29 +76,29 @@ _globals['_SYSTEMMETADATA']._serialized_start=2502 _globals['_SYSTEMMETADATA']._serialized_end=2593 _globals['_EXECUTIONMETADATA']._serialized_start=2596 - _globals['_EXECUTIONMETADATA']._serialized_end=3228 + _globals['_EXECUTIONMETADATA']._serialized_end=3241 _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_start=3125 - _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3228 - _globals['_NOTIFICATIONLIST']._serialized_start=3230 - _globals['_NOTIFICATIONLIST']._serialized_end=3316 - _globals['_EXECUTIONSPEC']._serialized_start=3319 - _globals['_EXECUTIONSPEC']._serialized_end=4359 - _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4361 - _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4470 - _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4472 - _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4500 - _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4502 - _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4595 - _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4598 - _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=4862 - _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=4865 - _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=5003 - _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=5006 - _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5180 - _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5182 - _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5207 - _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5209 - _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5327 - _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5329 - _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5407 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3241 + _globals['_NOTIFICATIONLIST']._serialized_start=3243 + _globals['_NOTIFICATIONLIST']._serialized_end=3329 + _globals['_EXECUTIONSPEC']._serialized_start=3332 + _globals['_EXECUTIONSPEC']._serialized_end=4372 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4374 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4483 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4485 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4513 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4515 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4608 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4611 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=4875 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=4878 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=5016 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=5019 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5193 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5195 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5220 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5222 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5340 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5342 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5420 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi index bee241d74d..c832b3a429 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi @@ -156,12 +156,14 @@ class ExecutionMetadata(_message.Message): RELAUNCH: _ClassVar[ExecutionMetadata.ExecutionMode] CHILD_WORKFLOW: _ClassVar[ExecutionMetadata.ExecutionMode] RECOVERED: _ClassVar[ExecutionMetadata.ExecutionMode] + TRIGGER: _ClassVar[ExecutionMetadata.ExecutionMode] MANUAL: ExecutionMetadata.ExecutionMode SCHEDULED: ExecutionMetadata.ExecutionMode SYSTEM: ExecutionMetadata.ExecutionMode RELAUNCH: ExecutionMetadata.ExecutionMode CHILD_WORKFLOW: ExecutionMetadata.ExecutionMode RECOVERED: ExecutionMetadata.ExecutionMode + TRIGGER: ExecutionMetadata.ExecutionMode MODE_FIELD_NUMBER: _ClassVar[int] PRINCIPAL_FIELD_NUMBER: _ClassVar[int] NESTING_FIELD_NUMBER: _ClassVar[int] diff --git a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py index 06e8ff7f81..cffe1484c7 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py @@ -15,7 +15,7 @@ from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/core/artifact_id.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"e\n\x0b\x41rtifactKey\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\xb9\x01\n\x13\x41rtifactBindingData\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12%\n\rpartition_key\x18\x02 \x01(\tH\x00R\x0cpartitionKey\x12\x35\n\x16\x62ind_to_time_partition\x18\x03 \x01(\x08H\x00R\x13\x62indToTimePartition\x12\x1c\n\ttransform\x18\x04 \x01(\tR\ttransformB\x10\n\x0epartition_data\"$\n\x10InputBindingData\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\"\x92\x02\n\nLabelValue\x12#\n\x0cstatic_value\x18\x01 \x01(\tH\x00R\x0bstaticValue\x12;\n\ntime_value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ttimeValue\x12Q\n\x11triggered_binding\x18\x03 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x10triggeredBinding\x12\x46\n\rinput_binding\x18\x04 \x01(\x0b\x32\x1f.flyteidl.core.InputBindingDataH\x00R\x0cinputBindingB\x07\n\x05value\"\x9d\x01\n\nPartitions\x12:\n\x05value\x18\x01 \x03(\x0b\x32$.flyteidl.core.Partitions.ValueEntryR\x05value\x1aS\n\nValueEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value:\x02\x38\x01\"@\n\rTimePartition\x12/\n\x05value\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xe5\x01\n\nArtifactID\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x39\n\npartitions\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.PartitionsR\npartitions\x12\x43\n\x0etime_partition\x18\x04 \x01(\x0b\x32\x1c.flyteidl.core.TimePartitionR\rtimePartition\"}\n\x0b\x41rtifactTag\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xf0\x01\n\rArtifactQuery\x12<\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDH\x00R\nartifactId\x12?\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactTagH\x00R\x0b\x61rtifactTag\x12\x12\n\x03uri\x18\x03 \x01(\tH\x00R\x03uri\x12>\n\x07\x62inding\x18\x04 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x07\x62indingB\x0c\n\nidentifierB\xb5\x01\n\x11\x63om.flyteidl.coreB\x0f\x41rtifactIdProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/core/artifact_id.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"e\n\x0b\x41rtifactKey\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\xa3\x01\n\x13\x41rtifactBindingData\x12%\n\rpartition_key\x18\x02 \x01(\tH\x00R\x0cpartitionKey\x12\x35\n\x16\x62ind_to_time_partition\x18\x03 \x01(\x08H\x00R\x13\x62indToTimePartition\x12\x1c\n\ttransform\x18\x04 \x01(\tR\ttransformB\x10\n\x0epartition_data\"$\n\x10InputBindingData\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\"\x92\x02\n\nLabelValue\x12#\n\x0cstatic_value\x18\x01 \x01(\tH\x00R\x0bstaticValue\x12;\n\ntime_value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ttimeValue\x12Q\n\x11triggered_binding\x18\x03 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x10triggeredBinding\x12\x46\n\rinput_binding\x18\x04 \x01(\x0b\x32\x1f.flyteidl.core.InputBindingDataH\x00R\x0cinputBindingB\x07\n\x05value\"\x9d\x01\n\nPartitions\x12:\n\x05value\x18\x01 \x03(\x0b\x32$.flyteidl.core.Partitions.ValueEntryR\x05value\x1aS\n\nValueEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value:\x02\x38\x01\"@\n\rTimePartition\x12/\n\x05value\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xe5\x01\n\nArtifactID\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x39\n\npartitions\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.PartitionsR\npartitions\x12\x43\n\x0etime_partition\x18\x04 \x01(\x0b\x32\x1c.flyteidl.core.TimePartitionR\rtimePartition\"}\n\x0b\x41rtifactTag\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xf0\x01\n\rArtifactQuery\x12<\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDH\x00R\nartifactId\x12?\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactTagH\x00R\x0b\x61rtifactTag\x12\x12\n\x03uri\x18\x03 \x01(\tH\x00R\x03uri\x12>\n\x07\x62inding\x18\x04 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x07\x62indingB\x0c\n\nidentifierB\xb5\x01\n\x11\x63om.flyteidl.coreB\x0f\x41rtifactIdProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,21 +29,21 @@ _globals['_ARTIFACTKEY']._serialized_start=115 _globals['_ARTIFACTKEY']._serialized_end=216 _globals['_ARTIFACTBINDINGDATA']._serialized_start=219 - _globals['_ARTIFACTBINDINGDATA']._serialized_end=404 - _globals['_INPUTBINDINGDATA']._serialized_start=406 - _globals['_INPUTBINDINGDATA']._serialized_end=442 - _globals['_LABELVALUE']._serialized_start=445 - _globals['_LABELVALUE']._serialized_end=719 - _globals['_PARTITIONS']._serialized_start=722 - _globals['_PARTITIONS']._serialized_end=879 - _globals['_PARTITIONS_VALUEENTRY']._serialized_start=796 - _globals['_PARTITIONS_VALUEENTRY']._serialized_end=879 - _globals['_TIMEPARTITION']._serialized_start=881 - _globals['_TIMEPARTITION']._serialized_end=945 - _globals['_ARTIFACTID']._serialized_start=948 - _globals['_ARTIFACTID']._serialized_end=1177 - _globals['_ARTIFACTTAG']._serialized_start=1179 - _globals['_ARTIFACTTAG']._serialized_end=1304 - _globals['_ARTIFACTQUERY']._serialized_start=1307 - _globals['_ARTIFACTQUERY']._serialized_end=1547 + _globals['_ARTIFACTBINDINGDATA']._serialized_end=382 + _globals['_INPUTBINDINGDATA']._serialized_start=384 + _globals['_INPUTBINDINGDATA']._serialized_end=420 + _globals['_LABELVALUE']._serialized_start=423 + _globals['_LABELVALUE']._serialized_end=697 + _globals['_PARTITIONS']._serialized_start=700 + _globals['_PARTITIONS']._serialized_end=857 + _globals['_PARTITIONS_VALUEENTRY']._serialized_start=774 + _globals['_PARTITIONS_VALUEENTRY']._serialized_end=857 + _globals['_TIMEPARTITION']._serialized_start=859 + _globals['_TIMEPARTITION']._serialized_end=923 + _globals['_ARTIFACTID']._serialized_start=926 + _globals['_ARTIFACTID']._serialized_end=1155 + _globals['_ARTIFACTTAG']._serialized_start=1157 + _globals['_ARTIFACTTAG']._serialized_end=1282 + _globals['_ARTIFACTQUERY']._serialized_start=1285 + _globals['_ARTIFACTQUERY']._serialized_end=1525 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi index 5eacdbb52f..e1e688c8e4 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi @@ -20,16 +20,14 @@ class ArtifactKey(_message.Message): def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class ArtifactBindingData(_message.Message): - __slots__ = ["index", "partition_key", "bind_to_time_partition", "transform"] - INDEX_FIELD_NUMBER: _ClassVar[int] + __slots__ = ["partition_key", "bind_to_time_partition", "transform"] PARTITION_KEY_FIELD_NUMBER: _ClassVar[int] BIND_TO_TIME_PARTITION_FIELD_NUMBER: _ClassVar[int] TRANSFORM_FIELD_NUMBER: _ClassVar[int] - index: int partition_key: str bind_to_time_partition: bool transform: str - def __init__(self, index: _Optional[int] = ..., partition_key: _Optional[str] = ..., bind_to_time_partition: bool = ..., transform: _Optional[str] = ...) -> None: ... + def __init__(self, partition_key: _Optional[str] = ..., bind_to_time_partition: bool = ..., transform: _Optional[str] = ...) -> None: ... class InputBindingData(_message.Message): __slots__ = ["var"] diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index c8caad6d24..7205966c77 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -1309,6 +1309,8 @@ pub mod execution_metadata { ChildWorkflow = 4, /// This execution was recovered from another execution. Recovered = 5, + /// Execution was kicked off by the artifact trigger system + Trigger = 6, } impl ExecutionMode { /// String value of the enum field names used in the ProtoBuf definition. @@ -1323,6 +1325,7 @@ pub mod execution_metadata { ExecutionMode::Relaunch => "RELAUNCH", ExecutionMode::ChildWorkflow => "CHILD_WORKFLOW", ExecutionMode::Recovered => "RECOVERED", + ExecutionMode::Trigger => "TRIGGER", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -1334,6 +1337,7 @@ pub mod execution_metadata { "RELAUNCH" => Some(Self::Relaunch), "CHILD_WORKFLOW" => Some(Self::ChildWorkflow), "RECOVERED" => Some(Self::Recovered), + "TRIGGER" => Some(Self::Trigger), _ => None, } } diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index 63a1d3f726..07973186b4 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -730,8 +730,6 @@ pub struct ArtifactKey { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArtifactBindingData { - #[prost(uint32, tag="1")] - pub index: u32, /// This is only relevant in the time partition case #[prost(string, tag="4")] pub transform: ::prost::alloc::string::String, diff --git a/flyteidl/protos/flyteidl/admin/execution.proto b/flyteidl/protos/flyteidl/admin/execution.proto index f3dbad3fb3..a46d6efdd3 100644 --- a/flyteidl/protos/flyteidl/admin/execution.proto +++ b/flyteidl/protos/flyteidl/admin/execution.proto @@ -221,6 +221,9 @@ message ExecutionMetadata { // This execution was recovered from another execution. RECOVERED = 5; + + // Execution was kicked off by the artifact trigger system + TRIGGER = 6; } ExecutionMode mode = 1; diff --git a/flyteidl/protos/flyteidl/core/artifact_id.proto b/flyteidl/protos/flyteidl/core/artifact_id.proto index 11efd83160..fe887e336a 100644 --- a/flyteidl/protos/flyteidl/core/artifact_id.proto +++ b/flyteidl/protos/flyteidl/core/artifact_id.proto @@ -18,8 +18,6 @@ message ArtifactKey { // Only valid for triggers message ArtifactBindingData { - uint32 index = 1; - // These two fields are only relevant in the partition value case oneof partition_data { string partition_key = 2; From eaac04d0a3b72a3182500642478d607b79de0885 Mon Sep 17 00:00:00 2001 From: Dan Rammer Date: Wed, 28 Feb 2024 08:40:14 -0600 Subject: [PATCH 06/76] not setting IsParent on ArrayNode unless new eventing scheme (#4967) Signed-off-by: Daniel Rammer --- flyteadmin/pkg/repositories/transformers/node_execution.go | 2 +- flytepropeller/pkg/controller/nodes/transformers.go | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/flyteadmin/pkg/repositories/transformers/node_execution.go b/flyteadmin/pkg/repositories/transformers/node_execution.go index 59ea230f7e..817f53290a 100644 --- a/flyteadmin/pkg/repositories/transformers/node_execution.go +++ b/flyteadmin/pkg/repositories/transformers/node_execution.go @@ -284,7 +284,7 @@ func UpdateNodeExecutionModel( // In the case of dynamic nodes reporting DYNAMIC_RUNNING, the IsParent and IsDynamic bits will be set for this event. // Update the node execution metadata accordingly. - if request.Event.IsParent || request.Event.IsDynamic { + if request.Event.IsParent || request.Event.IsDynamic || request.Event.IsArray { var nodeExecutionMetadata admin.NodeExecutionMetaData if len(nodeExecutionModel.NodeExecutionMetadata) > 0 { if err := proto.Unmarshal(nodeExecutionModel.NodeExecutionMetadata, &nodeExecutionMetadata); err != nil { diff --git a/flytepropeller/pkg/controller/nodes/transformers.go b/flytepropeller/pkg/controller/nodes/transformers.go index eb96a38d9c..b034c5b90f 100644 --- a/flytepropeller/pkg/controller/nodes/transformers.go +++ b/flytepropeller/pkg/controller/nodes/transformers.go @@ -178,8 +178,10 @@ func ToNodeExecutionEvent(nodeExecID *core.NodeExecutionIdentifier, if node.GetKind() == v1alpha1.NodeKindWorkflow && node.GetWorkflowNode() != nil && node.GetWorkflowNode().GetSubWorkflowRef() != nil { nev.IsParent = true } else if node.GetKind() == v1alpha1.NodeKindArray { - nev.IsParent = true nev.IsArray = true + if config.GetConfig().ArrayNodeEventVersion == 1 { + nev.IsParent = true + } } else if dynamicNodePhase != v1alpha1.DynamicNodePhaseNone { nev.IsDynamic = true if nev.GetTaskNodeMetadata() != nil && nev.GetTaskNodeMetadata().DynamicWorkflow != nil { From d0d1b7f14ad0dee7f74e243e4ab6f5f768e62474 Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Wed, 28 Feb 2024 10:10:12 -0600 Subject: [PATCH 07/76] Add failure node example from flytesnacks #1328 (#4958) * add failure node example from https://github.com/flyteorg/flytesnacks/pull/1328 Signed-off-by: nikki everett * fix formatting and index toc Signed-off-by: nikki everett * copy edits Signed-off-by: nikki everett --------- Signed-off-by: nikki everett --- .../development_lifecycle/failure_node.md | 89 +++++++++++++++++++ .../user_guide/development_lifecycle/index.md | 1 + 2 files changed, 90 insertions(+) create mode 100644 docs/user_guide/development_lifecycle/failure_node.md diff --git a/docs/user_guide/development_lifecycle/failure_node.md b/docs/user_guide/development_lifecycle/failure_node.md new file mode 100644 index 0000000000..61756e4a8a --- /dev/null +++ b/docs/user_guide/development_lifecycle/failure_node.md @@ -0,0 +1,89 @@ +(failure_node)= +# Failure node + +```{eval-rst} + .. tags:: FailureNode, Intermediate +``` + +The failure node feature enables you to designate a specific node to execute in the event of a failure within your workflow. + +For example, a workflow involves creating a cluster at the beginning, followed by the execution of tasks, and concludes with the deletion of the cluster once all tasks are completed. However, if any task within the workflow encounters an error, flyte will abort the entire workflow and won’t delete the cluster. This poses a challenge if you still need to clean up the cluster even in a task failure. + +To address this issue, you can add a failure node into your workflow. This ensures that critical actions, such as deleting the cluster, are executed even in the event of failures occurring throughout the workflow execution: + +```python +from flytekit import WorkflowFailurePolicy, task, workflow + + +@task +def create_cluster(name: str): + print(f"Creating cluster: {name}") + +``` + +Create a task that will fail during execution: + +```python +@task +def t1(a: int, b: str): + print(f"{a} {b}") + raise ValueError("Fail!") + + +@task +def delete_cluster(name: str): + print(f"Deleting cluster {name}") +``` + +Create a task that will be executed if any of the tasks in the workflow fail: + +```python +@task +def clean_up(name: str): + print(f"Cleaning up cluster {name}") + +``` + +Specify the `on_failure` to a cleanup task. This task will be executed if any of the tasks in the workflow fail: + + +:::{note} +The input of `clean_up` should be the exact same as the input of the workflow. +::: + +```python +@workflow(on_failure=clean_up) +def subwf(name: str): + c = create_cluster(name=name) + t = t1(a=1, b="2") + d = delete_cluster(name=name) + c >> t >> d +``` + +By setting the failure policy to `FAIL_AFTER_EXECUTABLE_NODES_COMPLETE` to ensure that the `wf1` is executed even if the subworkflow fails. In this case, both parent and child workflows will fail, resulting in the `clean_up` task being executed twice: + +```python +@workflow(on_failure=clean_up, failure_policy=WorkflowFailurePolicy.FAIL_AFTER_EXECUTABLE_NODES_COMPLETE) +def wf1(name: str = "my_cluster"): + c = create_cluster(name=name) + subwf(name="another_cluster") + t = t1(a=1, b="2") + d = delete_cluster(name=name) + c >> t >> d + + +@workflow +def clean_up_wf(name: str): + return clean_up(name=name) +``` + +You can also set the `on_failure` to a workflow. This workflow will be executed if any of the tasks in the workflow fail: + +```python +@workflow(on_failure=clean_up_wf) +def wf2(name: str = "my_cluster"): + c = create_cluster(name=name) + t = t1(a=1, b="2") + d = delete_cluster(name=name) + c >> t >> d +``` diff --git a/docs/user_guide/development_lifecycle/index.md b/docs/user_guide/development_lifecycle/index.md index 693740c661..8c21abc291 100644 --- a/docs/user_guide/development_lifecycle/index.md +++ b/docs/user_guide/development_lifecycle/index.md @@ -13,6 +13,7 @@ private_images caching cache_serializing decks +failure_node creating_a_new_project running_tasks running_workflows From 971c5ad4b13d2a532cea67539456d8aa67e1f949 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Wed, 28 Feb 2024 10:18:03 -0800 Subject: [PATCH 08/76] [DOC] Update agent API (#4943) * [DOC] Update agnet API Signed-off-by: Kevin Su * nit Signed-off-by: Kevin Su * nit Signed-off-by: Kevin Su * Apply suggestions from code review Co-authored-by: Future-Outlier Signed-off-by: Nikki Everett --------- Signed-off-by: Kevin Su Signed-off-by: Nikki Everett Signed-off-by: nikki everett Co-authored-by: Nikki Everett Co-authored-by: Future-Outlier Co-authored-by: nikki everett --- docs/flyte_agents/developing_agents.md | 79 +++++++++++---------- docs/flyte_agents/testing_agents_locally.md | 41 +++++++++-- 2 files changed, 77 insertions(+), 43 deletions(-) diff --git a/docs/flyte_agents/developing_agents.md b/docs/flyte_agents/developing_agents.md index 688f241852..ba114be6c7 100644 --- a/docs/flyte_agents/developing_agents.md +++ b/docs/flyte_agents/developing_agents.md @@ -31,67 +31,70 @@ While agents can be written in any programming language, we currently only suppo ## Async agent interface specification -To create a new async agent, extend the `AgentBase` class in the `flytekit.backend` module and implement `create`, `get`, and `delete` methods. All calls must be idempotent. +To create a new async agent, extend the `AsyncAgentBase` and implement `create`, `get`, and `delete` methods. These methods must be idempotent. - `create`: This method is used to initiate a new job. Users have the flexibility to use gRPC, REST, or an SDK to create a job. - `get`: This method retrieves the job resource (jobID or output literal) associated with the task, such as a BigQuery job ID or Databricks task ID. - `delete`: Invoking this method will send a request to delete the corresponding job. ```python -from flytekit.extend.backend.base_agent import AgentBase, AgentRegistry +from flytekit.extend.backend.base_agent import AsyncAgentBase, AgentRegistry, Resource +from flytekit import StructuredDataset from dataclasses import dataclass -import requests @dataclass -class Metadata: - # FlytePropeller will pass the metadata specified in this class to the agent. - # For example, if you add job_id to the metadata, the agent will use the job_id to get the job status. - # If you add s3 file path, the agent will check if the file exists. +class BigQueryMetadata(ResourceMeta): + """ + This is the metadata for the job. For example, the id of the job. + """ job_id: str -class CustomAsyncAgent(AsyncAgentBase): - def __init__(self, task_type: str): - # Each agent should have a unique task type. - # The Flyte agent service will use the task type - # to find the corresponding agent. - self._task_type = task_type +class BigQueryAgent(AsyncAgentBase): + def __init__(self): + super().__init__(task_type_name="bigquery", metadata_type=BigQueryMetadata) def create( self, - output_prefix: str, task_template: TaskTemplate, inputs: typing.Optional[LiteralMap] = None, **kwargs, - ) -> TaskCreateResponse: - # 1. Submit the task to the external service (BigQuery, DataBricks, etc.) - # 2. Create metadata for the task, such as jobID. - # 3. Return the metadata, serialized to bytes. - res = requests.post(url, json=data) - return CreateTaskResponse(resource_meta=json.dumps(asdict(Metadata(job_id=str(res.job_id)))).encode("utf-8")) - - def get(self, resource_meta: bytes, **kwargs) -> TaskGetResponse: - # 1. Deserialize the metadata. - # 2. Use the metadata to get the job status. - # 3. Return the job status. - metadata = Metadata(**json.loads(resource_meta.decode("utf-8"))) - res = requests.get(url, json={"job_id": metadata.job_id}) - return GetTaskResponse(resource=Resource(state=res.state) - - def delete(self, resource_meta: bytes, **kwargs) -> TaskDeleteResponse: - # 1. Deserialize the metadata. - # 2. Use the metadata to delete the job. - metadata = Metadata(**json.loads(resource_meta.decode("utf-8"))) - requests.delete(url, json={"job_id": metadata.job_id}) - return DeleteTaskResponse() + ) -> BigQueryMetadata: + # Submit the job to BigQuery here. + return BigQueryMetadata(job_id=job_id, outputs={"o0": StructuredDataset(uri=result_table_uri))} + + def get(self, resource_meta: BigQueryMetadata, **kwargs) -> Resource: + # Get the job status from BigQuery. + return Resource(phase=res.phase) + + def delete(self, resource_meta: BigQueryMetadata, **kwargs): + # Delete the job from BigQuery. + ... # To register the custom agent -AgentRegistry.register(CustomAsyncAgent()) +AgentRegistry.register(BigQueryAgent()) ``` For an example implementation, see the [BigQuery agent](https://github.com/flyteorg/flytekit/blob/master/plugins/flytekit-bigquery/flytekitplugins/bigquery/agent.py#L43). -```{note} +## Sync agent interface specification + +To create a new sync agent, extend the `SyncAgentBase` class and implement a `do` method. This method must be idempotent. + +- `do`: This method is used to execute the synchronous task, and the worker in Flyte will be blocked until the method returns. + +```python +from flytekit.extend.backend.base_agent import SyncAgentBase, AgentRegistry, Resource + +class OpenAIAgent(SyncAgentBase): + def __init__(self): + super().__init__(task_type_name="openai") -To contribute + def do(self, task_template: TaskTemplate, inputs: Optional[LiteralMap], **kwargs) -> Resource: + # Convert the literal map to python value. + ctx = FlyteContextManager.current_context() + python_inputs = TypeEngine.literal_map_to_kwargs(ctx, inputs, literal_types=task_template.interface.inputs) + # Call the OpenAI API here. + return Resource(phase=phaseTaskExecution.SUCCEEDED, outputs={"o0": "Hello world!"}) +AgentRegistry.register(OpenAIAgent()) ``` diff --git a/docs/flyte_agents/testing_agents_locally.md b/docs/flyte_agents/testing_agents_locally.md index 7874d0bca1..2d7b98ba3e 100644 --- a/docs/flyte_agents/testing_agents_locally.md +++ b/docs/flyte_agents/testing_agents_locally.md @@ -15,7 +15,7 @@ To test an agent locally, create a class for the agent task that inherits from [ ## BigQuery example -To test the BigQuery example, copy the following code to a file called `wf.py`, modifying as needed. +To test the BigQuery agent, copy the following code to a file called `bigquery_task.py`, modifying as needed. ```{note} @@ -24,14 +24,15 @@ For example, you need to set the `GOOGLE_APPLICATION_CREDENTIALS` environment va ``` +Add `AsyncAgentExecutorMixin` to this class to tell flytekit to use the agent to run the task. ```python class BigQueryTask(AsyncAgentExecutorMixin, SQLTask[BigQueryConfig]): def __init__(self, name: str, **kwargs): ... +``` - -# Instantiate the task class. Flytekit will automatically call the agent -# to `create`, `get`, or `delete` the job. +Flytekit will automatically use the agent to run the task in the local execution. +```python bigquery_doge_coin = BigQueryTask( name=f"bigquery.doge_coin", inputs=kwtypes(version=int), @@ -44,5 +45,35 @@ bigquery_doge_coin = BigQueryTask( You can run the above example task locally and test the agent with the following command: ```bash -pyflyte run wf.py bigquery_doge_coin --version 10 +pyflyte run bigquery_task.py bigquery_doge_coin --version 10 +``` + +## Databricks example +To test the Databricks agent, copy the following code to a file called `databricks_task.py`, modifying as needed. + +```python +@task(task_config=Databricks(...)) +def hello_spark(partitions: int) -> float: + print("Starting Spark with Partitions: {}".format(partitions)) + + n = 100000 * partitions + sess = flytekit.current_context().spark_session + count = ( + sess.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add) + ) + pi_val = 4.0 * count / n + print("Pi val is :{}".format(pi_val)) + return pi_val +``` + +To execute the Spark task on the agent, you must configure the `raw-output-data-prefix` with a remote path. +This configuration ensures that flytekit transfers the input data to the blob storage and allows the Spark job running on Databricks to access the input data directly from the designated bucket. + +```{note} +The Spark task will run locally if the `raw-output-data-prefix` is not set. +``` + +```bash +pyflyte run --raw-output-data-prefix s3://my-s3-bucket/databricks databricks_task.py hello_spark ``` + From e1d5a7ae3de8dba381661dd8c31721387380af30 Mon Sep 17 00:00:00 2001 From: Yee Hing Tong Date: Wed, 28 Feb 2024 15:44:34 -0800 Subject: [PATCH 09/76] add mux option for application/json (#4976) * add mux option for application/json Signed-off-by: Yee Hing Tong * Emit unpopulated and default values Signed-off-by: Eduardo Apolinario * Add comment Signed-off-by: Eduardo Apolinario --------- Signed-off-by: Yee Hing Tong Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- flyteadmin/pkg/server/service.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/flyteadmin/pkg/server/service.go b/flyteadmin/pkg/server/service.go index 07eb193883..d51f1c4f31 100644 --- a/flyteadmin/pkg/server/service.go +++ b/flyteadmin/pkg/server/service.go @@ -4,6 +4,7 @@ import ( "context" "crypto/tls" "fmt" + "google.golang.org/protobuf/encoding/protojson" "net" "net/http" "strings" @@ -201,6 +202,19 @@ func newHTTPServer(ctx context.Context, pluginRegistry *plugins.Registry, cfg *c var gwmuxOptions = make([]runtime.ServeMuxOption, 0) // This option means that http requests are served with protobufs, instead of json. We always want this. gwmuxOptions = append(gwmuxOptions, runtime.WithMarshalerOption("application/octet-stream", &runtime.ProtoMarshaller{})) + // grpc-gateway v2 switched the marshaller used to encode JSON messages in 2.5.0. This changed the + // default encoding from snake_case (the v1 behavior) to lowerCamelCase, which is the case recommended + // by protobuf. However the protobuf docs do mention that JSON printers may provide a way to use + // the proto names as field names instead. This option in grpc-gateway v2 does just that, + // by setting a custom marshaler. We are enabling this narrowly however, by applying it only for + // the application/json content type. + gwmuxOptions = append(gwmuxOptions, runtime.WithMarshalerOption("application/json", &runtime.JSONPb{ + MarshalOptions: protojson.MarshalOptions{ + UseProtoNames: true, + EmitUnpopulated: true, + EmitDefaultValues: true, + }, + })) // This option sets subject in the user info response gwmuxOptions = append(gwmuxOptions, runtime.WithForwardResponseOption(auth.GetUserInfoForwardResponseHandler())) From 2cc916986316cccc8a27929efd831ad1f01af88e Mon Sep 17 00:00:00 2001 From: Chi-Sheng Liu Date: Thu, 29 Feb 2024 08:40:19 +0800 Subject: [PATCH 10/76] docs(troubleshooting): Add spark task execution troubleshooting (#4974) When executing spark test, if the spark plugin enabled in the config file, then it will show 'JavaPackage' object is not callable error. Which is difficult to know from this error message, so add it to the troubleshooting guide. Resolves: flyteorg/flyte#4826 Signed-off-by: Chi-Sheng Liu --- docs/community/troubleshoot.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/community/troubleshoot.rst b/docs/community/troubleshoot.rst index b4f6c271d4..1228b5f5a0 100644 --- a/docs/community/troubleshoot.rst +++ b/docs/community/troubleshoot.rst @@ -133,3 +133,21 @@ Example output: $ 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 From 1caa754fa81fdfca7a11d1a74c7ca2fa3a2ecafb Mon Sep 17 00:00:00 2001 From: Yee Hing Tong Date: Wed, 28 Feb 2024 19:48:09 -0800 Subject: [PATCH 11/76] also run dep update (#4977) Signed-off-by: Yee Hing Tong --- docker/sandbox-bundled/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/sandbox-bundled/Makefile b/docker/sandbox-bundled/Makefile index 8946886840..d2ec89de8b 100644 --- a/docker/sandbox-bundled/Makefile +++ b/docker/sandbox-bundled/Makefile @@ -22,7 +22,7 @@ dep_update: helm dependency update ../../charts/flyte-sandbox .PHONY: manifests -manifests: +manifests: dep_update mkdir -p manifests kustomize build \ --enable-helm \ From a2a63eb893bdff3c2d1a01242d0d25b73f287b1f Mon Sep 17 00:00:00 2001 From: Flyte Bot Date: Wed, 28 Feb 2024 21:24:39 -0800 Subject: [PATCH 12/76] Update Flyte components (#4980) Signed-off-by: Flyte-Bot --------- Signed-off-by: Flyte-Bot Co-authored-by: wild-endeavor --- CHANGELOG/CHANGELOG-v1.11.0-b0.md | 3 ++ charts/flyte-binary/README.md | 2 +- charts/flyte-binary/values.yaml | 2 +- charts/flyte-core/README.md | 14 ++++---- charts/flyte-core/values.yaml | 12 +++---- charts/flyte/README.md | 18 +++++----- charts/flyte/values.yaml | 12 +++---- charts/flyteagent/README.md | 2 +- charts/flyteagent/values.yaml | 2 +- .../agent/flyte_agent_helm_generated.yaml | 2 +- .../flyte_aws_scheduler_helm_generated.yaml | 32 ++++++++--------- deployment/eks/flyte_generated.yaml | 24 ++++++------- .../flyte_helm_controlplane_generated.yaml | 22 ++++++------ .../eks/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/eks/flyte_helm_generated.yaml | 36 +++++++++---------- .../flyte_helm_controlplane_generated.yaml | 22 ++++++------ .../gcp/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/gcp/flyte_helm_generated.yaml | 36 +++++++++---------- .../flyte_sandbox_binary_helm_generated.yaml | 4 +-- deployment/sandbox/flyte_helm_generated.yaml | 36 +++++++++---------- .../manifests/complete-agent.yaml | 10 +++--- .../sandbox-bundled/manifests/complete.yaml | 8 ++--- docker/sandbox-bundled/manifests/dev.yaml | 4 +-- docs/conf.py | 2 +- .../generated/flytepropeller_config.rst | 19 ++++++++-- kustomize/overlays/eks/kustomization.yaml | 10 +++--- 26 files changed, 189 insertions(+), 173 deletions(-) create mode 100644 CHANGELOG/CHANGELOG-v1.11.0-b0.md 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/charts/flyte-binary/README.md b/charts/flyte-binary/README.md index 9d1c3ddb54..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"` | | +| 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/values.yaml b/charts/flyte-binary/values.yaml index 3b95aed614..0da15a1855 100644 --- a/charts/flyte-binary/values.yaml +++ b/charts/flyte-binary/values.yaml @@ -159,7 +159,7 @@ configuration: # repository CoPilot sidecar image repository repository: cr.flyte.org/flyteorg/flytecopilot # FLYTECOPILOT_IMAGE # tag CoPilot sidecar image tag - tag: v1.10.7 # FLYTECOPILOT_TAG + tag: v1.11.0-b0 # FLYTECOPILOT_TAG # agentService Flyte Agent configuration agentService: defaultAgent: diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index ea4435945d..73b5fceae5 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -94,8 +94,8 @@ 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","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration | -| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.10.7","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). | @@ -129,7 +129,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"` | 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 | @@ -164,7 +164,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"` | | +| 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 | @@ -201,7 +201,7 @@ helm install gateway bitnami/contour -n flyte | 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 | @@ -225,7 +225,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"` | | +| 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 | @@ -255,7 +255,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"` | 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 | diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml index 36e2b87eaa..c104af3e75 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -16,7 +16,7 @@ flyteadmin: image: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE - tag: v1.10.7 # FLYTEADMIN_TAG + tag: v1.11.0-b0 # FLYTEADMIN_TAG pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables # @@ -142,7 +142,7 @@ flytescheduler: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.10.7 # FLYTESCHEDULER_TAG + tag: v1.11.0-b0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -208,7 +208,7 @@ datacatalog: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.10.7 # DATACATALOG_TAG + tag: v1.11.0-b0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -296,7 +296,7 @@ flytepropeller: image: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE - tag: v1.10.7 # FLYTEPROPELLER_TAG + tag: v1.11.0-b0 # FLYTEPROPELLER_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment resources: @@ -379,7 +379,7 @@ flyteconsole: image: # -- Docker image for Flyteconsole deployment repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE - tag: v1.10.2 # FLYTECONSOLE_TAG + tag: v1.10.3 # FLYTECONSOLE_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flyteconsole deployment resources: @@ -725,7 +725,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 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/charts/flyte/README.md b/charts/flyte/README.md index 59113be64b..0bce53a417 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -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","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"},"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"},"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"},"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"},"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-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","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-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","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","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 | @@ -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"` | 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"` | 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"` | 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"` | 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 1044202e70..aecfce362f 100755 --- a/charts/flyte/values.yaml +++ b/charts/flyte/values.yaml @@ -16,7 +16,7 @@ flyte: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE # -- Docker image tag - tag: v1.10.7 # FLYTEADMIN_TAG + tag: v1.11.0-b0 # FLYTEADMIN_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables @@ -84,7 +84,7 @@ flyte: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.10.7 # FLYTESCHEDULER_TAG + tag: v1.11.0-b0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -129,7 +129,7 @@ flyte: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.10.7 # DATACATALOG_TAG + tag: v1.11.0-b0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -178,7 +178,7 @@ flyte: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE # -- Docker image tag - tag: v1.10.7 # FLYTEPROPELLER_TAG + tag: v1.11.0-b0 # FLYTEPROPELLER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment @@ -223,7 +223,7 @@ flyte: # -- Docker image for Flyteconsole deployment 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 +471,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 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/charts/flyteagent/README.md b/charts/flyteagent/README.md index cd482d1a20..f889c095bd 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.10.7"` | Docker image tag | | nameOverride | string | `""` | | | nodeSelector | object | `{}` | nodeSelector for flyteagent deployment | | podAnnotations | object | `{}` | Annotations for flyteagent pods | diff --git a/charts/flyteagent/values.yaml b/charts/flyteagent/values.yaml index 508caf1984..aee84dc2b2 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.10.7 # FLYTEAGENT_TAG # -- Docker image pull policy pullPolicy: IfNotPresent ports: diff --git a/deployment/agent/flyte_agent_helm_generated.yaml b/deployment/agent/flyte_agent_helm_generated.yaml index de54cfda22..46762b4cff 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.10.7" imagePullPolicy: "IfNotPresent" name: flyteagent volumeMounts: diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml index 324828a966..c1865eeb87 100644 --- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml +++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml @@ -429,7 +429,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -868,7 +868,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -889,7 +889,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -907,7 +907,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -924,7 +924,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -951,7 +951,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1056,7 +1056,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1112,7 +1112,7 @@ spec: 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: @@ -1186,7 +1186,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1204,7 +1204,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1267,7 +1267,7 @@ spec: template: metadata: annotations: - configChecksum: "305d6f36301e10e952435f597dbe6700381a43c496a3be2cca60c175439fc9a" + configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1293,7 +1293,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1347,9 +1347,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.10.7 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "305d6f36301e10e952435f597dbe6700381a43c496a3be2cca60c175439fc9a" + configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" spec: securityContext: fsGroup: 65534 @@ -1361,7 +1361,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1388,7 +1388,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_generated.yaml b/deployment/eks/flyte_generated.yaml index d12576c3af..b4b8f63584 100644 --- a/deployment/eks/flyte_generated.yaml +++ b/deployment/eks/flyte_generated.yaml @@ -8640,7 +8640,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: cr.flyte.org/flyteorg/datacatalog:v1.10.7 + image: cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0 imagePullPolicy: IfNotPresent name: datacatalog ports: @@ -8663,7 +8663,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: cr.flyte.org/flyteorg/datacatalog:v1.10.7 + image: cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0 imagePullPolicy: IfNotPresent name: run-migrations volumeMounts: @@ -8724,7 +8724,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7 + image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0 imagePullPolicy: IfNotPresent name: webhook volumeMounts: @@ -8751,7 +8751,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7 + image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0 imagePullPolicy: IfNotPresent name: generate-secrets volumeMounts: @@ -8799,7 +8799,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 imagePullPolicy: IfNotPresent name: flyteadmin ports: @@ -8846,7 +8846,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 imagePullPolicy: IfNotPresent name: run-migrations volumeMounts: @@ -8863,7 +8863,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 imagePullPolicy: IfNotPresent name: seed-projects volumeMounts: @@ -8877,7 +8877,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 imagePullPolicy: IfNotPresent name: sync-cluster-resources volumeMounts: @@ -8897,7 +8897,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 imagePullPolicy: IfNotPresent name: generate-secrets volumeMounts: @@ -8951,7 +8951,7 @@ spec: - envFrom: - configMapRef: name: flyte-console-config - image: cr.flyte.org/flyteorg/flyteconsole:v1.10.2 + image: cr.flyte.org/flyteorg/flyteconsole:v1.10.3 name: flyteconsole ports: - containerPort: 8080 @@ -9002,7 +9002,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flytepropeller:v1.10.7 + image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0 imagePullPolicy: IfNotPresent name: flytepropeller ports: @@ -9270,7 +9270,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: cr.flyte.org/flyteorg/flyteadmin:v1.10.7 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 imagePullPolicy: IfNotPresent name: sync-cluster-resources volumeMounts: diff --git a/deployment/eks/flyte_helm_controlplane_generated.yaml b/deployment/eks/flyte_helm_controlplane_generated.yaml index 166446ce79..1ae984cf69 100644 --- a/deployment/eks/flyte_helm_controlplane_generated.yaml +++ b/deployment/eks/flyte_helm_controlplane_generated.yaml @@ -574,7 +574,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -595,7 +595,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -613,7 +613,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -630,7 +630,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -657,7 +657,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -762,7 +762,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -818,7 +818,7 @@ spec: 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: @@ -892,7 +892,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -910,7 +910,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -993,7 +993,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1013,7 +1013,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml index b6dd553ba4..510ef5c3c8 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 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -427,7 +427,7 @@ spec: template: metadata: annotations: - configChecksum: "305d6f36301e10e952435f597dbe6700381a43c496a3be2cca60c175439fc9a" + configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -453,7 +453,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -507,9 +507,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.10.7 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "305d6f36301e10e952435f597dbe6700381a43c496a3be2cca60c175439fc9a" + configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" spec: securityContext: fsGroup: 65534 @@ -521,7 +521,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -548,7 +548,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml index 94743f22aa..4cd67923ba 100644 --- a/deployment/eks/flyte_helm_generated.yaml +++ b/deployment/eks/flyte_helm_generated.yaml @@ -460,7 +460,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -899,7 +899,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -920,7 +920,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -938,7 +938,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -955,7 +955,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -982,7 +982,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1087,7 +1087,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1143,7 +1143,7 @@ spec: 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: @@ -1217,7 +1217,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1235,7 +1235,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1318,7 +1318,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1338,7 +1338,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1397,7 +1397,7 @@ spec: template: metadata: annotations: - configChecksum: "305d6f36301e10e952435f597dbe6700381a43c496a3be2cca60c175439fc9a" + configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1423,7 +1423,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1477,9 +1477,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.10.7 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "305d6f36301e10e952435f597dbe6700381a43c496a3be2cca60c175439fc9a" + configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" spec: securityContext: fsGroup: 65534 @@ -1491,7 +1491,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1518,7 +1518,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_controlplane_generated.yaml b/deployment/gcp/flyte_helm_controlplane_generated.yaml index 38dfe201dd..0f1ebf1381 100644 --- a/deployment/gcp/flyte_helm_controlplane_generated.yaml +++ b/deployment/gcp/flyte_helm_controlplane_generated.yaml @@ -589,7 +589,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -610,7 +610,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -628,7 +628,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -645,7 +645,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -672,7 +672,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -777,7 +777,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -833,7 +833,7 @@ spec: 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: @@ -907,7 +907,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -925,7 +925,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1008,7 +1008,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1028,7 +1028,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml index 4ba186eb48..59a0fca4f6 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 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -435,7 +435,7 @@ spec: template: metadata: annotations: - configChecksum: "74e9568d4bf785885a1103d7c39c1b2ede648fc59f8f714c28ba6578e5d5ca1" + configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -460,7 +460,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -514,9 +514,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.10.7 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "74e9568d4bf785885a1103d7c39c1b2ede648fc59f8f714c28ba6578e5d5ca1" + configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" spec: securityContext: fsGroup: 65534 @@ -528,7 +528,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -555,7 +555,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml index 659babf838..f220536479 100644 --- a/deployment/gcp/flyte_helm_generated.yaml +++ b/deployment/gcp/flyte_helm_generated.yaml @@ -473,7 +473,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -922,7 +922,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -943,7 +943,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -961,7 +961,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -978,7 +978,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -1005,7 +1005,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1110,7 +1110,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1166,7 +1166,7 @@ spec: 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: @@ -1240,7 +1240,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1258,7 +1258,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1341,7 +1341,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1361,7 +1361,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1420,7 +1420,7 @@ spec: template: metadata: annotations: - configChecksum: "74e9568d4bf785885a1103d7c39c1b2ede648fc59f8f714c28ba6578e5d5ca1" + configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1445,7 +1445,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1499,9 +1499,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.10.7 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "74e9568d4bf785885a1103d7c39c1b2ede648fc59f8f714c28ba6578e5d5ca1" + configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" spec: securityContext: fsGroup: 65534 @@ -1513,7 +1513,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1540,7 +1540,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml b/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml index a8c637e0a3..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" + 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: da323d1ce8e93e67668afc8b940ef2ee926464950f41ef618ed65b7ca1c42ada + checksum/configuration: 882c31ec18bdac7aa4f1a9057f9e549b1307b60b5d76839dfb6bc526958bee57 checksum/configuration-secret: d5d93f4e67780b21593dc3799f0f6682aab0765e708e4020939975d14d44f929 checksum/cluster-resource-templates: 7dfa59f3d447e9c099b8f8ffad3af466fecbc9cf9f8c97295d9634254a55d4ae spec: diff --git a/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index 7417c9bdf2..bfd40edd37 100644 --- a/deployment/sandbox/flyte_helm_generated.yaml +++ b/deployment/sandbox/flyte_helm_generated.yaml @@ -585,7 +585,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.10.7 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -6705,7 +6705,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -6725,7 +6725,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -6742,7 +6742,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -6758,7 +6758,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -6785,7 +6785,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -6880,7 +6880,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.10.7" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -6933,7 +6933,7 @@ spec: 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: @@ -7005,7 +7005,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -7022,7 +7022,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.10.7" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -7095,7 +7095,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -7114,7 +7114,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.10.7" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -7170,7 +7170,7 @@ spec: template: metadata: annotations: - configChecksum: "348a3f88031dd95422276b1d3162236cfae3cf720040a8465668611ca6b1948" + configChecksum: "8d992b3c2174350d363ddbf3b1ac0d7f8017a546ec794a9551a4f2b1f4e6ea7" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -7195,7 +7195,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -7242,9 +7242,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.10.7 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "348a3f88031dd95422276b1d3162236cfae3cf720040a8465668611ca6b1948" + configChecksum: "8d992b3c2174350d363ddbf3b1ac0d7f8017a546ec794a9551a4f2b1f4e6ea7" spec: securityContext: fsGroup: 65534 @@ -7256,7 +7256,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -7283,7 +7283,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.10.7" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 85eb73622d..6de7c86be9 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -468,7 +468,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.10.7" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0" k8s-array: logs: config: @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: ZzlBSjNLWDhDcTdqZ05xUg== + haSharedSecret: UDI2NklEa2dSNUhNeTFteA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1246,7 +1246,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: 475406181c84abf6c22db03375314bebedd360d52cc923e32579238d93075b2b + checksum/configuration: 9ab632fe7ac69bcf63d6965a44986a05e23798beda4a3175d1601e61057a9832 checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 883bf21ceceed4d8d6b24949d400a6df8eb33b71e5056782a702fcf3baaa7f01 + checksum/secret: d57403ae8ea0fce27bceda25f6af446fe51652e99e95a07fddae387006ee29f1 labels: app: docker-registry release: flyte-sandbox @@ -1755,7 +1755,7 @@ 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.10.7 imagePullPolicy: IfNotPresent name: flyteagent ports: diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 8bd0ca2b00..b56e367ac4 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -457,7 +457,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.10.7" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0" k8s-array: logs: config: @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: aGtXbUVsYnhhcVRRS0RwRA== + haSharedSecret: T21pWVJOUEdxMXBTSVE1RQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1194,7 +1194,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: ebc0c801b378ad16b6df2e54a8796fb57e71130935130b9f8e3201faf2fd09e2 + checksum/configuration: 11cd65708fd872839c6e561e84c30e045567486f06757f4549c69cc22aea5697 checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 9f699df433a7f3227784261437025f01a0ddb97d1514041ab1d3a93533b70135 + checksum/secret: b0e1d465fbab24856443e463cb7846c898d03f1e00ac443b08e5474d28418ba3 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index a5fe4c4109..2a8383a1dd 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: R2NGVWU3dmpId2prNHFlbw== + haSharedSecret: bGRYdlJtdmZ5Qm14ZEJnNg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: ddccf9a515ebaf4fcc214a064ef0223cca9d7c0b063247810d7f1e5c5ef51311 + checksum/secret: b3f9230da427e818d5a63cbbf15159f2b165c98e6f56e269983c0a8fff6b6099 labels: app: docker-registry release: flyte-sandbox diff --git a/docs/conf.py b/docs/conf.py index 00c82afd2a..b4666d94a4 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" +release = "1.11.0-b0" # -- General configuration --------------------------------------------------- diff --git a/docs/deployment/configuration/generated/flytepropeller_config.rst b/docs/deployment/configuration/generated/flytepropeller_config.rst index 6ddf08273c..db4f9a543e 100644 --- a/docs/deployment/configuration/generated/flytepropeller_config.rst +++ b/docs/deployment/configuration/generated/flytepropeller_config.rst @@ -1195,6 +1195,7 @@ ray (`ray.Config`_) enabled: false endpoint: "" name: "" + serviceAccount: default serviceType: NodePort shutdownAfterJobFinishes: true ttlSecondsAfterFinished: 3600 @@ -1342,7 +1343,7 @@ resourceConstraints (`core.ResourceConstraintsSpec`_) Value: 100 -defaultAgent (`agent.Agent`_) +defaultAgent (`agent.Deployment`_) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" The default agent. @@ -1358,7 +1359,7 @@ The default agent. timeouts: null -agents (map[string]*agent.Agent) +agents (map[string]*agent.Deployment) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" The agents. @@ -1391,7 +1392,7 @@ supportedTaskTypes ([]string) - task_type_2 -agent.Agent +agent.Deployment ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ endpoint (string) @@ -3567,6 +3568,18 @@ Version of the Ray CRD to use when creating RayClusters or RayJobs. v1alpha1 +serviceAccount (string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +The k8s service account to run as + +**Default Value**: + +.. code-block:: yaml + + default + + ray.DefaultConfig ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/kustomize/overlays/eks/kustomization.yaml b/kustomize/overlays/eks/kustomization.yaml index f116ed2b78..d50b42c64f 100644 --- a/kustomize/overlays/eks/kustomization.yaml +++ b/kustomize/overlays/eks/kustomization.yaml @@ -21,23 +21,23 @@ bases: images: # FlyteAdmin - name: flyteadmin # match images with this name - newTag: v1.10.7 # FLYTEADMIN_TAG override the tag + newTag: v1.11.0-b0 # FLYTEADMIN_TAG override the tag newName: cr.flyte.org/flyteorg/flyteadmin # override the name # FlyteConsole - name: flyteconsole # match images with this name - newTag: v1.10.2 # FLYTECONSOLE_TAG the tag + newTag: v1.10.3 # FLYTECONSOLE_TAG the tag newName: cr.flyte.org/flyteorg/flyteconsole # override the namep # Flyte DataCatalog - name: datacatalog # match images with this name - newTag: v1.10.7 # DATACATALOG_TAG override the tag + newTag: v1.11.0-b0 # DATACATALOG_TAG override the tag newName: cr.flyte.org/flyteorg/datacatalog # override the name # FlytePropeller - name: flytepropeller # match images with this name - newTag: v1.10.7 # FLYTEPROPELLER_TAG override the tag + newTag: v1.11.0-b0 # FLYTEPROPELLER_TAG override the tag newName: cr.flyte.org/flyteorg/flytepropeller # override the name # Webhook - name: webhook # match images with this name - newTag: v1.10.7 # FLYTEPROPELLER_TAG override the tag + newTag: v1.11.0-b0 # FLYTEPROPELLER_TAG override the tag newName: cr.flyte.org/flyteorg/flytepropeller # override the name # Override postgres image to use alpine based (rather smaller) docker image - name: postgres From 33265b9b6098b9a009ff2c6299f2f69565c2e9dc Mon Sep 17 00:00:00 2001 From: Paul Dittamo <37558497+pvditt@users.noreply.github.com> Date: Thu, 29 Feb 2024 10:16:29 -0800 Subject: [PATCH 13/76] add cacheservice to idl defintions (#4978) Signed-off-by: Paul Dittamo --- .../cacheservice/mocks/CacheServiceClient.go | 258 ++++ .../cacheservice/cacheservice_connect.ts | 75 + .../flyteidl/cacheservice/cacheservice_pb.ts | 690 +++++++++ .../flyteidl/cacheservice/cacheservice.pb.go | 1228 +++++++++++++++++ .../cacheservice/cacheservice_grpc.pb.go | 265 ++++ .../cacheservice/cacheservice.swagger.json | 640 +++++++++ .../flyteidl/cacheservice/__init__.py | 0 .../flyteidl/cacheservice/cacheservice_pb2.py | 65 + .../cacheservice/cacheservice_pb2.pyi | 123 ++ .../cacheservice/cacheservice_pb2_grpc.py | 209 +++ flyteidl/gen/pb_rust/flyteidl.cacheservice.rs | 172 +++ flyteidl/generate_mocks.sh | 1 + .../flyteidl/cacheservice/cacheservice.proto | 143 ++ 13 files changed, 3869 insertions(+) create mode 100644 flyteidl/clients/go/cacheservice/mocks/CacheServiceClient.go create mode 100644 flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_connect.ts create mode 100644 flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_pb.ts create mode 100644 flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice.pb.go create mode 100644 flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice_grpc.pb.go create mode 100644 flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json create mode 100644 flyteidl/gen/pb_python/flyteidl/cacheservice/__init__.py create mode 100644 flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.py create mode 100644 flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.pyi create mode 100644 flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2_grpc.py create mode 100644 flyteidl/gen/pb_rust/flyteidl.cacheservice.rs create mode 100644 flyteidl/protos/flyteidl/cacheservice/cacheservice.proto diff --git a/flyteidl/clients/go/cacheservice/mocks/CacheServiceClient.go b/flyteidl/clients/go/cacheservice/mocks/CacheServiceClient.go new file mode 100644 index 0000000000..53916fe991 --- /dev/null +++ b/flyteidl/clients/go/cacheservice/mocks/CacheServiceClient.go @@ -0,0 +1,258 @@ +// Code generated by mockery v1.0.1. DO NOT EDIT. + +package mocks + +import ( + context "context" + + cacheservice "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/cacheservice" + + grpc "google.golang.org/grpc" + + mock "github.com/stretchr/testify/mock" +) + +// CacheServiceClient is an autogenerated mock type for the CacheServiceClient type +type CacheServiceClient struct { + mock.Mock +} + +type CacheServiceClient_Delete struct { + *mock.Call +} + +func (_m CacheServiceClient_Delete) Return(_a0 *cacheservice.DeleteCacheResponse, _a1 error) *CacheServiceClient_Delete { + return &CacheServiceClient_Delete{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *CacheServiceClient) OnDelete(ctx context.Context, in *cacheservice.DeleteCacheRequest, opts ...grpc.CallOption) *CacheServiceClient_Delete { + c_call := _m.On("Delete", ctx, in, opts) + return &CacheServiceClient_Delete{Call: c_call} +} + +func (_m *CacheServiceClient) OnDeleteMatch(matchers ...interface{}) *CacheServiceClient_Delete { + c_call := _m.On("Delete", matchers...) + return &CacheServiceClient_Delete{Call: c_call} +} + +// Delete provides a mock function with given fields: ctx, in, opts +func (_m *CacheServiceClient) Delete(ctx context.Context, in *cacheservice.DeleteCacheRequest, opts ...grpc.CallOption) (*cacheservice.DeleteCacheResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *cacheservice.DeleteCacheResponse + if rf, ok := ret.Get(0).(func(context.Context, *cacheservice.DeleteCacheRequest, ...grpc.CallOption) *cacheservice.DeleteCacheResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*cacheservice.DeleteCacheResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *cacheservice.DeleteCacheRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type CacheServiceClient_Get struct { + *mock.Call +} + +func (_m CacheServiceClient_Get) Return(_a0 *cacheservice.GetCacheResponse, _a1 error) *CacheServiceClient_Get { + return &CacheServiceClient_Get{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *CacheServiceClient) OnGet(ctx context.Context, in *cacheservice.GetCacheRequest, opts ...grpc.CallOption) *CacheServiceClient_Get { + c_call := _m.On("Get", ctx, in, opts) + return &CacheServiceClient_Get{Call: c_call} +} + +func (_m *CacheServiceClient) OnGetMatch(matchers ...interface{}) *CacheServiceClient_Get { + c_call := _m.On("Get", matchers...) + return &CacheServiceClient_Get{Call: c_call} +} + +// Get provides a mock function with given fields: ctx, in, opts +func (_m *CacheServiceClient) Get(ctx context.Context, in *cacheservice.GetCacheRequest, opts ...grpc.CallOption) (*cacheservice.GetCacheResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *cacheservice.GetCacheResponse + if rf, ok := ret.Get(0).(func(context.Context, *cacheservice.GetCacheRequest, ...grpc.CallOption) *cacheservice.GetCacheResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*cacheservice.GetCacheResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *cacheservice.GetCacheRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type CacheServiceClient_GetOrExtendReservation struct { + *mock.Call +} + +func (_m CacheServiceClient_GetOrExtendReservation) Return(_a0 *cacheservice.GetOrExtendReservationResponse, _a1 error) *CacheServiceClient_GetOrExtendReservation { + return &CacheServiceClient_GetOrExtendReservation{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *CacheServiceClient) OnGetOrExtendReservation(ctx context.Context, in *cacheservice.GetOrExtendReservationRequest, opts ...grpc.CallOption) *CacheServiceClient_GetOrExtendReservation { + c_call := _m.On("GetOrExtendReservation", ctx, in, opts) + return &CacheServiceClient_GetOrExtendReservation{Call: c_call} +} + +func (_m *CacheServiceClient) OnGetOrExtendReservationMatch(matchers ...interface{}) *CacheServiceClient_GetOrExtendReservation { + c_call := _m.On("GetOrExtendReservation", matchers...) + return &CacheServiceClient_GetOrExtendReservation{Call: c_call} +} + +// GetOrExtendReservation provides a mock function with given fields: ctx, in, opts +func (_m *CacheServiceClient) GetOrExtendReservation(ctx context.Context, in *cacheservice.GetOrExtendReservationRequest, opts ...grpc.CallOption) (*cacheservice.GetOrExtendReservationResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *cacheservice.GetOrExtendReservationResponse + if rf, ok := ret.Get(0).(func(context.Context, *cacheservice.GetOrExtendReservationRequest, ...grpc.CallOption) *cacheservice.GetOrExtendReservationResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*cacheservice.GetOrExtendReservationResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *cacheservice.GetOrExtendReservationRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type CacheServiceClient_Put struct { + *mock.Call +} + +func (_m CacheServiceClient_Put) Return(_a0 *cacheservice.PutCacheResponse, _a1 error) *CacheServiceClient_Put { + return &CacheServiceClient_Put{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *CacheServiceClient) OnPut(ctx context.Context, in *cacheservice.PutCacheRequest, opts ...grpc.CallOption) *CacheServiceClient_Put { + c_call := _m.On("Put", ctx, in, opts) + return &CacheServiceClient_Put{Call: c_call} +} + +func (_m *CacheServiceClient) OnPutMatch(matchers ...interface{}) *CacheServiceClient_Put { + c_call := _m.On("Put", matchers...) + return &CacheServiceClient_Put{Call: c_call} +} + +// Put provides a mock function with given fields: ctx, in, opts +func (_m *CacheServiceClient) Put(ctx context.Context, in *cacheservice.PutCacheRequest, opts ...grpc.CallOption) (*cacheservice.PutCacheResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *cacheservice.PutCacheResponse + if rf, ok := ret.Get(0).(func(context.Context, *cacheservice.PutCacheRequest, ...grpc.CallOption) *cacheservice.PutCacheResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*cacheservice.PutCacheResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *cacheservice.PutCacheRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type CacheServiceClient_ReleaseReservation struct { + *mock.Call +} + +func (_m CacheServiceClient_ReleaseReservation) Return(_a0 *cacheservice.ReleaseReservationResponse, _a1 error) *CacheServiceClient_ReleaseReservation { + return &CacheServiceClient_ReleaseReservation{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *CacheServiceClient) OnReleaseReservation(ctx context.Context, in *cacheservice.ReleaseReservationRequest, opts ...grpc.CallOption) *CacheServiceClient_ReleaseReservation { + c_call := _m.On("ReleaseReservation", ctx, in, opts) + return &CacheServiceClient_ReleaseReservation{Call: c_call} +} + +func (_m *CacheServiceClient) OnReleaseReservationMatch(matchers ...interface{}) *CacheServiceClient_ReleaseReservation { + c_call := _m.On("ReleaseReservation", matchers...) + return &CacheServiceClient_ReleaseReservation{Call: c_call} +} + +// ReleaseReservation provides a mock function with given fields: ctx, in, opts +func (_m *CacheServiceClient) ReleaseReservation(ctx context.Context, in *cacheservice.ReleaseReservationRequest, opts ...grpc.CallOption) (*cacheservice.ReleaseReservationResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *cacheservice.ReleaseReservationResponse + if rf, ok := ret.Get(0).(func(context.Context, *cacheservice.ReleaseReservationRequest, ...grpc.CallOption) *cacheservice.ReleaseReservationResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*cacheservice.ReleaseReservationResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *cacheservice.ReleaseReservationRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} diff --git a/flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_connect.ts b/flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_connect.ts new file mode 100644 index 0000000000..3a4956b93b --- /dev/null +++ b/flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_connect.ts @@ -0,0 +1,75 @@ +// @generated by protoc-gen-connect-es v1.3.0 with parameter "target=ts" +// @generated from file flyteidl/cacheservice/cacheservice.proto (package flyteidl.cacheservice, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { DeleteCacheRequest, DeleteCacheResponse, GetCacheRequest, GetCacheResponse, GetOrExtendReservationRequest, GetOrExtendReservationResponse, PutCacheRequest, PutCacheResponse, ReleaseReservationRequest, ReleaseReservationResponse } from "./cacheservice_pb.js"; +import { MethodKind } from "@bufbuild/protobuf"; + +/** + * + * CacheService defines operations for cache management including retrieval, storage, and deletion of cached task/workflow outputs. + * + * @generated from service flyteidl.cacheservice.CacheService + */ +export const CacheService = { + typeName: "flyteidl.cacheservice.CacheService", + methods: { + /** + * Retrieves cached data by key. + * + * @generated from rpc flyteidl.cacheservice.CacheService.Get + */ + get: { + name: "Get", + I: GetCacheRequest, + O: GetCacheResponse, + kind: MethodKind.Unary, + }, + /** + * Stores or updates cached data by key. + * + * @generated from rpc flyteidl.cacheservice.CacheService.Put + */ + put: { + name: "Put", + I: PutCacheRequest, + O: PutCacheResponse, + kind: MethodKind.Unary, + }, + /** + * Deletes cached data by key. + * + * @generated from rpc flyteidl.cacheservice.CacheService.Delete + */ + delete: { + name: "Delete", + I: DeleteCacheRequest, + O: DeleteCacheResponse, + kind: MethodKind.Unary, + }, + /** + * Get or extend a reservation for a cache key + * + * @generated from rpc flyteidl.cacheservice.CacheService.GetOrExtendReservation + */ + getOrExtendReservation: { + name: "GetOrExtendReservation", + I: GetOrExtendReservationRequest, + O: GetOrExtendReservationResponse, + kind: MethodKind.Unary, + }, + /** + * Release the reservation for a cache key + * + * @generated from rpc flyteidl.cacheservice.CacheService.ReleaseReservation + */ + releaseReservation: { + name: "ReleaseReservation", + I: ReleaseReservationRequest, + O: ReleaseReservationResponse, + kind: MethodKind.Unary, + }, + } +} as const; + diff --git a/flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_pb.ts b/flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_pb.ts new file mode 100644 index 0000000000..ff6304fde4 --- /dev/null +++ b/flyteidl/gen/pb-es/flyteidl/cacheservice/cacheservice_pb.ts @@ -0,0 +1,690 @@ +// @generated by protoc-gen-es v1.7.2 with parameter "target=ts" +// @generated from file flyteidl/cacheservice/cacheservice.proto (package flyteidl.cacheservice, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; +import { Duration, Message, proto3, Timestamp } from "@bufbuild/protobuf"; +import { Identifier } from "../core/identifier_pb.js"; +import { LiteralMap } from "../core/literals_pb.js"; + +/** + * + * Additional metadata as key-value pairs + * + * @generated from message flyteidl.cacheservice.KeyMapMetadata + */ +export class KeyMapMetadata extends Message { + /** + * Additional metadata as key-value pairs + * + * @generated from field: map values = 1; + */ + values: { [key: string]: string } = {}; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.KeyMapMetadata"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "values", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): KeyMapMetadata { + return new KeyMapMetadata().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): KeyMapMetadata { + return new KeyMapMetadata().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): KeyMapMetadata { + return new KeyMapMetadata().fromJsonString(jsonString, options); + } + + static equals(a: KeyMapMetadata | PlainMessage | undefined, b: KeyMapMetadata | PlainMessage | undefined): boolean { + return proto3.util.equals(KeyMapMetadata, a, b); + } +} + +/** + * + * Metadata for cached outputs, including the source identifier and timestamps. + * + * @generated from message flyteidl.cacheservice.Metadata + */ +export class Metadata extends Message { + /** + * Source task or workflow identifier + * + * @generated from field: flyteidl.core.Identifier source_identifier = 1; + */ + sourceIdentifier?: Identifier; + + /** + * Additional metadata as key-value pairs + * + * @generated from field: flyteidl.cacheservice.KeyMapMetadata key_map = 2; + */ + keyMap?: KeyMapMetadata; + + /** + * Creation timestamp + * + * @generated from field: google.protobuf.Timestamp created_at = 3; + */ + createdAt?: Timestamp; + + /** + * Last update timestamp + * + * @generated from field: google.protobuf.Timestamp last_updated_at = 4; + */ + lastUpdatedAt?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.Metadata"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "source_identifier", kind: "message", T: Identifier }, + { no: 2, name: "key_map", kind: "message", T: KeyMapMetadata }, + { no: 3, name: "created_at", kind: "message", T: Timestamp }, + { no: 4, name: "last_updated_at", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): Metadata { + return new Metadata().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): Metadata { + return new Metadata().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): Metadata { + return new Metadata().fromJsonString(jsonString, options); + } + + static equals(a: Metadata | PlainMessage | undefined, b: Metadata | PlainMessage | undefined): boolean { + return proto3.util.equals(Metadata, a, b); + } +} + +/** + * + * Represents cached output, either as literals or an URI, with associated metadata. + * + * @generated from message flyteidl.cacheservice.CachedOutput + */ +export class CachedOutput extends Message { + /** + * @generated from oneof flyteidl.cacheservice.CachedOutput.output + */ + output: { + /** + * Output literals + * + * @generated from field: flyteidl.core.LiteralMap output_literals = 1; + */ + value: LiteralMap; + case: "outputLiterals"; + } | { + /** + * URI to output data + * + * @generated from field: string output_uri = 2; + */ + value: string; + case: "outputUri"; + } | { case: undefined; value?: undefined } = { case: undefined }; + + /** + * Associated metadata + * + * @generated from field: flyteidl.cacheservice.Metadata metadata = 3; + */ + metadata?: Metadata; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.CachedOutput"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "output_literals", kind: "message", T: LiteralMap, oneof: "output" }, + { no: 2, name: "output_uri", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "output" }, + { no: 3, name: "metadata", kind: "message", T: Metadata }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): CachedOutput { + return new CachedOutput().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): CachedOutput { + return new CachedOutput().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): CachedOutput { + return new CachedOutput().fromJsonString(jsonString, options); + } + + static equals(a: CachedOutput | PlainMessage | undefined, b: CachedOutput | PlainMessage | undefined): boolean { + return proto3.util.equals(CachedOutput, a, b); + } +} + +/** + * + * Request to retrieve cached data by key. + * + * @generated from message flyteidl.cacheservice.GetCacheRequest + */ +export class GetCacheRequest extends Message { + /** + * Cache key + * + * @generated from field: string key = 1; + */ + key = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.GetCacheRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetCacheRequest { + return new GetCacheRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetCacheRequest { + return new GetCacheRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetCacheRequest { + return new GetCacheRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetCacheRequest | PlainMessage | undefined, b: GetCacheRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetCacheRequest, a, b); + } +} + +/** + * + * Response with cached data for a given key. + * + * @generated from message flyteidl.cacheservice.GetCacheResponse + */ +export class GetCacheResponse extends Message { + /** + * Cached output + * + * @generated from field: flyteidl.cacheservice.CachedOutput output = 1; + */ + output?: CachedOutput; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.GetCacheResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "output", kind: "message", T: CachedOutput }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetCacheResponse { + return new GetCacheResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetCacheResponse { + return new GetCacheResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetCacheResponse { + return new GetCacheResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetCacheResponse | PlainMessage | undefined, b: GetCacheResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetCacheResponse, a, b); + } +} + +/** + * + * Request to store/update cached data by key. + * + * @generated from message flyteidl.cacheservice.PutCacheRequest + */ +export class PutCacheRequest extends Message { + /** + * Cache key + * + * @generated from field: string key = 1; + */ + key = ""; + + /** + * Output to cache + * + * @generated from field: flyteidl.cacheservice.CachedOutput output = 2; + */ + output?: CachedOutput; + + /** + * Overwrite flag + * + * @generated from field: bool overwrite = 3; + */ + overwrite = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.PutCacheRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "output", kind: "message", T: CachedOutput }, + { no: 3, name: "overwrite", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PutCacheRequest { + return new PutCacheRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PutCacheRequest { + return new PutCacheRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PutCacheRequest { + return new PutCacheRequest().fromJsonString(jsonString, options); + } + + static equals(a: PutCacheRequest | PlainMessage | undefined, b: PutCacheRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(PutCacheRequest, a, b); + } +} + +/** + * + * Response message of cache store/update operation. + * + * Empty, success indicated by no errors + * + * @generated from message flyteidl.cacheservice.PutCacheResponse + */ +export class PutCacheResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.PutCacheResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PutCacheResponse { + return new PutCacheResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PutCacheResponse { + return new PutCacheResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PutCacheResponse { + return new PutCacheResponse().fromJsonString(jsonString, options); + } + + static equals(a: PutCacheResponse | PlainMessage | undefined, b: PutCacheResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(PutCacheResponse, a, b); + } +} + +/** + * + * Request to delete cached data by key. + * + * @generated from message flyteidl.cacheservice.DeleteCacheRequest + */ +export class DeleteCacheRequest extends Message { + /** + * Cache key + * + * @generated from field: string key = 1; + */ + key = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.DeleteCacheRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeleteCacheRequest { + return new DeleteCacheRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeleteCacheRequest { + return new DeleteCacheRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeleteCacheRequest { + return new DeleteCacheRequest().fromJsonString(jsonString, options); + } + + static equals(a: DeleteCacheRequest | PlainMessage | undefined, b: DeleteCacheRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(DeleteCacheRequest, a, b); + } +} + +/** + * + * Response message of cache deletion operation. + * + * Empty, success indicated by no errors + * + * @generated from message flyteidl.cacheservice.DeleteCacheResponse + */ +export class DeleteCacheResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.DeleteCacheResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeleteCacheResponse { + return new DeleteCacheResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeleteCacheResponse { + return new DeleteCacheResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeleteCacheResponse { + return new DeleteCacheResponse().fromJsonString(jsonString, options); + } + + static equals(a: DeleteCacheResponse | PlainMessage | undefined, b: DeleteCacheResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(DeleteCacheResponse, a, b); + } +} + +/** + * A reservation including owner, heartbeat interval, expiration timestamp, and various metadata. + * + * @generated from message flyteidl.cacheservice.Reservation + */ +export class Reservation extends Message { + /** + * The unique ID for the reservation - same as the cache key + * + * @generated from field: string key = 1; + */ + key = ""; + + /** + * The unique ID of the owner for the reservation + * + * @generated from field: string owner_id = 2; + */ + ownerId = ""; + + /** + * Requested reservation extension heartbeat interval + * + * @generated from field: google.protobuf.Duration heartbeat_interval = 3; + */ + heartbeatInterval?: Duration; + + /** + * Expiration timestamp of this reservation + * + * @generated from field: google.protobuf.Timestamp expires_at = 4; + */ + expiresAt?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.Reservation"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "owner_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "heartbeat_interval", kind: "message", T: Duration }, + { no: 4, name: "expires_at", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): Reservation { + return new Reservation().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): Reservation { + return new Reservation().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): Reservation { + return new Reservation().fromJsonString(jsonString, options); + } + + static equals(a: Reservation | PlainMessage | undefined, b: Reservation | PlainMessage | undefined): boolean { + return proto3.util.equals(Reservation, a, b); + } +} + +/** + * + * Request to get or extend a reservation for a cache key + * + * @generated from message flyteidl.cacheservice.GetOrExtendReservationRequest + */ +export class GetOrExtendReservationRequest extends Message { + /** + * The unique ID for the reservation - same as the cache key + * + * @generated from field: string key = 1; + */ + key = ""; + + /** + * The unique ID of the owner for the reservation + * + * @generated from field: string owner_id = 2; + */ + ownerId = ""; + + /** + * Requested reservation extension heartbeat interval + * + * @generated from field: google.protobuf.Duration heartbeat_interval = 3; + */ + heartbeatInterval?: Duration; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.GetOrExtendReservationRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "owner_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "heartbeat_interval", kind: "message", T: Duration }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetOrExtendReservationRequest { + return new GetOrExtendReservationRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetOrExtendReservationRequest { + return new GetOrExtendReservationRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetOrExtendReservationRequest { + return new GetOrExtendReservationRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetOrExtendReservationRequest | PlainMessage | undefined, b: GetOrExtendReservationRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetOrExtendReservationRequest, a, b); + } +} + +/** + * + * Request to get or extend a reservation for a cache key + * + * @generated from message flyteidl.cacheservice.GetOrExtendReservationResponse + */ +export class GetOrExtendReservationResponse extends Message { + /** + * The reservation that was created or extended + * + * @generated from field: flyteidl.cacheservice.Reservation reservation = 1; + */ + reservation?: Reservation; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.GetOrExtendReservationResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "reservation", kind: "message", T: Reservation }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetOrExtendReservationResponse { + return new GetOrExtendReservationResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetOrExtendReservationResponse { + return new GetOrExtendReservationResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetOrExtendReservationResponse { + return new GetOrExtendReservationResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetOrExtendReservationResponse | PlainMessage | undefined, b: GetOrExtendReservationResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetOrExtendReservationResponse, a, b); + } +} + +/** + * + * Request to release the reservation for a cache key + * + * @generated from message flyteidl.cacheservice.ReleaseReservationRequest + */ +export class ReleaseReservationRequest extends Message { + /** + * The unique ID for the reservation - same as the cache key + * + * @generated from field: string key = 1; + */ + key = ""; + + /** + * The unique ID of the owner for the reservation + * + * @generated from field: string owner_id = 2; + */ + ownerId = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.ReleaseReservationRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "owner_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): ReleaseReservationRequest { + return new ReleaseReservationRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): ReleaseReservationRequest { + return new ReleaseReservationRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): ReleaseReservationRequest { + return new ReleaseReservationRequest().fromJsonString(jsonString, options); + } + + static equals(a: ReleaseReservationRequest | PlainMessage | undefined, b: ReleaseReservationRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(ReleaseReservationRequest, a, b); + } +} + +/** + * + * Response message of release reservation operation. + * + * Empty, success indicated by no errors + * + * @generated from message flyteidl.cacheservice.ReleaseReservationResponse + */ +export class ReleaseReservationResponse extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.cacheservice.ReleaseReservationResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): ReleaseReservationResponse { + return new ReleaseReservationResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): ReleaseReservationResponse { + return new ReleaseReservationResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): ReleaseReservationResponse { + return new ReleaseReservationResponse().fromJsonString(jsonString, options); + } + + static equals(a: ReleaseReservationResponse | PlainMessage | undefined, b: ReleaseReservationResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(ReleaseReservationResponse, a, b); + } +} + diff --git a/flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice.pb.go b/flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice.pb.go new file mode 100644 index 0000000000..2422e06201 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice.pb.go @@ -0,0 +1,1228 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: flyteidl/cacheservice/cacheservice.proto + +package cacheservice + +import ( + core "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Additional metadata as key-value pairs +type KeyMapMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values map[string]string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Additional metadata as key-value pairs +} + +func (x *KeyMapMetadata) Reset() { + *x = KeyMapMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KeyMapMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KeyMapMetadata) ProtoMessage() {} + +func (x *KeyMapMetadata) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KeyMapMetadata.ProtoReflect.Descriptor instead. +func (*KeyMapMetadata) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{0} +} + +func (x *KeyMapMetadata) GetValues() map[string]string { + if x != nil { + return x.Values + } + return nil +} + +// Metadata for cached outputs, including the source identifier and timestamps. +type Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SourceIdentifier *core.Identifier `protobuf:"bytes,1,opt,name=source_identifier,json=sourceIdentifier,proto3" json:"source_identifier,omitempty"` // Source task or workflow identifier + KeyMap *KeyMapMetadata `protobuf:"bytes,2,opt,name=key_map,json=keyMap,proto3" json:"key_map,omitempty"` // Additional metadata as key-value pairs + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Creation timestamp + LastUpdatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_updated_at,json=lastUpdatedAt,proto3" json:"last_updated_at,omitempty"` // Last update timestamp +} + +func (x *Metadata) Reset() { + *x = Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +func (x *Metadata) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{1} +} + +func (x *Metadata) GetSourceIdentifier() *core.Identifier { + if x != nil { + return x.SourceIdentifier + } + return nil +} + +func (x *Metadata) GetKeyMap() *KeyMapMetadata { + if x != nil { + return x.KeyMap + } + return nil +} + +func (x *Metadata) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *Metadata) GetLastUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.LastUpdatedAt + } + return nil +} + +// Represents cached output, either as literals or an URI, with associated metadata. +type CachedOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Output: + // + // *CachedOutput_OutputLiterals + // *CachedOutput_OutputUri + Output isCachedOutput_Output `protobuf_oneof:"output"` + Metadata *Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` // Associated metadata +} + +func (x *CachedOutput) Reset() { + *x = CachedOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CachedOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CachedOutput) ProtoMessage() {} + +func (x *CachedOutput) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CachedOutput.ProtoReflect.Descriptor instead. +func (*CachedOutput) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{2} +} + +func (m *CachedOutput) GetOutput() isCachedOutput_Output { + if m != nil { + return m.Output + } + return nil +} + +func (x *CachedOutput) GetOutputLiterals() *core.LiteralMap { + if x, ok := x.GetOutput().(*CachedOutput_OutputLiterals); ok { + return x.OutputLiterals + } + return nil +} + +func (x *CachedOutput) GetOutputUri() string { + if x, ok := x.GetOutput().(*CachedOutput_OutputUri); ok { + return x.OutputUri + } + return "" +} + +func (x *CachedOutput) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +type isCachedOutput_Output interface { + isCachedOutput_Output() +} + +type CachedOutput_OutputLiterals struct { + OutputLiterals *core.LiteralMap `protobuf:"bytes,1,opt,name=output_literals,json=outputLiterals,proto3,oneof"` // Output literals +} + +type CachedOutput_OutputUri struct { + OutputUri string `protobuf:"bytes,2,opt,name=output_uri,json=outputUri,proto3,oneof"` // URI to output data +} + +func (*CachedOutput_OutputLiterals) isCachedOutput_Output() {} + +func (*CachedOutput_OutputUri) isCachedOutput_Output() {} + +// Request to retrieve cached data by key. +type GetCacheRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // Cache key +} + +func (x *GetCacheRequest) Reset() { + *x = GetCacheRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCacheRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCacheRequest) ProtoMessage() {} + +func (x *GetCacheRequest) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCacheRequest.ProtoReflect.Descriptor instead. +func (*GetCacheRequest) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{3} +} + +func (x *GetCacheRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +// Response with cached data for a given key. +type GetCacheResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *CachedOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // Cached output +} + +func (x *GetCacheResponse) Reset() { + *x = GetCacheResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCacheResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCacheResponse) ProtoMessage() {} + +func (x *GetCacheResponse) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCacheResponse.ProtoReflect.Descriptor instead. +func (*GetCacheResponse) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{4} +} + +func (x *GetCacheResponse) GetOutput() *CachedOutput { + if x != nil { + return x.Output + } + return nil +} + +// Request to store/update cached data by key. +type PutCacheRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // Cache key + Output *CachedOutput `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"` // Output to cache + Overwrite bool `protobuf:"varint,3,opt,name=overwrite,proto3" json:"overwrite,omitempty"` // Overwrite flag +} + +func (x *PutCacheRequest) Reset() { + *x = PutCacheRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutCacheRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutCacheRequest) ProtoMessage() {} + +func (x *PutCacheRequest) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutCacheRequest.ProtoReflect.Descriptor instead. +func (*PutCacheRequest) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{5} +} + +func (x *PutCacheRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *PutCacheRequest) GetOutput() *CachedOutput { + if x != nil { + return x.Output + } + return nil +} + +func (x *PutCacheRequest) GetOverwrite() bool { + if x != nil { + return x.Overwrite + } + return false +} + +// Response message of cache store/update operation. +type PutCacheResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PutCacheResponse) Reset() { + *x = PutCacheResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutCacheResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutCacheResponse) ProtoMessage() {} + +func (x *PutCacheResponse) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutCacheResponse.ProtoReflect.Descriptor instead. +func (*PutCacheResponse) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{6} +} + +// Request to delete cached data by key. +type DeleteCacheRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // Cache key +} + +func (x *DeleteCacheRequest) Reset() { + *x = DeleteCacheRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCacheRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCacheRequest) ProtoMessage() {} + +func (x *DeleteCacheRequest) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteCacheRequest.ProtoReflect.Descriptor instead. +func (*DeleteCacheRequest) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteCacheRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +// Response message of cache deletion operation. +type DeleteCacheResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteCacheResponse) Reset() { + *x = DeleteCacheResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCacheResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCacheResponse) ProtoMessage() {} + +func (x *DeleteCacheResponse) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteCacheResponse.ProtoReflect.Descriptor instead. +func (*DeleteCacheResponse) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{8} +} + +// A reservation including owner, heartbeat interval, expiration timestamp, and various metadata. +type Reservation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // The unique ID for the reservation - same as the cache key + OwnerId string `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` // The unique ID of the owner for the reservation + HeartbeatInterval *durationpb.Duration `protobuf:"bytes,3,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` // Requested reservation extension heartbeat interval + ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // Expiration timestamp of this reservation +} + +func (x *Reservation) Reset() { + *x = Reservation{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Reservation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Reservation) ProtoMessage() {} + +func (x *Reservation) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Reservation.ProtoReflect.Descriptor instead. +func (*Reservation) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{9} +} + +func (x *Reservation) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *Reservation) GetOwnerId() string { + if x != nil { + return x.OwnerId + } + return "" +} + +func (x *Reservation) GetHeartbeatInterval() *durationpb.Duration { + if x != nil { + return x.HeartbeatInterval + } + return nil +} + +func (x *Reservation) GetExpiresAt() *timestamppb.Timestamp { + if x != nil { + return x.ExpiresAt + } + return nil +} + +// Request to get or extend a reservation for a cache key +type GetOrExtendReservationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // The unique ID for the reservation - same as the cache key + OwnerId string `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` // The unique ID of the owner for the reservation + HeartbeatInterval *durationpb.Duration `protobuf:"bytes,3,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` // Requested reservation extension heartbeat interval +} + +func (x *GetOrExtendReservationRequest) Reset() { + *x = GetOrExtendReservationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOrExtendReservationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOrExtendReservationRequest) ProtoMessage() {} + +func (x *GetOrExtendReservationRequest) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOrExtendReservationRequest.ProtoReflect.Descriptor instead. +func (*GetOrExtendReservationRequest) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{10} +} + +func (x *GetOrExtendReservationRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *GetOrExtendReservationRequest) GetOwnerId() string { + if x != nil { + return x.OwnerId + } + return "" +} + +func (x *GetOrExtendReservationRequest) GetHeartbeatInterval() *durationpb.Duration { + if x != nil { + return x.HeartbeatInterval + } + return nil +} + +// Request to get or extend a reservation for a cache key +type GetOrExtendReservationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reservation *Reservation `protobuf:"bytes,1,opt,name=reservation,proto3" json:"reservation,omitempty"` // The reservation that was created or extended +} + +func (x *GetOrExtendReservationResponse) Reset() { + *x = GetOrExtendReservationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOrExtendReservationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOrExtendReservationResponse) ProtoMessage() {} + +func (x *GetOrExtendReservationResponse) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOrExtendReservationResponse.ProtoReflect.Descriptor instead. +func (*GetOrExtendReservationResponse) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{11} +} + +func (x *GetOrExtendReservationResponse) GetReservation() *Reservation { + if x != nil { + return x.Reservation + } + return nil +} + +// Request to release the reservation for a cache key +type ReleaseReservationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // The unique ID for the reservation - same as the cache key + OwnerId string `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` // The unique ID of the owner for the reservation +} + +func (x *ReleaseReservationRequest) Reset() { + *x = ReleaseReservationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReleaseReservationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseReservationRequest) ProtoMessage() {} + +func (x *ReleaseReservationRequest) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseReservationRequest.ProtoReflect.Descriptor instead. +func (*ReleaseReservationRequest) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{12} +} + +func (x *ReleaseReservationRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *ReleaseReservationRequest) GetOwnerId() string { + if x != nil { + return x.OwnerId + } + return "" +} + +// Response message of release reservation operation. +type ReleaseReservationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReleaseReservationResponse) Reset() { + *x = ReleaseReservationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReleaseReservationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseReservationResponse) ProtoMessage() {} + +func (x *ReleaseReservationResponse) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_cacheservice_cacheservice_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseReservationResponse.ProtoReflect.Descriptor instead. +func (*ReleaseReservationResponse) Descriptor() ([]byte, []int) { + return file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP(), []int{13} +} + +var File_flyteidl_cacheservice_cacheservice_proto protoreflect.FileDescriptor + +var file_flyteidl_cacheservice_cacheservice_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x1a, 0x1c, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, + 0x2f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x4b, + 0x65, 0x79, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x91, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x46, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, + 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x06, 0x6b, 0x65, 0x79, 0x4d, 0x61, 0x70, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x0e, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1f, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x12, + 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x4f, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x7e, 0x0a, 0x0f, + 0x50, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x22, 0x12, 0x0a, 0x10, + 0x50, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x26, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x12, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, + 0x74, 0x22, 0x96, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x48, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x66, 0x0a, 0x1e, 0x47, 0x65, + 0x74, 0x4f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0b, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, + 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa2, 0x04, 0x0a, 0x0c, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x03, 0x47, + 0x65, 0x74, 0x12, 0x26, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x03, 0x50, 0x75, 0x74, 0x12, 0x26, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x06, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x4f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x12, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0xe7, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x11, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, + 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x43, 0x58, 0xaa, 0x02, 0x15, 0x46, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0xca, 0x02, 0x15, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xe2, 0x02, 0x21, 0x46, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x16, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_flyteidl_cacheservice_cacheservice_proto_rawDescOnce sync.Once + file_flyteidl_cacheservice_cacheservice_proto_rawDescData = file_flyteidl_cacheservice_cacheservice_proto_rawDesc +) + +func file_flyteidl_cacheservice_cacheservice_proto_rawDescGZIP() []byte { + file_flyteidl_cacheservice_cacheservice_proto_rawDescOnce.Do(func() { + file_flyteidl_cacheservice_cacheservice_proto_rawDescData = protoimpl.X.CompressGZIP(file_flyteidl_cacheservice_cacheservice_proto_rawDescData) + }) + return file_flyteidl_cacheservice_cacheservice_proto_rawDescData +} + +var file_flyteidl_cacheservice_cacheservice_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_flyteidl_cacheservice_cacheservice_proto_goTypes = []interface{}{ + (*KeyMapMetadata)(nil), // 0: flyteidl.cacheservice.KeyMapMetadata + (*Metadata)(nil), // 1: flyteidl.cacheservice.Metadata + (*CachedOutput)(nil), // 2: flyteidl.cacheservice.CachedOutput + (*GetCacheRequest)(nil), // 3: flyteidl.cacheservice.GetCacheRequest + (*GetCacheResponse)(nil), // 4: flyteidl.cacheservice.GetCacheResponse + (*PutCacheRequest)(nil), // 5: flyteidl.cacheservice.PutCacheRequest + (*PutCacheResponse)(nil), // 6: flyteidl.cacheservice.PutCacheResponse + (*DeleteCacheRequest)(nil), // 7: flyteidl.cacheservice.DeleteCacheRequest + (*DeleteCacheResponse)(nil), // 8: flyteidl.cacheservice.DeleteCacheResponse + (*Reservation)(nil), // 9: flyteidl.cacheservice.Reservation + (*GetOrExtendReservationRequest)(nil), // 10: flyteidl.cacheservice.GetOrExtendReservationRequest + (*GetOrExtendReservationResponse)(nil), // 11: flyteidl.cacheservice.GetOrExtendReservationResponse + (*ReleaseReservationRequest)(nil), // 12: flyteidl.cacheservice.ReleaseReservationRequest + (*ReleaseReservationResponse)(nil), // 13: flyteidl.cacheservice.ReleaseReservationResponse + nil, // 14: flyteidl.cacheservice.KeyMapMetadata.ValuesEntry + (*core.Identifier)(nil), // 15: flyteidl.core.Identifier + (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp + (*core.LiteralMap)(nil), // 17: flyteidl.core.LiteralMap + (*durationpb.Duration)(nil), // 18: google.protobuf.Duration +} +var file_flyteidl_cacheservice_cacheservice_proto_depIdxs = []int32{ + 14, // 0: flyteidl.cacheservice.KeyMapMetadata.values:type_name -> flyteidl.cacheservice.KeyMapMetadata.ValuesEntry + 15, // 1: flyteidl.cacheservice.Metadata.source_identifier:type_name -> flyteidl.core.Identifier + 0, // 2: flyteidl.cacheservice.Metadata.key_map:type_name -> flyteidl.cacheservice.KeyMapMetadata + 16, // 3: flyteidl.cacheservice.Metadata.created_at:type_name -> google.protobuf.Timestamp + 16, // 4: flyteidl.cacheservice.Metadata.last_updated_at:type_name -> google.protobuf.Timestamp + 17, // 5: flyteidl.cacheservice.CachedOutput.output_literals:type_name -> flyteidl.core.LiteralMap + 1, // 6: flyteidl.cacheservice.CachedOutput.metadata:type_name -> flyteidl.cacheservice.Metadata + 2, // 7: flyteidl.cacheservice.GetCacheResponse.output:type_name -> flyteidl.cacheservice.CachedOutput + 2, // 8: flyteidl.cacheservice.PutCacheRequest.output:type_name -> flyteidl.cacheservice.CachedOutput + 18, // 9: flyteidl.cacheservice.Reservation.heartbeat_interval:type_name -> google.protobuf.Duration + 16, // 10: flyteidl.cacheservice.Reservation.expires_at:type_name -> google.protobuf.Timestamp + 18, // 11: flyteidl.cacheservice.GetOrExtendReservationRequest.heartbeat_interval:type_name -> google.protobuf.Duration + 9, // 12: flyteidl.cacheservice.GetOrExtendReservationResponse.reservation:type_name -> flyteidl.cacheservice.Reservation + 3, // 13: flyteidl.cacheservice.CacheService.Get:input_type -> flyteidl.cacheservice.GetCacheRequest + 5, // 14: flyteidl.cacheservice.CacheService.Put:input_type -> flyteidl.cacheservice.PutCacheRequest + 7, // 15: flyteidl.cacheservice.CacheService.Delete:input_type -> flyteidl.cacheservice.DeleteCacheRequest + 10, // 16: flyteidl.cacheservice.CacheService.GetOrExtendReservation:input_type -> flyteidl.cacheservice.GetOrExtendReservationRequest + 12, // 17: flyteidl.cacheservice.CacheService.ReleaseReservation:input_type -> flyteidl.cacheservice.ReleaseReservationRequest + 4, // 18: flyteidl.cacheservice.CacheService.Get:output_type -> flyteidl.cacheservice.GetCacheResponse + 6, // 19: flyteidl.cacheservice.CacheService.Put:output_type -> flyteidl.cacheservice.PutCacheResponse + 8, // 20: flyteidl.cacheservice.CacheService.Delete:output_type -> flyteidl.cacheservice.DeleteCacheResponse + 11, // 21: flyteidl.cacheservice.CacheService.GetOrExtendReservation:output_type -> flyteidl.cacheservice.GetOrExtendReservationResponse + 13, // 22: flyteidl.cacheservice.CacheService.ReleaseReservation:output_type -> flyteidl.cacheservice.ReleaseReservationResponse + 18, // [18:23] is the sub-list for method output_type + 13, // [13:18] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_flyteidl_cacheservice_cacheservice_proto_init() } +func file_flyteidl_cacheservice_cacheservice_proto_init() { + if File_flyteidl_cacheservice_cacheservice_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KeyMapMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CachedOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCacheRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCacheResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutCacheRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutCacheResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCacheRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCacheResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Reservation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOrExtendReservationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOrExtendReservationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleaseReservationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleaseReservationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_flyteidl_cacheservice_cacheservice_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*CachedOutput_OutputLiterals)(nil), + (*CachedOutput_OutputUri)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_flyteidl_cacheservice_cacheservice_proto_rawDesc, + NumEnums: 0, + NumMessages: 15, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_flyteidl_cacheservice_cacheservice_proto_goTypes, + DependencyIndexes: file_flyteidl_cacheservice_cacheservice_proto_depIdxs, + MessageInfos: file_flyteidl_cacheservice_cacheservice_proto_msgTypes, + }.Build() + File_flyteidl_cacheservice_cacheservice_proto = out.File + file_flyteidl_cacheservice_cacheservice_proto_rawDesc = nil + file_flyteidl_cacheservice_cacheservice_proto_goTypes = nil + file_flyteidl_cacheservice_cacheservice_proto_depIdxs = nil +} diff --git a/flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice_grpc.pb.go b/flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice_grpc.pb.go new file mode 100644 index 0000000000..c028195856 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/cacheservice/cacheservice_grpc.pb.go @@ -0,0 +1,265 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: flyteidl/cacheservice/cacheservice.proto + +package cacheservice + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + CacheService_Get_FullMethodName = "/flyteidl.cacheservice.CacheService/Get" + CacheService_Put_FullMethodName = "/flyteidl.cacheservice.CacheService/Put" + CacheService_Delete_FullMethodName = "/flyteidl.cacheservice.CacheService/Delete" + CacheService_GetOrExtendReservation_FullMethodName = "/flyteidl.cacheservice.CacheService/GetOrExtendReservation" + CacheService_ReleaseReservation_FullMethodName = "/flyteidl.cacheservice.CacheService/ReleaseReservation" +) + +// CacheServiceClient is the client API for CacheService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CacheServiceClient interface { + // Retrieves cached data by key. + Get(ctx context.Context, in *GetCacheRequest, opts ...grpc.CallOption) (*GetCacheResponse, error) + // Stores or updates cached data by key. + Put(ctx context.Context, in *PutCacheRequest, opts ...grpc.CallOption) (*PutCacheResponse, error) + // Deletes cached data by key. + Delete(ctx context.Context, in *DeleteCacheRequest, opts ...grpc.CallOption) (*DeleteCacheResponse, error) + // Get or extend a reservation for a cache key + GetOrExtendReservation(ctx context.Context, in *GetOrExtendReservationRequest, opts ...grpc.CallOption) (*GetOrExtendReservationResponse, error) + // Release the reservation for a cache key + ReleaseReservation(ctx context.Context, in *ReleaseReservationRequest, opts ...grpc.CallOption) (*ReleaseReservationResponse, error) +} + +type cacheServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCacheServiceClient(cc grpc.ClientConnInterface) CacheServiceClient { + return &cacheServiceClient{cc} +} + +func (c *cacheServiceClient) Get(ctx context.Context, in *GetCacheRequest, opts ...grpc.CallOption) (*GetCacheResponse, error) { + out := new(GetCacheResponse) + err := c.cc.Invoke(ctx, CacheService_Get_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cacheServiceClient) Put(ctx context.Context, in *PutCacheRequest, opts ...grpc.CallOption) (*PutCacheResponse, error) { + out := new(PutCacheResponse) + err := c.cc.Invoke(ctx, CacheService_Put_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cacheServiceClient) Delete(ctx context.Context, in *DeleteCacheRequest, opts ...grpc.CallOption) (*DeleteCacheResponse, error) { + out := new(DeleteCacheResponse) + err := c.cc.Invoke(ctx, CacheService_Delete_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cacheServiceClient) GetOrExtendReservation(ctx context.Context, in *GetOrExtendReservationRequest, opts ...grpc.CallOption) (*GetOrExtendReservationResponse, error) { + out := new(GetOrExtendReservationResponse) + err := c.cc.Invoke(ctx, CacheService_GetOrExtendReservation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cacheServiceClient) ReleaseReservation(ctx context.Context, in *ReleaseReservationRequest, opts ...grpc.CallOption) (*ReleaseReservationResponse, error) { + out := new(ReleaseReservationResponse) + err := c.cc.Invoke(ctx, CacheService_ReleaseReservation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CacheServiceServer is the server API for CacheService service. +// All implementations should embed UnimplementedCacheServiceServer +// for forward compatibility +type CacheServiceServer interface { + // Retrieves cached data by key. + Get(context.Context, *GetCacheRequest) (*GetCacheResponse, error) + // Stores or updates cached data by key. + Put(context.Context, *PutCacheRequest) (*PutCacheResponse, error) + // Deletes cached data by key. + Delete(context.Context, *DeleteCacheRequest) (*DeleteCacheResponse, error) + // Get or extend a reservation for a cache key + GetOrExtendReservation(context.Context, *GetOrExtendReservationRequest) (*GetOrExtendReservationResponse, error) + // Release the reservation for a cache key + ReleaseReservation(context.Context, *ReleaseReservationRequest) (*ReleaseReservationResponse, error) +} + +// UnimplementedCacheServiceServer should be embedded to have forward compatible implementations. +type UnimplementedCacheServiceServer struct { +} + +func (UnimplementedCacheServiceServer) Get(context.Context, *GetCacheRequest) (*GetCacheResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Get not implemented") +} +func (UnimplementedCacheServiceServer) Put(context.Context, *PutCacheRequest) (*PutCacheResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Put not implemented") +} +func (UnimplementedCacheServiceServer) Delete(context.Context, *DeleteCacheRequest) (*DeleteCacheResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented") +} +func (UnimplementedCacheServiceServer) GetOrExtendReservation(context.Context, *GetOrExtendReservationRequest) (*GetOrExtendReservationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOrExtendReservation not implemented") +} +func (UnimplementedCacheServiceServer) ReleaseReservation(context.Context, *ReleaseReservationRequest) (*ReleaseReservationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReleaseReservation not implemented") +} + +// UnsafeCacheServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CacheServiceServer will +// result in compilation errors. +type UnsafeCacheServiceServer interface { + mustEmbedUnimplementedCacheServiceServer() +} + +func RegisterCacheServiceServer(s grpc.ServiceRegistrar, srv CacheServiceServer) { + s.RegisterService(&CacheService_ServiceDesc, srv) +} + +func _CacheService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCacheRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServiceServer).Get(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CacheService_Get_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServiceServer).Get(ctx, req.(*GetCacheRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CacheService_Put_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutCacheRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServiceServer).Put(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CacheService_Put_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServiceServer).Put(ctx, req.(*PutCacheRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CacheService_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteCacheRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServiceServer).Delete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CacheService_Delete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServiceServer).Delete(ctx, req.(*DeleteCacheRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CacheService_GetOrExtendReservation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOrExtendReservationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServiceServer).GetOrExtendReservation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CacheService_GetOrExtendReservation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServiceServer).GetOrExtendReservation(ctx, req.(*GetOrExtendReservationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CacheService_ReleaseReservation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReleaseReservationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CacheServiceServer).ReleaseReservation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CacheService_ReleaseReservation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CacheServiceServer).ReleaseReservation(ctx, req.(*ReleaseReservationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CacheService_ServiceDesc is the grpc.ServiceDesc for CacheService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CacheService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "flyteidl.cacheservice.CacheService", + HandlerType: (*CacheServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Get", + Handler: _CacheService_Get_Handler, + }, + { + MethodName: "Put", + Handler: _CacheService_Put_Handler, + }, + { + MethodName: "Delete", + Handler: _CacheService_Delete_Handler, + }, + { + MethodName: "GetOrExtendReservation", + Handler: _CacheService_GetOrExtendReservation_Handler, + }, + { + MethodName: "ReleaseReservation", + Handler: _CacheService_ReleaseReservation_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "flyteidl/cacheservice/cacheservice.proto", +} diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json new file mode 100644 index 0000000000..79be0ba117 --- /dev/null +++ b/flyteidl/gen/pb-go/gateway/flyteidl/cacheservice/cacheservice.swagger.json @@ -0,0 +1,640 @@ +{ + "swagger": "2.0", + "info": { + "title": "flyteidl/cacheservice/cacheservice.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "CacheService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "BlobTypeBlobDimensionality": { + "type": "string", + "enum": [ + "SINGLE", + "MULTIPART" + ], + "default": "SINGLE" + }, + "SchemaColumnSchemaColumnType": { + "type": "string", + "enum": [ + "INTEGER", + "FLOAT", + "STRING", + "BOOLEAN", + "DATETIME", + "DURATION" + ], + "default": "INTEGER" + }, + "SchemaTypeSchemaColumn": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "A unique name -within the schema type- for the column" + }, + "type": { + "$ref": "#/definitions/SchemaColumnSchemaColumnType", + "description": "The column type. This allows a limited set of types currently." + } + } + }, + "StructuredDatasetTypeDatasetColumn": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name within the schema type for the column." + }, + "literal_type": { + "$ref": "#/definitions/coreLiteralType", + "description": "The column type." + } + } + }, + "cacheserviceCachedOutput": { + "type": "object", + "properties": { + "output_literals": { + "$ref": "#/definitions/coreLiteralMap", + "title": "Output literals" + }, + "output_uri": { + "type": "string", + "title": "URI to output data" + }, + "metadata": { + "$ref": "#/definitions/flyteidlcacheserviceMetadata", + "title": "Associated metadata" + } + }, + "description": "Represents cached output, either as literals or an URI, with associated metadata." + }, + "cacheserviceDeleteCacheResponse": { + "type": "object", + "description": "Response message of cache deletion operation.\n\nEmpty, success indicated by no errors" + }, + "cacheserviceGetCacheResponse": { + "type": "object", + "properties": { + "output": { + "$ref": "#/definitions/cacheserviceCachedOutput", + "title": "Cached output" + } + }, + "description": "Response with cached data for a given key." + }, + "cacheserviceKeyMapMetadata": { + "type": "object", + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Additional metadata as key-value pairs" + } + }, + "title": "Additional metadata as key-value pairs" + }, + "cacheservicePutCacheResponse": { + "type": "object", + "description": "Response message of cache store/update operation.\n\nEmpty, success indicated by no errors" + }, + "coreBinary": { + "type": "object", + "properties": { + "value": { + "type": "string", + "format": "byte" + }, + "tag": { + "type": "string" + } + }, + "description": "A simple byte array with a tag to help different parts of the system communicate about what is in the byte array.\nIt's strongly advisable that consumers of this type define a unique tag and validate the tag before parsing the data." + }, + "coreBlob": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/coreBlobMetadata" + }, + "uri": { + "type": "string" + } + }, + "description": "Refers to an offloaded set of files. It encapsulates the type of the store and a unique uri for where the data is.\nThere are no restrictions on how the uri is formatted since it will depend on how to interact with the store." + }, + "coreBlobMetadata": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/coreBlobType" + } + } + }, + "coreBlobType": { + "type": "object", + "properties": { + "format": { + "type": "string", + "title": "Format can be a free form string understood by SDK/UI etc like\ncsv, parquet etc" + }, + "dimensionality": { + "$ref": "#/definitions/BlobTypeBlobDimensionality" + } + }, + "title": "Defines type behavior for blob objects" + }, + "coreError": { + "type": "object", + "properties": { + "failed_node_id": { + "type": "string", + "description": "The node id that threw the error." + }, + "message": { + "type": "string", + "description": "Error message thrown." + } + }, + "description": "Represents an error thrown from a node." + }, + "coreIdentifier": { + "type": "object", + "properties": { + "resource_type": { + "$ref": "#/definitions/coreResourceType", + "description": "Identifies the specific type of resource that this identifier corresponds to." + }, + "project": { + "type": "string", + "description": "Name of the project the resource belongs to." + }, + "domain": { + "type": "string", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project." + }, + "name": { + "type": "string", + "description": "User provided value for the resource." + }, + "version": { + "type": "string", + "description": "Specific version of the resource." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." + } + }, + "description": "Encapsulation of fields that uniquely identifies a Flyte resource." + }, + "coreLiteral": { + "type": "object", + "properties": { + "scalar": { + "$ref": "#/definitions/coreScalar", + "description": "A simple value." + }, + "collection": { + "$ref": "#/definitions/coreLiteralCollection", + "description": "A collection of literals to allow nesting." + }, + "map": { + "$ref": "#/definitions/coreLiteralMap", + "description": "A map of strings to literals." + }, + "hash": { + "type": "string", + "title": "A hash representing this literal.\nThis is used for caching purposes. For more details refer to RFC 1893\n(https://github.com/flyteorg/flyte/blob/master/rfc/system/1893-caching-of-offloaded-objects.md)" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Additional metadata for literals." + } + }, + "description": "A simple value. This supports any level of nesting (e.g. array of array of array of Blobs) as well as simple primitives." + }, + "coreLiteralCollection": { + "type": "object", + "properties": { + "literals": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/coreLiteral" + } + } + }, + "description": "A collection of literals. This is a workaround since oneofs in proto messages cannot contain a repeated field." + }, + "coreLiteralMap": { + "type": "object", + "properties": { + "literals": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/coreLiteral" + } + } + }, + "description": "A map of literals. This is a workaround since oneofs in proto messages cannot contain a repeated field." + }, + "coreLiteralType": { + "type": "object", + "properties": { + "simple": { + "$ref": "#/definitions/coreSimpleType", + "description": "A simple type that can be compared one-to-one with another." + }, + "schema": { + "$ref": "#/definitions/coreSchemaType", + "description": "A complex type that requires matching of inner fields." + }, + "collection_type": { + "$ref": "#/definitions/coreLiteralType", + "description": "Defines the type of the value of a collection. Only homogeneous collections are allowed." + }, + "map_value_type": { + "$ref": "#/definitions/coreLiteralType", + "description": "Defines the type of the value of a map type. The type of the key is always a string." + }, + "blob": { + "$ref": "#/definitions/coreBlobType", + "description": "A blob might have specialized implementation details depending on associated metadata." + }, + "enum_type": { + "$ref": "#/definitions/flyteidlcoreEnumType", + "description": "Defines an enum with pre-defined string values." + }, + "structured_dataset_type": { + "$ref": "#/definitions/coreStructuredDatasetType", + "title": "Generalized schema support" + }, + "union_type": { + "$ref": "#/definitions/coreUnionType", + "description": "Defines an union type with pre-defined LiteralTypes." + }, + "metadata": { + "type": "object", + "description": "This field contains type metadata that is descriptive of the type, but is NOT considered in type-checking. This might be used by\nconsumers to identify special behavior or display extended information for the type." + }, + "annotation": { + "$ref": "#/definitions/coreTypeAnnotation", + "description": "This field contains arbitrary data that might have special semantic\nmeaning for the client but does not effect internal flyte behavior." + }, + "structure": { + "$ref": "#/definitions/coreTypeStructure", + "description": "Hints to improve type matching." + } + }, + "description": "Defines a strong type to allow type checking between interfaces." + }, + "corePrimitive": { + "type": "object", + "properties": { + "integer": { + "type": "string", + "format": "int64" + }, + "float_value": { + "type": "number", + "format": "double" + }, + "string_value": { + "type": "string" + }, + "boolean": { + "type": "boolean" + }, + "datetime": { + "type": "string", + "format": "date-time" + }, + "duration": { + "type": "string" + } + }, + "title": "Primitive Types" + }, + "coreResourceType": { + "type": "string", + "enum": [ + "UNSPECIFIED", + "TASK", + "WORKFLOW", + "LAUNCH_PLAN", + "DATASET" + ], + "default": "UNSPECIFIED", + "description": "Indicates a resource type within Flyte.\n\n - DATASET: A dataset represents an entity modeled in Flyte DataCatalog. A Dataset is also a versioned entity and can be a compilation of multiple individual objects.\nEventually all Catalog objects should be modeled similar to Flyte Objects. The Dataset entities makes it possible for the UI and CLI to act on the objects \nin a similar manner to other Flyte objects" + }, + "coreScalar": { + "type": "object", + "properties": { + "primitive": { + "$ref": "#/definitions/corePrimitive" + }, + "blob": { + "$ref": "#/definitions/coreBlob" + }, + "binary": { + "$ref": "#/definitions/coreBinary" + }, + "schema": { + "$ref": "#/definitions/flyteidlcoreSchema" + }, + "none_type": { + "$ref": "#/definitions/coreVoid" + }, + "error": { + "$ref": "#/definitions/coreError" + }, + "generic": { + "type": "object" + }, + "structured_dataset": { + "$ref": "#/definitions/coreStructuredDataset" + }, + "union": { + "$ref": "#/definitions/coreUnion" + } + } + }, + "coreSchemaType": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/SchemaTypeSchemaColumn" + }, + "description": "A list of ordered columns this schema comprises of." + } + }, + "description": "Defines schema columns and types to strongly type-validate schemas interoperability." + }, + "coreSimpleType": { + "type": "string", + "enum": [ + "NONE", + "INTEGER", + "FLOAT", + "STRING", + "BOOLEAN", + "DATETIME", + "DURATION", + "BINARY", + "ERROR", + "STRUCT" + ], + "default": "NONE", + "description": "Define a set of simple types." + }, + "coreStructuredDataset": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "title": "String location uniquely identifying where the data is.\nShould start with the storage location (e.g. s3://, gs://, bq://, etc.)" + }, + "metadata": { + "$ref": "#/definitions/coreStructuredDatasetMetadata" + } + } + }, + "coreStructuredDatasetMetadata": { + "type": "object", + "properties": { + "structured_dataset_type": { + "$ref": "#/definitions/coreStructuredDatasetType", + "description": "Bundle the type information along with the literal.\nThis is here because StructuredDatasets can often be more defined at run time than at compile time.\nThat is, at compile time you might only declare a task to return a pandas dataframe or a StructuredDataset,\nwithout any column information, but at run time, you might have that column information.\nflytekit python will copy this type information into the literal, from the type information, if not provided by\nthe various plugins (encoders).\nSince this field is run time generated, it's not used for any type checking." + } + } + }, + "coreStructuredDatasetType": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/StructuredDatasetTypeDatasetColumn" + }, + "description": "A list of ordered columns this schema comprises of." + }, + "format": { + "type": "string", + "description": "This is the storage format, the format of the bits at rest\nparquet, feather, csv, etc.\nFor two types to be compatible, the format will need to be an exact match." + }, + "external_schema_type": { + "type": "string", + "description": "This is a string representing the type that the bytes in external_schema_bytes are formatted in.\nThis is an optional field that will not be used for type checking." + }, + "external_schema_bytes": { + "type": "string", + "format": "byte", + "description": "The serialized bytes of a third-party schema library like Arrow.\nThis is an optional field that will not be used for type checking." + } + } + }, + "coreTypeAnnotation": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "A arbitrary JSON payload to describe a type." + } + }, + "description": "TypeAnnotation encapsulates registration time information about a type. This can be used for various control-plane operations. TypeAnnotation will not be available at runtime when a task runs." + }, + "coreTypeStructure": { + "type": "object", + "properties": { + "tag": { + "type": "string", + "title": "Must exactly match for types to be castable" + }, + "dataclass_type": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/coreLiteralType" + }, + "title": "dataclass_type only exists for dataclasses.\nThis is used to resolve the type of the fields of dataclass\nThe key is the field name, and the value is the literal type of the field\ne.g. For dataclass Foo, with fields a, and a is a string\nFoo.a will be resolved as a literal type of string from dataclass_type" + } + }, + "description": "Hints to improve type matching\ne.g. allows distinguishing output from custom type transformers\neven if the underlying IDL serialization matches." + }, + "coreUnion": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/coreLiteral" + }, + "type": { + "$ref": "#/definitions/coreLiteralType" + } + }, + "description": "The runtime representation of a tagged union value. See `UnionType` for more details." + }, + "coreUnionType": { + "type": "object", + "properties": { + "variants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/coreLiteralType" + }, + "description": "Predefined set of variants in union." + } + }, + "description": "Defines a tagged union type, also known as a variant (and formally as the sum type).\n\nA sum type S is defined by a sequence of types (A, B, C, ...), each tagged by a string tag\nA value of type S is constructed from a value of any of the variant types. The specific choice of type is recorded by\nstoring the varaint's tag with the literal value and can be examined in runtime.\n\nType S is typically written as\nS := Apple A | Banana B | Cantaloupe C | ...\n\nNotably, a nullable (optional) type is a sum type between some type X and the singleton type representing a null-value:\nOptional X := X | Null\n\nSee also: https://en.wikipedia.org/wiki/Tagged_union" + }, + "coreVoid": { + "type": "object", + "description": "Used to denote a nil/null/None assignment to a scalar value. The underlying LiteralType for Void is intentionally\nundefined since it can be assigned to a scalar of any LiteralType." + }, + "flyteidlcacheserviceGetOrExtendReservationResponse": { + "type": "object", + "properties": { + "reservation": { + "$ref": "#/definitions/flyteidlcacheserviceReservation", + "title": "The reservation that was created or extended" + } + }, + "title": "Request to get or extend a reservation for a cache key" + }, + "flyteidlcacheserviceMetadata": { + "type": "object", + "properties": { + "source_identifier": { + "$ref": "#/definitions/coreIdentifier", + "title": "Source task or workflow identifier" + }, + "key_map": { + "$ref": "#/definitions/cacheserviceKeyMapMetadata", + "title": "Additional metadata as key-value pairs" + }, + "created_at": { + "type": "string", + "format": "date-time", + "title": "Creation timestamp" + }, + "last_updated_at": { + "type": "string", + "format": "date-time", + "title": "Last update timestamp" + } + }, + "description": "Metadata for cached outputs, including the source identifier and timestamps." + }, + "flyteidlcacheserviceReleaseReservationResponse": { + "type": "object", + "description": "Response message of release reservation operation.\n\nEmpty, success indicated by no errors" + }, + "flyteidlcacheserviceReservation": { + "type": "object", + "properties": { + "key": { + "type": "string", + "title": "The unique ID for the reservation - same as the cache key" + }, + "owner_id": { + "type": "string", + "title": "The unique ID of the owner for the reservation" + }, + "heartbeat_interval": { + "type": "string", + "title": "Requested reservation extension heartbeat interval" + }, + "expires_at": { + "type": "string", + "format": "date-time", + "title": "Expiration timestamp of this reservation" + } + }, + "description": "A reservation including owner, heartbeat interval, expiration timestamp, and various metadata." + }, + "flyteidlcoreEnumType": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Predefined set of enum values." + } + }, + "description": "Enables declaring enum types, with predefined string values\nFor len(values) \u003e 0, the first value in the ordered list is regarded as the default value. If you wish\nTo provide no defaults, make the first value as undefined." + }, + "flyteidlcoreSchema": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/coreSchemaType" + } + }, + "description": "A strongly typed schema that defines the interface of data retrieved from the underlying storage medium." + }, + "googlerpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + } + } +} diff --git a/flyteidl/gen/pb_python/flyteidl/cacheservice/__init__.py b/flyteidl/gen/pb_python/flyteidl/cacheservice/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.py b/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.py new file mode 100644 index 0000000000..1cae31e683 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/cacheservice/cacheservice.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 +from flyteidl.core import types_pb2 as flyteidl_dot_core_dot_types__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(flyteidl/cacheservice/cacheservice.proto\x12\x15\x66lyteidl.cacheservice\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/types.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x96\x01\n\x0eKeyMapMetadata\x12I\n\x06values\x18\x01 \x03(\x0b\x32\x31.flyteidl.cacheservice.KeyMapMetadata.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x91\x02\n\x08Metadata\x12\x46\n\x11source_identifier\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x10sourceIdentifier\x12>\n\x07key_map\x18\x02 \x01(\x0b\x32%.flyteidl.cacheservice.KeyMapMetadataR\x06keyMap\x12\x39\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x42\n\x0flast_updated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rlastUpdatedAt\"\xbc\x01\n\x0c\x43\x61\x63hedOutput\x12\x44\n\x0foutput_literals\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\x0eoutputLiterals\x12\x1f\n\noutput_uri\x18\x02 \x01(\tH\x00R\toutputUri\x12;\n\x08metadata\x18\x03 \x01(\x0b\x32\x1f.flyteidl.cacheservice.MetadataR\x08metadataB\x08\n\x06output\"#\n\x0fGetCacheRequest\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\"O\n\x10GetCacheResponse\x12;\n\x06output\x18\x01 \x01(\x0b\x32#.flyteidl.cacheservice.CachedOutputR\x06output\"~\n\x0fPutCacheRequest\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12;\n\x06output\x18\x02 \x01(\x0b\x32#.flyteidl.cacheservice.CachedOutputR\x06output\x12\x1c\n\toverwrite\x18\x03 \x01(\x08R\toverwrite\"\x12\n\x10PutCacheResponse\"&\n\x12\x44\x65leteCacheRequest\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\"\x15\n\x13\x44\x65leteCacheResponse\"\xbf\x01\n\x0bReservation\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"\x96\x01\n\x1dGetOrExtendReservationRequest\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\x12H\n\x12heartbeat_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11heartbeatInterval\"f\n\x1eGetOrExtendReservationResponse\x12\x44\n\x0breservation\x18\x01 \x01(\x0b\x32\".flyteidl.cacheservice.ReservationR\x0breservation\"H\n\x19ReleaseReservationRequest\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x19\n\x08owner_id\x18\x02 \x01(\tR\x07ownerId\"\x1c\n\x1aReleaseReservationResponse2\xa2\x04\n\x0c\x43\x61\x63heService\x12V\n\x03Get\x12&.flyteidl.cacheservice.GetCacheRequest\x1a\'.flyteidl.cacheservice.GetCacheResponse\x12V\n\x03Put\x12&.flyteidl.cacheservice.PutCacheRequest\x1a\'.flyteidl.cacheservice.PutCacheResponse\x12_\n\x06\x44\x65lete\x12).flyteidl.cacheservice.DeleteCacheRequest\x1a*.flyteidl.cacheservice.DeleteCacheResponse\x12\x85\x01\n\x16GetOrExtendReservation\x12\x34.flyteidl.cacheservice.GetOrExtendReservationRequest\x1a\x35.flyteidl.cacheservice.GetOrExtendReservationResponse\x12y\n\x12ReleaseReservation\x12\x30.flyteidl.cacheservice.ReleaseReservationRequest\x1a\x31.flyteidl.cacheservice.ReleaseReservationResponseB\xe7\x01\n\x19\x63om.flyteidl.cacheserviceB\x11\x43\x61\x63heserviceProtoP\x01ZBgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/cacheservice\xa2\x02\x03\x46\x43X\xaa\x02\x15\x46lyteidl.Cacheservice\xca\x02\x15\x46lyteidl\\Cacheservice\xe2\x02!Flyteidl\\Cacheservice\\GPBMetadata\xea\x02\x16\x46lyteidl::Cacheserviceb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.cacheservice.cacheservice_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\031com.flyteidl.cacheserviceB\021CacheserviceProtoP\001ZBgithub.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/cacheservice\242\002\003FCX\252\002\025Flyteidl.Cacheservice\312\002\025Flyteidl\\Cacheservice\342\002!Flyteidl\\Cacheservice\\GPBMetadata\352\002\026Flyteidl::Cacheservice' + _KEYMAPMETADATA_VALUESENTRY._options = None + _KEYMAPMETADATA_VALUESENTRY._serialized_options = b'8\001' + _globals['_KEYMAPMETADATA']._serialized_start=253 + _globals['_KEYMAPMETADATA']._serialized_end=403 + _globals['_KEYMAPMETADATA_VALUESENTRY']._serialized_start=346 + _globals['_KEYMAPMETADATA_VALUESENTRY']._serialized_end=403 + _globals['_METADATA']._serialized_start=406 + _globals['_METADATA']._serialized_end=679 + _globals['_CACHEDOUTPUT']._serialized_start=682 + _globals['_CACHEDOUTPUT']._serialized_end=870 + _globals['_GETCACHEREQUEST']._serialized_start=872 + _globals['_GETCACHEREQUEST']._serialized_end=907 + _globals['_GETCACHERESPONSE']._serialized_start=909 + _globals['_GETCACHERESPONSE']._serialized_end=988 + _globals['_PUTCACHEREQUEST']._serialized_start=990 + _globals['_PUTCACHEREQUEST']._serialized_end=1116 + _globals['_PUTCACHERESPONSE']._serialized_start=1118 + _globals['_PUTCACHERESPONSE']._serialized_end=1136 + _globals['_DELETECACHEREQUEST']._serialized_start=1138 + _globals['_DELETECACHEREQUEST']._serialized_end=1176 + _globals['_DELETECACHERESPONSE']._serialized_start=1178 + _globals['_DELETECACHERESPONSE']._serialized_end=1199 + _globals['_RESERVATION']._serialized_start=1202 + _globals['_RESERVATION']._serialized_end=1393 + _globals['_GETOREXTENDRESERVATIONREQUEST']._serialized_start=1396 + _globals['_GETOREXTENDRESERVATIONREQUEST']._serialized_end=1546 + _globals['_GETOREXTENDRESERVATIONRESPONSE']._serialized_start=1548 + _globals['_GETOREXTENDRESERVATIONRESPONSE']._serialized_end=1650 + _globals['_RELEASERESERVATIONREQUEST']._serialized_start=1652 + _globals['_RELEASERESERVATIONREQUEST']._serialized_end=1724 + _globals['_RELEASERESERVATIONRESPONSE']._serialized_start=1726 + _globals['_RELEASERESERVATIONRESPONSE']._serialized_end=1754 + _globals['_CACHESERVICE']._serialized_start=1757 + _globals['_CACHESERVICE']._serialized_end=2303 +# @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.pyi new file mode 100644 index 0000000000..ad5a5c193a --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2.pyi @@ -0,0 +1,123 @@ +from flyteidl.core import literals_pb2 as _literals_pb2 +from flyteidl.core import types_pb2 as _types_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import interface_pb2 as _interface_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class KeyMapMetadata(_message.Message): + __slots__ = ["values"] + class ValuesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.ScalarMap[str, str] + def __init__(self, values: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class Metadata(_message.Message): + __slots__ = ["source_identifier", "key_map", "created_at", "last_updated_at"] + SOURCE_IDENTIFIER_FIELD_NUMBER: _ClassVar[int] + KEY_MAP_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + LAST_UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + source_identifier: _identifier_pb2.Identifier + key_map: KeyMapMetadata + created_at: _timestamp_pb2.Timestamp + last_updated_at: _timestamp_pb2.Timestamp + def __init__(self, source_identifier: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., key_map: _Optional[_Union[KeyMapMetadata, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CachedOutput(_message.Message): + __slots__ = ["output_literals", "output_uri", "metadata"] + OUTPUT_LITERALS_FIELD_NUMBER: _ClassVar[int] + OUTPUT_URI_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + output_literals: _literals_pb2.LiteralMap + output_uri: str + metadata: Metadata + def __init__(self, output_literals: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., output_uri: _Optional[str] = ..., metadata: _Optional[_Union[Metadata, _Mapping]] = ...) -> None: ... + +class GetCacheRequest(_message.Message): + __slots__ = ["key"] + KEY_FIELD_NUMBER: _ClassVar[int] + key: str + def __init__(self, key: _Optional[str] = ...) -> None: ... + +class GetCacheResponse(_message.Message): + __slots__ = ["output"] + OUTPUT_FIELD_NUMBER: _ClassVar[int] + output: CachedOutput + def __init__(self, output: _Optional[_Union[CachedOutput, _Mapping]] = ...) -> None: ... + +class PutCacheRequest(_message.Message): + __slots__ = ["key", "output", "overwrite"] + KEY_FIELD_NUMBER: _ClassVar[int] + OUTPUT_FIELD_NUMBER: _ClassVar[int] + OVERWRITE_FIELD_NUMBER: _ClassVar[int] + key: str + output: CachedOutput + overwrite: bool + def __init__(self, key: _Optional[str] = ..., output: _Optional[_Union[CachedOutput, _Mapping]] = ..., overwrite: bool = ...) -> None: ... + +class PutCacheResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class DeleteCacheRequest(_message.Message): + __slots__ = ["key"] + KEY_FIELD_NUMBER: _ClassVar[int] + key: str + def __init__(self, key: _Optional[str] = ...) -> None: ... + +class DeleteCacheResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class Reservation(_message.Message): + __slots__ = ["key", "owner_id", "heartbeat_interval", "expires_at"] + KEY_FIELD_NUMBER: _ClassVar[int] + OWNER_ID_FIELD_NUMBER: _ClassVar[int] + HEARTBEAT_INTERVAL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + key: str + owner_id: str + heartbeat_interval: _duration_pb2.Duration + expires_at: _timestamp_pb2.Timestamp + def __init__(self, key: _Optional[str] = ..., owner_id: _Optional[str] = ..., heartbeat_interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class GetOrExtendReservationRequest(_message.Message): + __slots__ = ["key", "owner_id", "heartbeat_interval"] + KEY_FIELD_NUMBER: _ClassVar[int] + OWNER_ID_FIELD_NUMBER: _ClassVar[int] + HEARTBEAT_INTERVAL_FIELD_NUMBER: _ClassVar[int] + key: str + owner_id: str + heartbeat_interval: _duration_pb2.Duration + def __init__(self, key: _Optional[str] = ..., owner_id: _Optional[str] = ..., heartbeat_interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + +class GetOrExtendReservationResponse(_message.Message): + __slots__ = ["reservation"] + RESERVATION_FIELD_NUMBER: _ClassVar[int] + reservation: Reservation + def __init__(self, reservation: _Optional[_Union[Reservation, _Mapping]] = ...) -> None: ... + +class ReleaseReservationRequest(_message.Message): + __slots__ = ["key", "owner_id"] + KEY_FIELD_NUMBER: _ClassVar[int] + OWNER_ID_FIELD_NUMBER: _ClassVar[int] + key: str + owner_id: str + def __init__(self, key: _Optional[str] = ..., owner_id: _Optional[str] = ...) -> None: ... + +class ReleaseReservationResponse(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2_grpc.py new file mode 100644 index 0000000000..7b7bd54f09 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/cacheservice/cacheservice_pb2_grpc.py @@ -0,0 +1,209 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from flyteidl.cacheservice import cacheservice_pb2 as flyteidl_dot_cacheservice_dot_cacheservice__pb2 + + +class CacheServiceStub(object): + """ + CacheService defines operations for cache management including retrieval, storage, and deletion of cached task/workflow outputs. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Get = channel.unary_unary( + '/flyteidl.cacheservice.CacheService/Get', + request_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetCacheRequest.SerializeToString, + response_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetCacheResponse.FromString, + ) + self.Put = channel.unary_unary( + '/flyteidl.cacheservice.CacheService/Put', + request_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.PutCacheRequest.SerializeToString, + response_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.PutCacheResponse.FromString, + ) + self.Delete = channel.unary_unary( + '/flyteidl.cacheservice.CacheService/Delete', + request_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.DeleteCacheRequest.SerializeToString, + response_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.DeleteCacheResponse.FromString, + ) + self.GetOrExtendReservation = channel.unary_unary( + '/flyteidl.cacheservice.CacheService/GetOrExtendReservation', + request_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetOrExtendReservationRequest.SerializeToString, + response_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetOrExtendReservationResponse.FromString, + ) + self.ReleaseReservation = channel.unary_unary( + '/flyteidl.cacheservice.CacheService/ReleaseReservation', + request_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.ReleaseReservationRequest.SerializeToString, + response_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.ReleaseReservationResponse.FromString, + ) + + +class CacheServiceServicer(object): + """ + CacheService defines operations for cache management including retrieval, storage, and deletion of cached task/workflow outputs. + """ + + def Get(self, request, context): + """Retrieves cached data by key. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Put(self, request, context): + """Stores or updates cached data by key. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Delete(self, request, context): + """Deletes cached data by key. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetOrExtendReservation(self, request, context): + """Get or extend a reservation for a cache key + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ReleaseReservation(self, request, context): + """Release the reservation for a cache key + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CacheServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Get': grpc.unary_unary_rpc_method_handler( + servicer.Get, + request_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetCacheRequest.FromString, + response_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetCacheResponse.SerializeToString, + ), + 'Put': grpc.unary_unary_rpc_method_handler( + servicer.Put, + request_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.PutCacheRequest.FromString, + response_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.PutCacheResponse.SerializeToString, + ), + 'Delete': grpc.unary_unary_rpc_method_handler( + servicer.Delete, + request_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.DeleteCacheRequest.FromString, + response_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.DeleteCacheResponse.SerializeToString, + ), + 'GetOrExtendReservation': grpc.unary_unary_rpc_method_handler( + servicer.GetOrExtendReservation, + request_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetOrExtendReservationRequest.FromString, + response_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetOrExtendReservationResponse.SerializeToString, + ), + 'ReleaseReservation': grpc.unary_unary_rpc_method_handler( + servicer.ReleaseReservation, + request_deserializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.ReleaseReservationRequest.FromString, + response_serializer=flyteidl_dot_cacheservice_dot_cacheservice__pb2.ReleaseReservationResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'flyteidl.cacheservice.CacheService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CacheService(object): + """ + CacheService defines operations for cache management including retrieval, storage, and deletion of cached task/workflow outputs. + """ + + @staticmethod + def Get(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.cacheservice.CacheService/Get', + flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetCacheRequest.SerializeToString, + flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetCacheResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Put(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.cacheservice.CacheService/Put', + flyteidl_dot_cacheservice_dot_cacheservice__pb2.PutCacheRequest.SerializeToString, + flyteidl_dot_cacheservice_dot_cacheservice__pb2.PutCacheResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Delete(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.cacheservice.CacheService/Delete', + flyteidl_dot_cacheservice_dot_cacheservice__pb2.DeleteCacheRequest.SerializeToString, + flyteidl_dot_cacheservice_dot_cacheservice__pb2.DeleteCacheResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetOrExtendReservation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.cacheservice.CacheService/GetOrExtendReservation', + flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetOrExtendReservationRequest.SerializeToString, + flyteidl_dot_cacheservice_dot_cacheservice__pb2.GetOrExtendReservationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ReleaseReservation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.cacheservice.CacheService/ReleaseReservation', + flyteidl_dot_cacheservice_dot_cacheservice__pb2.ReleaseReservationRequest.SerializeToString, + flyteidl_dot_cacheservice_dot_cacheservice__pb2.ReleaseReservationResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/flyteidl/gen/pb_rust/flyteidl.cacheservice.rs b/flyteidl/gen/pb_rust/flyteidl.cacheservice.rs new file mode 100644 index 0000000000..9f2122fc4e --- /dev/null +++ b/flyteidl/gen/pb_rust/flyteidl.cacheservice.rs @@ -0,0 +1,172 @@ +// @generated +/// +/// Additional metadata as key-value pairs +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct KeyMapMetadata { + /// Additional metadata as key-value pairs + #[prost(map="string, string", tag="1")] + pub values: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, +} +/// +/// Metadata for cached outputs, including the source identifier and timestamps. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Metadata { + /// Source task or workflow identifier + #[prost(message, optional, tag="1")] + pub source_identifier: ::core::option::Option, + /// Additional metadata as key-value pairs + #[prost(message, optional, tag="2")] + pub key_map: ::core::option::Option, + /// Creation timestamp + #[prost(message, optional, tag="3")] + pub created_at: ::core::option::Option<::prost_types::Timestamp>, + /// Last update timestamp + #[prost(message, optional, tag="4")] + pub last_updated_at: ::core::option::Option<::prost_types::Timestamp>, +} +/// +/// Represents cached output, either as literals or an URI, with associated metadata. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CachedOutput { + /// Associated metadata + #[prost(message, optional, tag="3")] + pub metadata: ::core::option::Option, + #[prost(oneof="cached_output::Output", tags="1, 2")] + pub output: ::core::option::Option, +} +/// Nested message and enum types in `CachedOutput`. +pub mod cached_output { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Output { + /// Output literals + #[prost(message, tag="1")] + OutputLiterals(super::super::core::LiteralMap), + /// URI to output data + #[prost(string, tag="2")] + OutputUri(::prost::alloc::string::String), + } +} +/// +/// Request to retrieve cached data by key. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetCacheRequest { + /// Cache key + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, +} +/// +/// Response with cached data for a given key. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetCacheResponse { + /// Cached output + #[prost(message, optional, tag="1")] + pub output: ::core::option::Option, +} +/// +/// Request to store/update cached data by key. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PutCacheRequest { + /// Cache key + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + /// Output to cache + #[prost(message, optional, tag="2")] + pub output: ::core::option::Option, + /// Overwrite flag + #[prost(bool, tag="3")] + pub overwrite: bool, +} +/// +/// Response message of cache store/update operation. +/// +/// Empty, success indicated by no errors +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PutCacheResponse { +} +/// +/// Request to delete cached data by key. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeleteCacheRequest { + /// Cache key + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, +} +/// +/// Response message of cache deletion operation. +/// +/// Empty, success indicated by no errors +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeleteCacheResponse { +} +/// A reservation including owner, heartbeat interval, expiration timestamp, and various metadata. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Reservation { + /// The unique ID for the reservation - same as the cache key + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + /// The unique ID of the owner for the reservation + #[prost(string, tag="2")] + pub owner_id: ::prost::alloc::string::String, + /// Requested reservation extension heartbeat interval + #[prost(message, optional, tag="3")] + pub heartbeat_interval: ::core::option::Option<::prost_types::Duration>, + /// Expiration timestamp of this reservation + #[prost(message, optional, tag="4")] + pub expires_at: ::core::option::Option<::prost_types::Timestamp>, +} +/// +/// Request to get or extend a reservation for a cache key +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetOrExtendReservationRequest { + /// The unique ID for the reservation - same as the cache key + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + /// The unique ID of the owner for the reservation + #[prost(string, tag="2")] + pub owner_id: ::prost::alloc::string::String, + /// Requested reservation extension heartbeat interval + #[prost(message, optional, tag="3")] + pub heartbeat_interval: ::core::option::Option<::prost_types::Duration>, +} +/// +/// Request to get or extend a reservation for a cache key +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetOrExtendReservationResponse { + /// The reservation that was created or extended + #[prost(message, optional, tag="1")] + pub reservation: ::core::option::Option, +} +/// +/// Request to release the reservation for a cache key +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReleaseReservationRequest { + /// The unique ID for the reservation - same as the cache key + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + /// The unique ID of the owner for the reservation + #[prost(string, tag="2")] + pub owner_id: ::prost::alloc::string::String, +} +/// +/// Response message of release reservation operation. +/// +/// Empty, success indicated by no errors +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ReleaseReservationResponse { +} +// @@protoc_insertion_point(module) diff --git a/flyteidl/generate_mocks.sh b/flyteidl/generate_mocks.sh index 4ada054af1..3e3974def8 100755 --- a/flyteidl/generate_mocks.sh +++ b/flyteidl/generate_mocks.sh @@ -4,3 +4,4 @@ set -x mockery -dir=gen/pb-go/flyteidl/service/ -all -output=clients/go/admin/mocks mockery -dir=gen/pb-go/flyteidl/datacatalog/ -name=DataCatalogClient -output=clients/go/datacatalog/mocks +mockery -dir=gen/pb-go/flyteidl/cacheservice/ -name=CacheServiceClient -output=clients/go/cacheservice/mocks diff --git a/flyteidl/protos/flyteidl/cacheservice/cacheservice.proto b/flyteidl/protos/flyteidl/cacheservice/cacheservice.proto new file mode 100644 index 0000000000..c85e2eb55c --- /dev/null +++ b/flyteidl/protos/flyteidl/cacheservice/cacheservice.proto @@ -0,0 +1,143 @@ +syntax = "proto3"; + +package flyteidl.cacheservice; + +import "flyteidl/core/literals.proto"; +import "flyteidl/core/types.proto"; +import "flyteidl/core/identifier.proto"; +import "flyteidl/core/interface.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/cacheservice"; + +/* + * CacheService defines operations for cache management including retrieval, storage, and deletion of cached task/workflow outputs. + */ +service CacheService { + // Retrieves cached data by key. + rpc Get (GetCacheRequest) returns (GetCacheResponse); + + // Stores or updates cached data by key. + rpc Put (PutCacheRequest) returns (PutCacheResponse); + + // Deletes cached data by key. + rpc Delete (DeleteCacheRequest) returns (DeleteCacheResponse); + + // Get or extend a reservation for a cache key + rpc GetOrExtendReservation (GetOrExtendReservationRequest) returns (GetOrExtendReservationResponse); + + // Release the reservation for a cache key + rpc ReleaseReservation (ReleaseReservationRequest) returns (ReleaseReservationResponse); +} + +/* + * Additional metadata as key-value pairs + */ +message KeyMapMetadata { + map values = 1; // Additional metadata as key-value pairs +} + +/* + * Metadata for cached outputs, including the source identifier and timestamps. + */ +message Metadata { + core.Identifier source_identifier = 1; // Source task or workflow identifier + KeyMapMetadata key_map = 2; // Additional metadata as key-value pairs + google.protobuf.Timestamp created_at = 3; // Creation timestamp + google.protobuf.Timestamp last_updated_at = 4; // Last update timestamp +} + +/* + * Represents cached output, either as literals or an URI, with associated metadata. + */ +message CachedOutput { + oneof output { + flyteidl.core.LiteralMap output_literals = 1; // Output literals + string output_uri = 2; // URI to output data + } + Metadata metadata = 3; // Associated metadata +} + +/* + * Request to retrieve cached data by key. + */ +message GetCacheRequest { + string key = 1; // Cache key +} + +/* + * Response with cached data for a given key. + */ +message GetCacheResponse { + CachedOutput output = 1; // Cached output +} + +/* + * Request to store/update cached data by key. + */ +message PutCacheRequest { + string key = 1; // Cache key + CachedOutput output = 2; // Output to cache + bool overwrite = 3; // Overwrite flag +} + +/* + * Response message of cache store/update operation. + */ +message PutCacheResponse { + // Empty, success indicated by no errors +} + +/* + * Request to delete cached data by key. + */ +message DeleteCacheRequest { + string key = 1; // Cache key +} + +/* + * Response message of cache deletion operation. + */ +message DeleteCacheResponse { + // Empty, success indicated by no errors +} + +// A reservation including owner, heartbeat interval, expiration timestamp, and various metadata. +message Reservation { + string key = 1; // The unique ID for the reservation - same as the cache key + string owner_id = 2; // The unique ID of the owner for the reservation + google.protobuf.Duration heartbeat_interval = 3; // Requested reservation extension heartbeat interval + google.protobuf.Timestamp expires_at = 4; // Expiration timestamp of this reservation +} + +/* + * Request to get or extend a reservation for a cache key + */ +message GetOrExtendReservationRequest { + string key = 1; // The unique ID for the reservation - same as the cache key + string owner_id = 2; // The unique ID of the owner for the reservation + google.protobuf.Duration heartbeat_interval = 3; // Requested reservation extension heartbeat interval +} + +/* + * Request to get or extend a reservation for a cache key + */ +message GetOrExtendReservationResponse { + Reservation reservation = 1; // The reservation that was created or extended +} + +/* + * Request to release the reservation for a cache key + */ +message ReleaseReservationRequest { + string key = 1; // The unique ID for the reservation - same as the cache key + string owner_id = 2; // The unique ID of the owner for the reservation +} + +/* + * Response message of release reservation operation. + */ +message ReleaseReservationResponse { + // Empty, success indicated by no errors +} \ No newline at end of file From 2256c2b6347ca9f1a1f2a01ace9d4db8609a17f6 Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Fri, 1 Mar 2024 06:16:48 +0800 Subject: [PATCH 14/76] [BUG] Invalid "resources" scope in clusterresourcesync/deployment.yaml (#4916) * fix invalid clusterresourcesync/deployment.yaml Signed-off-by: Ryan Lo * update README.md Signed-off-by: Ryan Lo * update generated yaml files Signed-off-by: Ryan Lo * fix typo Signed-off-by: Ryan Lo --------- Signed-off-by: Ryan Lo --- charts/flyte-core/README.md | 3 ++- .../templates/clusterresourcesync/deployment.yaml | 7 ++++--- charts/flyte-core/values.yaml | 2 ++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index 73b5fceae5..31fd4791b9 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,6 +70,7 @@ 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 | diff --git a/charts/flyte-core/templates/clusterresourcesync/deployment.yaml b/charts/flyte-core/templates/clusterresourcesync/deployment.yaml index 19c0b9c48a..a2fb5d04ae 100644 --- a/charts/flyte-core/templates/clusterresourcesync/deployment.yaml +++ b/charts/flyte-core/templates/clusterresourcesync/deployment.yaml @@ -34,6 +34,10 @@ 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 }} @@ -52,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 diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml index c104af3e75..d5c21c5131 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -896,6 +896,8 @@ cluster_resource_manager: podLabels: {} # -- nodeSelector for ClusterResource deployment nodeSelector: {} + # -- Resources for ClusterResource deployment + resources: {} # -- Configmap for ClusterResource parameters config: # -- ClusterResource parameters From a946070093f30b3cbed04fd7b006adcbe7279be1 Mon Sep 17 00:00:00 2001 From: Chi-Sheng Liu Date: Fri, 1 Mar 2024 17:06:50 +0800 Subject: [PATCH 15/76] docs: Remove redundant dollar signs (#4964) Signed-off-by: Chi-Sheng Liu --- docs/community/troubleshoot.rst | 16 ++++++++-------- docs/deployment/deployment/multicluster.rst | 9 ++++++--- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/community/troubleshoot.rst b/docs/community/troubleshoot.rst index 1228b5f5a0..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,7 +130,7 @@ 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 diff --git a/docs/deployment/deployment/multicluster.rst b/docs/deployment/deployment/multicluster.rst index e8c6b84f13..52e0378955 100644 --- a/docs/deployment/deployment/multicluster.rst +++ b/docs/deployment/deployment/multicluster.rst @@ -398,11 +398,14 @@ label has to be 1. 11. Verify that all Pods in the ``flyte`` namespace are ``Running``: +.. prompt:: bash $ + + kubectl get pods -n flyte + Example output: -.. prompt:: bash $ +.. prompt:: - kubectl get pods -n flyte NAME READY STATUS RESTARTS AGE datacatalog-86f6b9bf64-bp2cj 1/1 Running 0 23h datacatalog-86f6b9bf64-fjzcp 1/1 Running 0 23h @@ -658,4 +661,4 @@ The process can be repeated for additional clusters. 15. A successful execution should be visible on the UI, confirming it ran in the new cluster: - .. image:: https://raw.githubusercontent.com/flyteorg/static-resources/main/common/multicluster-execution.png \ No newline at end of file + .. image:: https://raw.githubusercontent.com/flyteorg/static-resources/main/common/multicluster-execution.png From cf21877017c2bc615fd13a0b21311e2a340085ea Mon Sep 17 00:00:00 2001 From: novahow <58504997+novahow@users.noreply.github.com> Date: Mon, 4 Mar 2024 16:27:35 +0800 Subject: [PATCH 16/76] add hostname to input (#4939) Signed-off-by: novahow --- flyteplugins/go/tasks/logs/logging_utils.go | 1 + .../go/tasks/logs/logging_utils_test.go | 65 +++++++++++++++++-- 2 files changed, 61 insertions(+), 5 deletions(-) diff --git a/flyteplugins/go/tasks/logs/logging_utils.go b/flyteplugins/go/tasks/logs/logging_utils.go index 04d23f4ec8..45d12624de 100644 --- a/flyteplugins/go/tasks/logs/logging_utils.go +++ b/flyteplugins/go/tasks/logs/logging_utils.go @@ -52,6 +52,7 @@ func GetLogsForContainerInPod(ctx context.Context, logPlugin tasklog.Plugin, tas TaskExecutionID: taskExecID, ExtraTemplateVars: extraLogTemplateVars, TaskTemplate: taskTemplate, + HostName: pod.Spec.Hostname, }, ) diff --git a/flyteplugins/go/tasks/logs/logging_utils_test.go b/flyteplugins/go/tasks/logs/logging_utils_test.go index 946d069d50..e8c716e341 100644 --- a/flyteplugins/go/tasks/logs/logging_utils_test.go +++ b/flyteplugins/go/tasks/logs/logging_utils_test.go @@ -210,6 +210,40 @@ func TestGetLogsForContainerInPod_All(t *testing.T) { assert.Len(t, logs, 2) } +func TestGetLogsForContainerInPod_HostName(t *testing.T) { + logPlugin, err := InitializeLogPlugins(&LogConfig{ + IsKubernetesEnabled: true, + KubernetesURL: "k8s.com", + IsCloudwatchEnabled: true, + CloudwatchRegion: "us-east-1", + CloudwatchLogGroup: "/kubernetes/flyte-production", + }) + assert.NoError(t, err) + + pod := &v1.Pod{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "ContainerName", + }, + }, + Hostname: "my-hostname", + }, + Status: v1.PodStatus{ + ContainerStatuses: []v1.ContainerStatus{ + { + ContainerID: "ContainerID", + }, + }, + }, + } + pod.Name = podName + + logs, err := GetLogsForContainerInPod(context.TODO(), logPlugin, dummyTaskExecID(), pod, 0, " Suffix", nil, nil) + assert.Nil(t, err) + assert.Len(t, logs, 2) +} + func TestGetLogsForContainerInPod_Stackdriver(t *testing.T) { logPlugin, err := InitializeLogPlugins(&LogConfig{ IsStackDriverEnabled: true, @@ -268,7 +302,7 @@ func TestGetLogsForContainerInPod_LegacyTemplate(t *testing.T) { MessageFormat: core.TaskLog_JSON, Name: "Stackdriver Logs my-Suffix", }, - }) + }, "") }) t.Run("StackDriver", func(t *testing.T) { @@ -281,11 +315,11 @@ func TestGetLogsForContainerInPod_LegacyTemplate(t *testing.T) { MessageFormat: core.TaskLog_JSON, Name: "Stackdriver Logs my-Suffix", }, - }) + }, "") }) } -func assertTestSucceeded(tb testing.TB, config *LogConfig, taskTemplate *core.TaskTemplate, expectedTaskLogs []*core.TaskLog) { +func assertTestSucceeded(tb testing.TB, config *LogConfig, taskTemplate *core.TaskTemplate, expectedTaskLogs []*core.TaskLog, hostname string) { logPlugin, err := InitializeLogPlugins(config) assert.NoError(tb, err) @@ -300,6 +334,7 @@ func assertTestSucceeded(tb testing.TB, config *LogConfig, taskTemplate *core.Ta Name: "ContainerName", }, }, + Hostname: hostname, }, Status: v1.PodStatus{ ContainerStatuses: []v1.ContainerStatus{ @@ -347,7 +382,27 @@ func TestGetLogsForContainerInPod_Templates(t *testing.T) { MessageFormat: core.TaskLog_JSON, Name: "Internal my-Suffix", }, - }) + }, "") +} + +func TestGetLogsForContainerInPodTemplates_Hostname(t *testing.T) { + assertTestSucceeded(t, &LogConfig{ + Templates: []tasklog.TemplateLogPlugin{ + { + DisplayName: "StackDriver", + TemplateURIs: []string{ + "{{ .hostname }}/{{ .namespace }}/{{ .podName }}/{{ .containerName }}/{{ .containerId }}", + }, + MessageFormat: core.TaskLog_JSON, + }, + }, + }, nil, []*core.TaskLog{ + { + Uri: "my-hostname/my-namespace/my-pod/ContainerName/ContainerID", + MessageFormat: core.TaskLog_JSON, + Name: "StackDriver my-Suffix", + }, + }, "my-hostname") } func TestGetLogsForContainerInPod_Flyteinteractive(t *testing.T) { @@ -507,7 +562,7 @@ func TestGetLogsForContainerInPod_Flyteinteractive(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - assertTestSucceeded(t, tt.config, tt.template, tt.expectedTaskLogs) + assertTestSucceeded(t, tt.config, tt.template, tt.expectedTaskLogs, "") }) } } From 4a95abffbe3d2782e01ddcda6ad1ab15b962b8cb Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Mon, 4 Mar 2024 14:16:47 -0800 Subject: [PATCH 17/76] Fix Monodocs build (#5000) Signed-off-by: Kevin Su --- .github/workflows/tests.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index aea9e0fabb..831beda79d 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,6 +64,7 @@ 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 From caed58456f3039840081bf42f7775500b542a36b Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Mon, 4 Mar 2024 17:50:10 -0800 Subject: [PATCH 18/76] Allow specifying flyte pod webhook deployment resources (#4988) --- charts/flyte-core/README.md | 3 +++ charts/flyte-core/templates/propeller/webhook.yaml | 3 +++ charts/flyte-core/values.yaml | 6 ++++++ deployment/eks/flyte_aws_scheduler_helm_generated.yaml | 5 +++++ deployment/eks/flyte_helm_dataplane_generated.yaml | 5 +++++ deployment/eks/flyte_helm_generated.yaml | 5 +++++ deployment/gcp/flyte_helm_dataplane_generated.yaml | 5 +++++ deployment/gcp/flyte_helm_generated.yaml | 5 +++++ deployment/sandbox/flyte_helm_generated.yaml | 5 +++++ 9 files changed, 42 insertions(+) diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index 31fd4791b9..6349b01a4b 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -290,6 +290,9 @@ 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 | diff --git a/charts/flyte-core/templates/propeller/webhook.yaml b/charts/flyte-core/templates/propeller/webhook.yaml index 941ed1add1..e34241d905 100644 --- a/charts/flyte-core/templates/propeller/webhook.yaml +++ b/charts/flyte-core/templates/propeller/webhook.yaml @@ -103,6 +103,9 @@ spec: 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.yaml b/charts/flyte-core/values.yaml index d5c21c5131..de307f6649 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -466,6 +466,12 @@ webhook: seLinuxOptions: type: spc_t + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi + # ------------------------------------------------ # # COMMON SETTINGS diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml index c1865eeb87..5b559bd9de 100644 --- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml +++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml @@ -1411,6 +1411,11 @@ spec: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi volumeMounts: - name: config-volume mountPath: /etc/flyte/config diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml index 510ef5c3c8..8d82b6f2a0 100644 --- a/deployment/eks/flyte_helm_dataplane_generated.yaml +++ b/deployment/eks/flyte_helm_dataplane_generated.yaml @@ -571,6 +571,11 @@ spec: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi volumeMounts: - name: config-volume mountPath: /etc/flyte/config diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml index 4cd67923ba..25c1701051 100644 --- a/deployment/eks/flyte_helm_generated.yaml +++ b/deployment/eks/flyte_helm_generated.yaml @@ -1541,6 +1541,11 @@ spec: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi volumeMounts: - name: config-volume mountPath: /etc/flyte/config diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml index 59a0fca4f6..a63234aec2 100644 --- a/deployment/gcp/flyte_helm_dataplane_generated.yaml +++ b/deployment/gcp/flyte_helm_dataplane_generated.yaml @@ -578,6 +578,11 @@ spec: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi volumeMounts: - name: config-volume mountPath: /etc/flyte/config diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml index f220536479..315c83f114 100644 --- a/deployment/gcp/flyte_helm_generated.yaml +++ b/deployment/gcp/flyte_helm_generated.yaml @@ -1563,6 +1563,11 @@ spec: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi volumeMounts: - name: config-volume mountPath: /etc/flyte/config diff --git a/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index bfd40edd37..d8ddf237a6 100644 --- a/deployment/sandbox/flyte_helm_generated.yaml +++ b/deployment/sandbox/flyte_helm_generated.yaml @@ -7306,6 +7306,11 @@ spec: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 500Mi volumeMounts: - name: config-volume mountPath: /etc/flyte/config From 4270c539101bed59e0d4bc2a37a0704550d61982 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Mon, 4 Mar 2024 23:24:36 -0800 Subject: [PATCH 19/76] Pin helmdocs to 1.12.0 (#4995) Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- script/generate_helm.sh | 53 ++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/script/generate_helm.sh b/script/generate_helm.sh index 43caee8203..1c836b9002 100755 --- a/script/generate_helm.sh +++ b/script/generate_helm.sh @@ -7,7 +7,7 @@ echo "Generating Helm" HELM_SKIP_INSTALL=${HELM_SKIP_INSTALL:-false} if [ "${HELM_SKIP_INSTALL}" != "true" ]; then - curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash + curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash fi helm version @@ -15,7 +15,7 @@ helm version # All the values files to be built DEPLOYMENT_CORE=${1:-eks gcp} -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" HELM_CAPABILITIES="-a rbac.authorization.k8s.io/v1 -a networking.k8s.io/v1/Ingress -a apiextensions.k8s.io/v1/CustomResourceDefinition" helm dep update ${DIR}/../charts/flyte-deps/ @@ -24,49 +24,48 @@ helm dep update ${DIR}/../charts/flyte-binary/ helm dep update ${DIR}/../charts/flyte-sandbox/ helm dep update ${DIR}/../charts/flyte/ -helm template flyte -n flyte ${DIR}/../charts/flyte/ -f ${DIR}/../charts/flyte/values.yaml ${HELM_CAPABILITIES} --debug > ${DIR}/../deployment/sandbox/flyte_helm_generated.yaml +helm template flyte -n flyte ${DIR}/../charts/flyte/ -f ${DIR}/../charts/flyte/values.yaml ${HELM_CAPABILITIES} --debug >${DIR}/../deployment/sandbox/flyte_helm_generated.yaml for deployment in ${DEPLOYMENT_CORE}; do - helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-${deployment}.yaml ${HELM_CAPABILITIES} > ${DIR}/../deployment/${deployment}/flyte_helm_generated.yaml - helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-${deployment}.yaml -f ${DIR}/../charts/flyte-core/values-controlplane.yaml ${HELM_CAPABILITIES} > ${DIR}/../deployment/${deployment}/flyte_helm_controlplane_generated.yaml - helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-${deployment}.yaml -f ${DIR}/../charts/flyte-core/values-dataplane.yaml ${HELM_CAPABILITIES} > ${DIR}/../deployment/${deployment}/flyte_helm_dataplane_generated.yaml + helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-${deployment}.yaml ${HELM_CAPABILITIES} >${DIR}/../deployment/${deployment}/flyte_helm_generated.yaml + helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-${deployment}.yaml -f ${DIR}/../charts/flyte-core/values-controlplane.yaml ${HELM_CAPABILITIES} >${DIR}/../deployment/${deployment}/flyte_helm_controlplane_generated.yaml + helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-${deployment}.yaml -f ${DIR}/../charts/flyte-core/values-dataplane.yaml ${HELM_CAPABILITIES} >${DIR}/../deployment/${deployment}/flyte_helm_dataplane_generated.yaml done # Generate manifest AWS Scheduler -helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-eks.yaml -f ${DIR}/../charts/flyte-core/values-eks-override.yaml ${HELM_CAPABILITIES} --debug > ${DIR}/../deployment/eks/flyte_aws_scheduler_helm_generated.yaml +helm template flyte -n flyte ${DIR}/../charts/flyte-core/ -f ${DIR}/../charts/flyte-core/values.yaml -f ${DIR}/../charts/flyte-core/values-eks.yaml -f ${DIR}/../charts/flyte-core/values-eks-override.yaml ${HELM_CAPABILITIES} --debug >${DIR}/../deployment/eks/flyte_aws_scheduler_helm_generated.yaml # Generate manifest deps chart -helm template flyte -n flyte ${DIR}/../charts/flyte-deps/ ${HELM_CAPABILITIES} --debug > ${DIR}/../deployment/sandbox/flyte_sandbox_deps_helm_generated.yaml +helm template flyte -n flyte ${DIR}/../charts/flyte-deps/ ${HELM_CAPABILITIES} --debug >${DIR}/../deployment/sandbox/flyte_sandbox_deps_helm_generated.yaml # Generate manifest single binary chart -helm template flyte -n flyte ${DIR}/../charts/flyte-binary/ ${HELM_CAPABILITIES} --debug > ${DIR}/../deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml +helm template flyte -n flyte ${DIR}/../charts/flyte-binary/ ${HELM_CAPABILITIES} --debug >${DIR}/../deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml # Generate manifest flyte agent -helm template flyte -n flyte ${DIR}/../charts/flyteagent/ ${HELM_CAPABILITIES} --debug > ${DIR}/../deployment/agent/flyte_agent_helm_generated.yaml - +helm template flyte -n flyte ${DIR}/../charts/flyteagent/ ${HELM_CAPABILITIES} --debug >${DIR}/../deployment/agent/flyte_agent_helm_generated.yaml echo "Generating helm docs" -if command -v helm-docs &> /dev/null -then - rm $(which helm-docs) +if command -v helm-docs &>/dev/null; then + rm $(which helm-docs) fi -GO111MODULE=on go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest +# TODO: (https://github.com/flyteorg/flyte/issues/4994) Unpin when moving past go 1.21 +GO111MODULE=on go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.12.0 ${GOPATH:-~/go}/bin/helm-docs -c ${DIR}/../charts/ # This section is used by GitHub workflow to ensure that the generation step was run if [ -n "$DELTA_CHECK" ]; then - DIRTY=$(git status --porcelain) - if [ -n "$DIRTY" ]; then - echo "FAILED: helm code updated without committing generated code." - echo "Ensure make helm has run and all changes are committed." - DIFF=$(git diff) - echo "diff detected: $DIFF" - DIFF=$(git diff --name-only) - echo "files different: $DIFF" - exit 1 - else - echo "SUCCESS: Generated code is up to date." - fi + DIRTY=$(git status --porcelain) + if [ -n "$DIRTY" ]; then + echo "FAILED: helm code updated without committing generated code." + echo "Ensure make helm has run and all changes are committed." + DIFF=$(git diff) + echo "diff detected: $DIFF" + DIFF=$(git diff --name-only) + echo "files different: $DIFF" + exit 1 + else + echo "SUCCESS: Generated code is up to date." + fi fi From 2adaf612348c9b3d83f4640b0eedba6e2ab33f4c Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Tue, 5 Mar 2024 02:19:09 -0800 Subject: [PATCH 20/76] Specify builder for docker build (#5002) * Specify builder for docker build Signed-off-by: Kevin Su * nit Signed-off-by: Kevin Su --------- Signed-off-by: Kevin Su --- docker/sandbox-bundled/Makefile | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docker/sandbox-bundled/Makefile b/docker/sandbox-bundled/Makefile index d2ec89de8b..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,9 +11,17 @@ 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: dep_update @@ -39,11 +48,6 @@ manifests: dep_update .PHONY: build build: flyte dep_update 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 docker buildx build --builder flyte-sandbox --allow security.insecure --load \ --tag flyte-sandbox:latest . From 7be904a67048bce7dc56b6f6f986df67e1e7e379 Mon Sep 17 00:00:00 2001 From: Joe Eschen <126913098+squiishyy@users.noreply.github.com> Date: Tue, 5 Mar 2024 11:57:13 -0800 Subject: [PATCH 21/76] Time partition granularity (#4959) Signed-off-by: Yee Hing Tong --- flyteidl/clients/go/assets/admin.swagger.json | 74 ++- .../gen/pb-es/flyteidl/core/artifact_id_pb.ts | 161 ++++- .../gen/pb-go/flyteidl/core/artifact_id.pb.go | 593 +++++++++++++----- .../flyteidl/service/admin.swagger.json | 74 ++- .../flyteidl/service/agent.swagger.json | 44 +- .../external_plugin_service.swagger.json | 44 +- flyteidl/gen/pb-js/flyteidl.d.ts | 141 ++++- flyteidl/gen/pb-js/flyteidl.js | 340 +++++++++- .../flyteidl/core/artifact_id_pb2.py | 44 +- .../flyteidl/core/artifact_id_pb2.pyi | 51 +- flyteidl/gen/pb_rust/flyteidl.core.rs | 90 ++- .../protos/flyteidl/core/artifact_id.proto | 29 +- 12 files changed, 1427 insertions(+), 258 deletions(-) diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 191143dd89..7b9045cbe3 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -4197,20 +4197,6 @@ ], "default": "SINGLE" }, - "ComparisonExpressionOperator": { - "type": "string", - "enum": [ - "EQ", - "NEQ", - "GT", - "GTE", - "LT", - "LTE" - ], - "default": "EQ", - "description": "- GT: Greater Than\n - LT: Less Than", - "title": "Binary Operator for each expression" - }, "ConjunctionExpressionLogicalOperator": { "type": "string", "enum": [ @@ -6481,8 +6467,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -6750,7 +6736,7 @@ "type": "object", "properties": { "operator": { - "$ref": "#/definitions/ComparisonExpressionOperator" + "$ref": "#/definitions/coreComparisonExpressionOperator" }, "left_value": { "$ref": "#/definitions/coreOperand" @@ -6761,6 +6747,20 @@ }, "description": "Defines a 2-level tree where the root is a comparison operator and Operands are primitives or known variables.\nEach expression results in a boolean result." }, + "coreComparisonExpressionOperator": { + "type": "string", + "enum": [ + "EQ", + "NEQ", + "GT", + "GTE", + "LT", + "LTE" + ], + "default": "EQ", + "description": "- GT: Greater Than\n - LT: Less Than", + "title": "Binary Operator for each expression" + }, "coreCompiledLaunchPlan": { "type": "object", "properties": { @@ -7038,6 +7038,18 @@ }, "description": "GateNode refers to the condition that is required for the gate to successfully complete." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -7205,6 +7217,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -7688,6 +7703,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -8145,6 +8163,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -8838,6 +8870,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts b/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts index 42d063161d..be92b47b70 100644 --- a/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/core/artifact_id_pb.ts @@ -6,6 +6,66 @@ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, Timestamp } from "@bufbuild/protobuf"; +/** + * @generated from enum flyteidl.core.Granularity + */ +export enum Granularity { + /** + * @generated from enum value: UNSET = 0; + */ + UNSET = 0, + + /** + * @generated from enum value: MINUTE = 1; + */ + MINUTE = 1, + + /** + * @generated from enum value: HOUR = 2; + */ + HOUR = 2, + + /** + * default + * + * @generated from enum value: DAY = 3; + */ + DAY = 3, + + /** + * @generated from enum value: MONTH = 4; + */ + MONTH = 4, +} +// Retrieve enum metadata with: proto3.getEnumType(Granularity) +proto3.util.setEnumType(Granularity, "flyteidl.core.Granularity", [ + { no: 0, name: "UNSET" }, + { no: 1, name: "MINUTE" }, + { no: 2, name: "HOUR" }, + { no: 3, name: "DAY" }, + { no: 4, name: "MONTH" }, +]); + +/** + * @generated from enum flyteidl.core.Operator + */ +export enum Operator { + /** + * @generated from enum value: MINUS = 0; + */ + MINUS = 0, + + /** + * @generated from enum value: PLUS = 1; + */ + PLUS = 1, +} +// Retrieve enum metadata with: proto3.getEnumType(Operator) +proto3.util.setEnumType(Operator, "flyteidl.core.Operator", [ + { no: 0, name: "MINUS" }, + { no: 1, name: "PLUS" }, +]); + /** * @generated from message flyteidl.core.ArtifactKey */ @@ -76,13 +136,13 @@ export class ArtifactBindingData extends Message { */ partitionData: { /** - * @generated from field: string partition_key = 2; + * @generated from field: string partition_key = 5; */ value: string; case: "partitionKey"; } | { /** - * @generated from field: bool bind_to_time_partition = 3; + * @generated from field: bool bind_to_time_partition = 6; */ value: boolean; case: "bindToTimePartition"; @@ -91,9 +151,9 @@ export class ArtifactBindingData extends Message { /** * This is only relevant in the time partition case * - * @generated from field: string transform = 4; + * @generated from field: flyteidl.core.TimeTransform time_transform = 7; */ - transform = ""; + timeTransform?: TimeTransform; constructor(data?: PartialMessage) { super(); @@ -103,9 +163,9 @@ export class ArtifactBindingData extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "flyteidl.core.ArtifactBindingData"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 2, name: "partition_key", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "partition_data" }, - { no: 3, name: "bind_to_time_partition", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "partition_data" }, - { no: 4, name: "transform", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 5, name: "partition_key", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "partition_data" }, + { no: 6, name: "bind_to_time_partition", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "partition_data" }, + { no: 7, name: "time_transform", kind: "message", T: TimeTransform }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): ArtifactBindingData { @@ -125,6 +185,49 @@ export class ArtifactBindingData extends Message { } } +/** + * @generated from message flyteidl.core.TimeTransform + */ +export class TimeTransform extends Message { + /** + * @generated from field: string transform = 1; + */ + transform = ""; + + /** + * @generated from field: flyteidl.core.Operator op = 2; + */ + op = Operator.MINUS; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.core.TimeTransform"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "transform", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "op", kind: "enum", T: proto3.getEnumType(Operator) }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): TimeTransform { + return new TimeTransform().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): TimeTransform { + return new TimeTransform().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): TimeTransform { + return new TimeTransform().fromJsonString(jsonString, options); + } + + static equals(a: TimeTransform | PlainMessage | undefined, b: TimeTransform | PlainMessage | undefined): boolean { + return proto3.util.equals(TimeTransform, a, b); + } +} + /** * @generated from message flyteidl.core.InputBindingData */ @@ -162,6 +265,37 @@ export class InputBindingData extends Message { } } +/** + * @generated from message flyteidl.core.RuntimeBinding + */ +export class RuntimeBinding extends Message { + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.core.RuntimeBinding"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): RuntimeBinding { + return new RuntimeBinding().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): RuntimeBinding { + return new RuntimeBinding().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RuntimeBinding { + return new RuntimeBinding().fromJsonString(jsonString, options); + } + + static equals(a: RuntimeBinding | PlainMessage | undefined, b: RuntimeBinding | PlainMessage | undefined): boolean { + return proto3.util.equals(RuntimeBinding, a, b); + } +} + /** * @generated from message flyteidl.core.LabelValue */ @@ -197,6 +331,12 @@ export class LabelValue extends Message { */ value: InputBindingData; case: "inputBinding"; + } | { + /** + * @generated from field: flyteidl.core.RuntimeBinding runtime_binding = 5; + */ + value: RuntimeBinding; + case: "runtimeBinding"; } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { @@ -211,6 +351,7 @@ export class LabelValue extends Message { { no: 2, name: "time_value", kind: "message", T: Timestamp, oneof: "value" }, { no: 3, name: "triggered_binding", kind: "message", T: ArtifactBindingData, oneof: "value" }, { no: 4, name: "input_binding", kind: "message", T: InputBindingData, oneof: "value" }, + { no: 5, name: "runtime_binding", kind: "message", T: RuntimeBinding, oneof: "value" }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): LabelValue { @@ -276,6 +417,11 @@ export class TimePartition extends Message { */ value?: LabelValue; + /** + * @generated from field: flyteidl.core.Granularity granularity = 2; + */ + granularity = Granularity.UNSET; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -285,6 +431,7 @@ export class TimePartition extends Message { static readonly typeName = "flyteidl.core.TimePartition"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "value", kind: "message", T: LabelValue }, + { no: 2, name: "granularity", kind: "enum", T: proto3.getEnumType(Granularity) }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): TimePartition { diff --git a/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go b/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go index 7d692916a7..9fd82504dd 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/artifact_id.pb.go @@ -21,6 +21,107 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Granularity int32 + +const ( + Granularity_UNSET Granularity = 0 + Granularity_MINUTE Granularity = 1 + Granularity_HOUR Granularity = 2 + Granularity_DAY Granularity = 3 // default + Granularity_MONTH Granularity = 4 +) + +// Enum value maps for Granularity. +var ( + Granularity_name = map[int32]string{ + 0: "UNSET", + 1: "MINUTE", + 2: "HOUR", + 3: "DAY", + 4: "MONTH", + } + Granularity_value = map[string]int32{ + "UNSET": 0, + "MINUTE": 1, + "HOUR": 2, + "DAY": 3, + "MONTH": 4, + } +) + +func (x Granularity) Enum() *Granularity { + p := new(Granularity) + *p = x + return p +} + +func (x Granularity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Granularity) Descriptor() protoreflect.EnumDescriptor { + return file_flyteidl_core_artifact_id_proto_enumTypes[0].Descriptor() +} + +func (Granularity) Type() protoreflect.EnumType { + return &file_flyteidl_core_artifact_id_proto_enumTypes[0] +} + +func (x Granularity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Granularity.Descriptor instead. +func (Granularity) EnumDescriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{0} +} + +type Operator int32 + +const ( + Operator_MINUS Operator = 0 + Operator_PLUS Operator = 1 +) + +// Enum value maps for Operator. +var ( + Operator_name = map[int32]string{ + 0: "MINUS", + 1: "PLUS", + } + Operator_value = map[string]int32{ + "MINUS": 0, + "PLUS": 1, + } +) + +func (x Operator) Enum() *Operator { + p := new(Operator) + *p = x + return p +} + +func (x Operator) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Operator) Descriptor() protoreflect.EnumDescriptor { + return file_flyteidl_core_artifact_id_proto_enumTypes[1].Descriptor() +} + +func (Operator) Type() protoreflect.EnumType { + return &file_flyteidl_core_artifact_id_proto_enumTypes[1] +} + +func (x Operator) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Operator.Descriptor instead. +func (Operator) EnumDescriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{1} +} + type ArtifactKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -107,7 +208,7 @@ type ArtifactBindingData struct { // *ArtifactBindingData_BindToTimePartition PartitionData isArtifactBindingData_PartitionData `protobuf_oneof:"partition_data"` // This is only relevant in the time partition case - Transform string `protobuf:"bytes,4,opt,name=transform,proto3" json:"transform,omitempty"` + TimeTransform *TimeTransform `protobuf:"bytes,7,opt,name=time_transform,json=timeTransform,proto3" json:"time_transform,omitempty"` } func (x *ArtifactBindingData) Reset() { @@ -163,11 +264,11 @@ func (x *ArtifactBindingData) GetBindToTimePartition() bool { return false } -func (x *ArtifactBindingData) GetTransform() string { +func (x *ArtifactBindingData) GetTimeTransform() *TimeTransform { if x != nil { - return x.Transform + return x.TimeTransform } - return "" + return nil } type isArtifactBindingData_PartitionData interface { @@ -175,17 +276,72 @@ type isArtifactBindingData_PartitionData interface { } type ArtifactBindingData_PartitionKey struct { - PartitionKey string `protobuf:"bytes,2,opt,name=partition_key,json=partitionKey,proto3,oneof"` + PartitionKey string `protobuf:"bytes,5,opt,name=partition_key,json=partitionKey,proto3,oneof"` } type ArtifactBindingData_BindToTimePartition struct { - BindToTimePartition bool `protobuf:"varint,3,opt,name=bind_to_time_partition,json=bindToTimePartition,proto3,oneof"` + BindToTimePartition bool `protobuf:"varint,6,opt,name=bind_to_time_partition,json=bindToTimePartition,proto3,oneof"` } func (*ArtifactBindingData_PartitionKey) isArtifactBindingData_PartitionData() {} func (*ArtifactBindingData_BindToTimePartition) isArtifactBindingData_PartitionData() {} +type TimeTransform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transform string `protobuf:"bytes,1,opt,name=transform,proto3" json:"transform,omitempty"` + Op Operator `protobuf:"varint,2,opt,name=op,proto3,enum=flyteidl.core.Operator" json:"op,omitempty"` +} + +func (x *TimeTransform) Reset() { + *x = TimeTransform{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimeTransform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeTransform) ProtoMessage() {} + +func (x *TimeTransform) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimeTransform.ProtoReflect.Descriptor instead. +func (*TimeTransform) Descriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{2} +} + +func (x *TimeTransform) GetTransform() string { + if x != nil { + return x.Transform + } + return "" +} + +func (x *TimeTransform) GetOp() Operator { + if x != nil { + return x.Op + } + return Operator_MINUS +} + type InputBindingData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -197,7 +353,7 @@ type InputBindingData struct { func (x *InputBindingData) Reset() { *x = InputBindingData{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -210,7 +366,7 @@ func (x *InputBindingData) String() string { func (*InputBindingData) ProtoMessage() {} func (x *InputBindingData) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[2] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -223,7 +379,7 @@ func (x *InputBindingData) ProtoReflect() protoreflect.Message { // Deprecated: Use InputBindingData.ProtoReflect.Descriptor instead. func (*InputBindingData) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{2} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{3} } func (x *InputBindingData) GetVar() string { @@ -233,6 +389,44 @@ func (x *InputBindingData) GetVar() string { return "" } +type RuntimeBinding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RuntimeBinding) Reset() { + *x = RuntimeBinding{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RuntimeBinding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuntimeBinding) ProtoMessage() {} + +func (x *RuntimeBinding) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuntimeBinding.ProtoReflect.Descriptor instead. +func (*RuntimeBinding) Descriptor() ([]byte, []int) { + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{4} +} + type LabelValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -244,13 +438,14 @@ type LabelValue struct { // *LabelValue_TimeValue // *LabelValue_TriggeredBinding // *LabelValue_InputBinding + // *LabelValue_RuntimeBinding Value isLabelValue_Value `protobuf_oneof:"value"` } func (x *LabelValue) Reset() { *x = LabelValue{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -263,7 +458,7 @@ func (x *LabelValue) String() string { func (*LabelValue) ProtoMessage() {} func (x *LabelValue) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[3] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -276,7 +471,7 @@ func (x *LabelValue) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelValue.ProtoReflect.Descriptor instead. func (*LabelValue) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{3} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{5} } func (m *LabelValue) GetValue() isLabelValue_Value { @@ -314,6 +509,13 @@ func (x *LabelValue) GetInputBinding() *InputBindingData { return nil } +func (x *LabelValue) GetRuntimeBinding() *RuntimeBinding { + if x, ok := x.GetValue().(*LabelValue_RuntimeBinding); ok { + return x.RuntimeBinding + } + return nil +} + type isLabelValue_Value interface { isLabelValue_Value() } @@ -336,6 +538,10 @@ type LabelValue_InputBinding struct { InputBinding *InputBindingData `protobuf:"bytes,4,opt,name=input_binding,json=inputBinding,proto3,oneof"` } +type LabelValue_RuntimeBinding struct { + RuntimeBinding *RuntimeBinding `protobuf:"bytes,5,opt,name=runtime_binding,json=runtimeBinding,proto3,oneof"` +} + func (*LabelValue_StaticValue) isLabelValue_Value() {} func (*LabelValue_TimeValue) isLabelValue_Value() {} @@ -344,6 +550,8 @@ func (*LabelValue_TriggeredBinding) isLabelValue_Value() {} func (*LabelValue_InputBinding) isLabelValue_Value() {} +func (*LabelValue_RuntimeBinding) isLabelValue_Value() {} + type Partitions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -355,7 +563,7 @@ type Partitions struct { func (x *Partitions) Reset() { *x = Partitions{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -368,7 +576,7 @@ func (x *Partitions) String() string { func (*Partitions) ProtoMessage() {} func (x *Partitions) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[4] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -381,7 +589,7 @@ func (x *Partitions) ProtoReflect() protoreflect.Message { // Deprecated: Use Partitions.ProtoReflect.Descriptor instead. func (*Partitions) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{4} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{6} } func (x *Partitions) GetValue() map[string]*LabelValue { @@ -396,13 +604,14 @@ type TimePartition struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value *LabelValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Value *LabelValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Granularity Granularity `protobuf:"varint,2,opt,name=granularity,proto3,enum=flyteidl.core.Granularity" json:"granularity,omitempty"` } func (x *TimePartition) Reset() { *x = TimePartition{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -415,7 +624,7 @@ func (x *TimePartition) String() string { func (*TimePartition) ProtoMessage() {} func (x *TimePartition) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[5] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -428,7 +637,7 @@ func (x *TimePartition) ProtoReflect() protoreflect.Message { // Deprecated: Use TimePartition.ProtoReflect.Descriptor instead. func (*TimePartition) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{5} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{7} } func (x *TimePartition) GetValue() *LabelValue { @@ -438,6 +647,13 @@ func (x *TimePartition) GetValue() *LabelValue { return nil } +func (x *TimePartition) GetGranularity() Granularity { + if x != nil { + return x.Granularity + } + return Granularity_UNSET +} + type ArtifactID struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -455,7 +671,7 @@ type ArtifactID struct { func (x *ArtifactID) Reset() { *x = ArtifactID{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -468,7 +684,7 @@ func (x *ArtifactID) String() string { func (*ArtifactID) ProtoMessage() {} func (x *ArtifactID) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[6] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -481,7 +697,7 @@ func (x *ArtifactID) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactID.ProtoReflect.Descriptor instead. func (*ArtifactID) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{6} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{8} } func (x *ArtifactID) GetArtifactKey() *ArtifactKey { @@ -524,7 +740,7 @@ type ArtifactTag struct { func (x *ArtifactTag) Reset() { *x = ArtifactTag{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -537,7 +753,7 @@ func (x *ArtifactTag) String() string { func (*ArtifactTag) ProtoMessage() {} func (x *ArtifactTag) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[7] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -550,7 +766,7 @@ func (x *ArtifactTag) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactTag.ProtoReflect.Descriptor instead. func (*ArtifactTag) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{7} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{9} } func (x *ArtifactTag) GetArtifactKey() *ArtifactKey { @@ -590,7 +806,7 @@ type ArtifactQuery struct { func (x *ArtifactQuery) Reset() { *x = ArtifactQuery{} if protoimpl.UnsafeEnabled { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -603,7 +819,7 @@ func (x *ArtifactQuery) String() string { func (*ArtifactQuery) ProtoMessage() {} func (x *ArtifactQuery) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl_core_artifact_id_proto_msgTypes[8] + mi := &file_flyteidl_core_artifact_id_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -616,7 +832,7 @@ func (x *ArtifactQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactQuery.ProtoReflect.Descriptor instead. func (*ArtifactQuery) Descriptor() ([]byte, []int) { - return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{8} + return file_flyteidl_core_artifact_id_proto_rawDescGZIP(), []int{10} } func (m *ArtifactQuery) GetIdentifier() isArtifactQuery_Identifier { @@ -700,101 +916,125 @@ var file_flyteidl_core_artifact_id_proto_rawDesc = []byte{ 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x74, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xd0, 0x01, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x16, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x6e, 0x64, 0x54, - 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x10, 0x0a, 0x0e, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x24, - 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x76, 0x61, 0x72, 0x22, 0x92, 0x02, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, - 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0a, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x53, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x0d, 0x54, 0x69, 0x6d, - 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x0a, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, - 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, - 0x61, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, - 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x49, 0x44, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, - 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x62, 0x69, 0x6e, 0x64, 0x54, + 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, + 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x05, 0x22, 0x56, 0x0a, 0x0d, 0x54, + 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x27, 0x0a, 0x02, 0x6f, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x02, 0x6f, 0x70, 0x22, 0x24, 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x72, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xdc, 0x02, 0x0a, 0x0a, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x51, 0x0a, 0x11, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, + 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0a, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x53, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7e, 0x0a, 0x0d, 0x54, 0x69, + 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, + 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x67, + 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x22, 0xe5, 0x01, 0x0a, 0x0a, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x61, + 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, + 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0f, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x43, 0x58, - 0xaa, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x43, 0x6f, 0x72, 0x65, - 0xca, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x6f, 0x72, 0x65, - 0xe2, 0x02, 0x19, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x43, 0x6f, 0x72, 0x65, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x49, 0x44, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x61, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x2a, 0x42, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4f, + 0x55, 0x52, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x41, 0x59, 0x10, 0x03, 0x12, 0x09, 0x0a, + 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x04, 0x2a, 0x1f, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x49, 0x4e, 0x55, 0x53, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x50, 0x4c, 0x55, 0x53, 0x10, 0x01, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, + 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, + 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, + 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0xa2, 0x02, + 0x03, 0x46, 0x43, 0x58, 0xaa, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x43, 0x6f, 0x72, 0x65, 0xca, 0x02, 0x0d, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, + 0x43, 0x6f, 0x72, 0x65, 0xe2, 0x02, 0x19, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, + 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x72, + 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -809,40 +1049,49 @@ func file_flyteidl_core_artifact_id_proto_rawDescGZIP() []byte { return file_flyteidl_core_artifact_id_proto_rawDescData } -var file_flyteidl_core_artifact_id_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_flyteidl_core_artifact_id_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_flyteidl_core_artifact_id_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_flyteidl_core_artifact_id_proto_goTypes = []interface{}{ - (*ArtifactKey)(nil), // 0: flyteidl.core.ArtifactKey - (*ArtifactBindingData)(nil), // 1: flyteidl.core.ArtifactBindingData - (*InputBindingData)(nil), // 2: flyteidl.core.InputBindingData - (*LabelValue)(nil), // 3: flyteidl.core.LabelValue - (*Partitions)(nil), // 4: flyteidl.core.Partitions - (*TimePartition)(nil), // 5: flyteidl.core.TimePartition - (*ArtifactID)(nil), // 6: flyteidl.core.ArtifactID - (*ArtifactTag)(nil), // 7: flyteidl.core.ArtifactTag - (*ArtifactQuery)(nil), // 8: flyteidl.core.ArtifactQuery - nil, // 9: flyteidl.core.Partitions.ValueEntry - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (Granularity)(0), // 0: flyteidl.core.Granularity + (Operator)(0), // 1: flyteidl.core.Operator + (*ArtifactKey)(nil), // 2: flyteidl.core.ArtifactKey + (*ArtifactBindingData)(nil), // 3: flyteidl.core.ArtifactBindingData + (*TimeTransform)(nil), // 4: flyteidl.core.TimeTransform + (*InputBindingData)(nil), // 5: flyteidl.core.InputBindingData + (*RuntimeBinding)(nil), // 6: flyteidl.core.RuntimeBinding + (*LabelValue)(nil), // 7: flyteidl.core.LabelValue + (*Partitions)(nil), // 8: flyteidl.core.Partitions + (*TimePartition)(nil), // 9: flyteidl.core.TimePartition + (*ArtifactID)(nil), // 10: flyteidl.core.ArtifactID + (*ArtifactTag)(nil), // 11: flyteidl.core.ArtifactTag + (*ArtifactQuery)(nil), // 12: flyteidl.core.ArtifactQuery + nil, // 13: flyteidl.core.Partitions.ValueEntry + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp } var file_flyteidl_core_artifact_id_proto_depIdxs = []int32{ - 10, // 0: flyteidl.core.LabelValue.time_value:type_name -> google.protobuf.Timestamp - 1, // 1: flyteidl.core.LabelValue.triggered_binding:type_name -> flyteidl.core.ArtifactBindingData - 2, // 2: flyteidl.core.LabelValue.input_binding:type_name -> flyteidl.core.InputBindingData - 9, // 3: flyteidl.core.Partitions.value:type_name -> flyteidl.core.Partitions.ValueEntry - 3, // 4: flyteidl.core.TimePartition.value:type_name -> flyteidl.core.LabelValue - 0, // 5: flyteidl.core.ArtifactID.artifact_key:type_name -> flyteidl.core.ArtifactKey - 4, // 6: flyteidl.core.ArtifactID.partitions:type_name -> flyteidl.core.Partitions - 5, // 7: flyteidl.core.ArtifactID.time_partition:type_name -> flyteidl.core.TimePartition - 0, // 8: flyteidl.core.ArtifactTag.artifact_key:type_name -> flyteidl.core.ArtifactKey - 3, // 9: flyteidl.core.ArtifactTag.value:type_name -> flyteidl.core.LabelValue - 6, // 10: flyteidl.core.ArtifactQuery.artifact_id:type_name -> flyteidl.core.ArtifactID - 7, // 11: flyteidl.core.ArtifactQuery.artifact_tag:type_name -> flyteidl.core.ArtifactTag - 1, // 12: flyteidl.core.ArtifactQuery.binding:type_name -> flyteidl.core.ArtifactBindingData - 3, // 13: flyteidl.core.Partitions.ValueEntry.value:type_name -> flyteidl.core.LabelValue - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 4, // 0: flyteidl.core.ArtifactBindingData.time_transform:type_name -> flyteidl.core.TimeTransform + 1, // 1: flyteidl.core.TimeTransform.op:type_name -> flyteidl.core.Operator + 14, // 2: flyteidl.core.LabelValue.time_value:type_name -> google.protobuf.Timestamp + 3, // 3: flyteidl.core.LabelValue.triggered_binding:type_name -> flyteidl.core.ArtifactBindingData + 5, // 4: flyteidl.core.LabelValue.input_binding:type_name -> flyteidl.core.InputBindingData + 6, // 5: flyteidl.core.LabelValue.runtime_binding:type_name -> flyteidl.core.RuntimeBinding + 13, // 6: flyteidl.core.Partitions.value:type_name -> flyteidl.core.Partitions.ValueEntry + 7, // 7: flyteidl.core.TimePartition.value:type_name -> flyteidl.core.LabelValue + 0, // 8: flyteidl.core.TimePartition.granularity:type_name -> flyteidl.core.Granularity + 2, // 9: flyteidl.core.ArtifactID.artifact_key:type_name -> flyteidl.core.ArtifactKey + 8, // 10: flyteidl.core.ArtifactID.partitions:type_name -> flyteidl.core.Partitions + 9, // 11: flyteidl.core.ArtifactID.time_partition:type_name -> flyteidl.core.TimePartition + 2, // 12: flyteidl.core.ArtifactTag.artifact_key:type_name -> flyteidl.core.ArtifactKey + 7, // 13: flyteidl.core.ArtifactTag.value:type_name -> flyteidl.core.LabelValue + 10, // 14: flyteidl.core.ArtifactQuery.artifact_id:type_name -> flyteidl.core.ArtifactID + 11, // 15: flyteidl.core.ArtifactQuery.artifact_tag:type_name -> flyteidl.core.ArtifactTag + 3, // 16: flyteidl.core.ArtifactQuery.binding:type_name -> flyteidl.core.ArtifactBindingData + 7, // 17: flyteidl.core.Partitions.ValueEntry.value:type_name -> flyteidl.core.LabelValue + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_flyteidl_core_artifact_id_proto_init() } @@ -877,7 +1126,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InputBindingData); i { + switch v := v.(*TimeTransform); i { case 0: return &v.state case 1: @@ -889,7 +1138,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelValue); i { + switch v := v.(*InputBindingData); i { case 0: return &v.state case 1: @@ -901,7 +1150,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Partitions); i { + switch v := v.(*RuntimeBinding); i { case 0: return &v.state case 1: @@ -913,7 +1162,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimePartition); i { + switch v := v.(*LabelValue); i { case 0: return &v.state case 1: @@ -925,7 +1174,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactID); i { + switch v := v.(*Partitions); i { case 0: return &v.state case 1: @@ -937,7 +1186,7 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactTag); i { + switch v := v.(*TimePartition); i { case 0: return &v.state case 1: @@ -949,6 +1198,30 @@ func file_flyteidl_core_artifact_id_proto_init() { } } file_flyteidl_core_artifact_id_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_core_artifact_id_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactTag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_flyteidl_core_artifact_id_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtifactQuery); i { case 0: return &v.state @@ -965,13 +1238,14 @@ func file_flyteidl_core_artifact_id_proto_init() { (*ArtifactBindingData_PartitionKey)(nil), (*ArtifactBindingData_BindToTimePartition)(nil), } - file_flyteidl_core_artifact_id_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_flyteidl_core_artifact_id_proto_msgTypes[5].OneofWrappers = []interface{}{ (*LabelValue_StaticValue)(nil), (*LabelValue_TimeValue)(nil), (*LabelValue_TriggeredBinding)(nil), (*LabelValue_InputBinding)(nil), + (*LabelValue_RuntimeBinding)(nil), } - file_flyteidl_core_artifact_id_proto_msgTypes[8].OneofWrappers = []interface{}{ + file_flyteidl_core_artifact_id_proto_msgTypes[10].OneofWrappers = []interface{}{ (*ArtifactQuery_ArtifactId)(nil), (*ArtifactQuery_ArtifactTag)(nil), (*ArtifactQuery_Uri)(nil), @@ -982,13 +1256,14 @@ func file_flyteidl_core_artifact_id_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flyteidl_core_artifact_id_proto_rawDesc, - NumEnums: 0, - NumMessages: 10, + NumEnums: 2, + NumMessages: 12, NumExtensions: 0, NumServices: 0, }, GoTypes: file_flyteidl_core_artifact_id_proto_goTypes, DependencyIndexes: file_flyteidl_core_artifact_id_proto_depIdxs, + EnumInfos: file_flyteidl_core_artifact_id_proto_enumTypes, MessageInfos: file_flyteidl_core_artifact_id_proto_msgTypes, }.Build() File_flyteidl_core_artifact_id_proto = out.File diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index 191143dd89..7b9045cbe3 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -4197,20 +4197,6 @@ ], "default": "SINGLE" }, - "ComparisonExpressionOperator": { - "type": "string", - "enum": [ - "EQ", - "NEQ", - "GT", - "GTE", - "LT", - "LTE" - ], - "default": "EQ", - "description": "- GT: Greater Than\n - LT: Less Than", - "title": "Binary Operator for each expression" - }, "ConjunctionExpressionLogicalOperator": { "type": "string", "enum": [ @@ -6481,8 +6467,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -6750,7 +6736,7 @@ "type": "object", "properties": { "operator": { - "$ref": "#/definitions/ComparisonExpressionOperator" + "$ref": "#/definitions/coreComparisonExpressionOperator" }, "left_value": { "$ref": "#/definitions/coreOperand" @@ -6761,6 +6747,20 @@ }, "description": "Defines a 2-level tree where the root is a comparison operator and Operands are primitives or known variables.\nEach expression results in a boolean result." }, + "coreComparisonExpressionOperator": { + "type": "string", + "enum": [ + "EQ", + "NEQ", + "GT", + "GTE", + "LT", + "LTE" + ], + "default": "EQ", + "description": "- GT: Greater Than\n - LT: Less Than", + "title": "Binary Operator for each expression" + }, "coreCompiledLaunchPlan": { "type": "object", "properties": { @@ -7038,6 +7038,18 @@ }, "description": "GateNode refers to the condition that is required for the gate to successfully complete." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -7205,6 +7217,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -7688,6 +7703,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -8145,6 +8163,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -8838,6 +8870,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json index ff115cad21..2680d36bda 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json @@ -843,8 +843,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -1093,6 +1093,18 @@ }, "description": "Metadata associated with the GPU accelerator to allocate to a task. Contains\ninformation about device type, and for multi-instance GPUs, the partition size to\nuse." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -1222,6 +1234,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -1472,6 +1487,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -1847,6 +1865,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -2071,6 +2103,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json index eda2434bcd..cebc48b75b 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json @@ -173,8 +173,8 @@ "bind_to_time_partition": { "type": "boolean" }, - "transform": { - "type": "string", + "time_transform": { + "$ref": "#/definitions/coreTimeTransform", "title": "This is only relevant in the time partition case" } }, @@ -409,6 +409,18 @@ }, "description": "Metadata associated with the GPU accelerator to allocate to a task. Contains\ninformation about device type, and for multi-instance GPUs, the partition size to\nuse." }, + "coreGranularity": { + "type": "string", + "enum": [ + "UNSET", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "default": "UNSET", + "title": "- DAY: default" + }, "coreIOStrategy": { "type": "object", "properties": { @@ -538,6 +550,9 @@ }, "input_binding": { "$ref": "#/definitions/coreInputBindingData" + }, + "runtime_binding": { + "$ref": "#/definitions/coreRuntimeBinding" } } }, @@ -776,6 +791,9 @@ }, "description": "Retry strategy associated with an executable unit." }, + "coreRuntimeBinding": { + "type": "object" + }, "coreRuntimeMetadata": { "type": "object", "properties": { @@ -1084,6 +1102,20 @@ "properties": { "value": { "$ref": "#/definitions/coreLabelValue" + }, + "granularity": { + "$ref": "#/definitions/coreGranularity" + } + } + }, + "coreTimeTransform": { + "type": "object", + "properties": { + "transform": { + "type": "string" + }, + "op": { + "$ref": "#/definitions/flyteidlcoreOperator" } } }, @@ -1217,6 +1249,14 @@ }, "description": "A generic key value pair." }, + "flyteidlcoreOperator": { + "type": "string", + "enum": [ + "MINUS", + "PLUS" + ], + "default": "MINUS" + }, "flyteidlcoreSchema": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index c876340a61..5cc6b36eeb 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -84,8 +84,8 @@ export namespace flyteidl { /** ArtifactBindingData bindToTimePartition */ bindToTimePartition?: (boolean|null); - /** ArtifactBindingData transform */ - transform?: (string|null); + /** ArtifactBindingData timeTransform */ + timeTransform?: (flyteidl.core.ITimeTransform|null); } /** Represents an ArtifactBindingData. */ @@ -103,8 +103,8 @@ export namespace flyteidl { /** ArtifactBindingData bindToTimePartition. */ public bindToTimePartition: boolean; - /** ArtifactBindingData transform. */ - public transform: string; + /** ArtifactBindingData timeTransform. */ + public timeTransform?: (flyteidl.core.ITimeTransform|null); /** ArtifactBindingData partitionData. */ public partitionData?: ("partitionKey"|"bindToTimePartition"); @@ -142,6 +142,79 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Granularity enum. */ + enum Granularity { + UNSET = 0, + MINUTE = 1, + HOUR = 2, + DAY = 3, + MONTH = 4 + } + + /** Operator enum. */ + enum Operator { + MINUS = 0, + PLUS = 1 + } + + /** Properties of a TimeTransform. */ + interface ITimeTransform { + + /** TimeTransform transform */ + transform?: (string|null); + + /** TimeTransform op */ + op?: (flyteidl.core.Operator|null); + } + + /** Represents a TimeTransform. */ + class TimeTransform implements ITimeTransform { + + /** + * Constructs a new TimeTransform. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.ITimeTransform); + + /** TimeTransform transform. */ + public transform: string; + + /** TimeTransform op. */ + public op: flyteidl.core.Operator; + + /** + * Creates a new TimeTransform instance using the specified properties. + * @param [properties] Properties to set + * @returns TimeTransform instance + */ + public static create(properties?: flyteidl.core.ITimeTransform): flyteidl.core.TimeTransform; + + /** + * Encodes the specified TimeTransform message. Does not implicitly {@link flyteidl.core.TimeTransform.verify|verify} messages. + * @param message TimeTransform message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.ITimeTransform, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TimeTransform message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TimeTransform + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.core.TimeTransform; + + /** + * Verifies a TimeTransform message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of an InputBindingData. */ interface IInputBindingData { @@ -194,6 +267,52 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a RuntimeBinding. */ + interface IRuntimeBinding { + } + + /** Represents a RuntimeBinding. */ + class RuntimeBinding implements IRuntimeBinding { + + /** + * Constructs a new RuntimeBinding. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.core.IRuntimeBinding); + + /** + * Creates a new RuntimeBinding instance using the specified properties. + * @param [properties] Properties to set + * @returns RuntimeBinding instance + */ + public static create(properties?: flyteidl.core.IRuntimeBinding): flyteidl.core.RuntimeBinding; + + /** + * Encodes the specified RuntimeBinding message. Does not implicitly {@link flyteidl.core.RuntimeBinding.verify|verify} messages. + * @param message RuntimeBinding message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.core.IRuntimeBinding, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RuntimeBinding message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RuntimeBinding + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.core.RuntimeBinding; + + /** + * Verifies a RuntimeBinding message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of a LabelValue. */ interface ILabelValue { @@ -208,6 +327,9 @@ export namespace flyteidl { /** LabelValue inputBinding */ inputBinding?: (flyteidl.core.IInputBindingData|null); + + /** LabelValue runtimeBinding */ + runtimeBinding?: (flyteidl.core.IRuntimeBinding|null); } /** Represents a LabelValue. */ @@ -231,8 +353,11 @@ export namespace flyteidl { /** LabelValue inputBinding. */ public inputBinding?: (flyteidl.core.IInputBindingData|null); + /** LabelValue runtimeBinding. */ + public runtimeBinding?: (flyteidl.core.IRuntimeBinding|null); + /** LabelValue value. */ - public value?: ("staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"); + public value?: ("staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"|"runtimeBinding"); /** * Creates a new LabelValue instance using the specified properties. @@ -324,6 +449,9 @@ export namespace flyteidl { /** TimePartition value */ value?: (flyteidl.core.ILabelValue|null); + + /** TimePartition granularity */ + granularity?: (flyteidl.core.Granularity|null); } /** Represents a TimePartition. */ @@ -338,6 +466,9 @@ export namespace flyteidl { /** TimePartition value. */ public value?: (flyteidl.core.ILabelValue|null); + /** TimePartition granularity. */ + public granularity: flyteidl.core.Granularity; + /** * Creates a new TimePartition instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 161d05475b..3400b971b3 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -203,7 +203,7 @@ * @interface IArtifactBindingData * @property {string|null} [partitionKey] ArtifactBindingData partitionKey * @property {boolean|null} [bindToTimePartition] ArtifactBindingData bindToTimePartition - * @property {string|null} [transform] ArtifactBindingData transform + * @property {flyteidl.core.ITimeTransform|null} [timeTransform] ArtifactBindingData timeTransform */ /** @@ -238,12 +238,12 @@ ArtifactBindingData.prototype.bindToTimePartition = false; /** - * ArtifactBindingData transform. - * @member {string} transform + * ArtifactBindingData timeTransform. + * @member {flyteidl.core.ITimeTransform|null|undefined} timeTransform * @memberof flyteidl.core.ArtifactBindingData * @instance */ - ArtifactBindingData.prototype.transform = ""; + ArtifactBindingData.prototype.timeTransform = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -284,11 +284,11 @@ if (!writer) writer = $Writer.create(); if (message.partitionKey != null && message.hasOwnProperty("partitionKey")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.partitionKey); + writer.uint32(/* id 5, wireType 2 =*/42).string(message.partitionKey); if (message.bindToTimePartition != null && message.hasOwnProperty("bindToTimePartition")) - writer.uint32(/* id 3, wireType 0 =*/24).bool(message.bindToTimePartition); - if (message.transform != null && message.hasOwnProperty("transform")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.transform); + writer.uint32(/* id 6, wireType 0 =*/48).bool(message.bindToTimePartition); + if (message.timeTransform != null && message.hasOwnProperty("timeTransform")) + $root.flyteidl.core.TimeTransform.encode(message.timeTransform, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -310,14 +310,14 @@ while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: + case 5: message.partitionKey = reader.string(); break; - case 3: + case 6: message.bindToTimePartition = reader.bool(); break; - case 4: - message.transform = reader.string(); + case 7: + message.timeTransform = $root.flyteidl.core.TimeTransform.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -351,13 +351,181 @@ if (typeof message.bindToTimePartition !== "boolean") return "bindToTimePartition: boolean expected"; } + if (message.timeTransform != null && message.hasOwnProperty("timeTransform")) { + var error = $root.flyteidl.core.TimeTransform.verify(message.timeTransform); + if (error) + return "timeTransform." + error; + } + return null; + }; + + return ArtifactBindingData; + })(); + + /** + * Granularity enum. + * @name flyteidl.core.Granularity + * @enum {string} + * @property {number} UNSET=0 UNSET value + * @property {number} MINUTE=1 MINUTE value + * @property {number} HOUR=2 HOUR value + * @property {number} DAY=3 DAY value + * @property {number} MONTH=4 MONTH value + */ + core.Granularity = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNSET"] = 0; + values[valuesById[1] = "MINUTE"] = 1; + values[valuesById[2] = "HOUR"] = 2; + values[valuesById[3] = "DAY"] = 3; + values[valuesById[4] = "MONTH"] = 4; + return values; + })(); + + /** + * Operator enum. + * @name flyteidl.core.Operator + * @enum {string} + * @property {number} MINUS=0 MINUS value + * @property {number} PLUS=1 PLUS value + */ + core.Operator = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MINUS"] = 0; + values[valuesById[1] = "PLUS"] = 1; + return values; + })(); + + core.TimeTransform = (function() { + + /** + * Properties of a TimeTransform. + * @memberof flyteidl.core + * @interface ITimeTransform + * @property {string|null} [transform] TimeTransform transform + * @property {flyteidl.core.Operator|null} [op] TimeTransform op + */ + + /** + * Constructs a new TimeTransform. + * @memberof flyteidl.core + * @classdesc Represents a TimeTransform. + * @implements ITimeTransform + * @constructor + * @param {flyteidl.core.ITimeTransform=} [properties] Properties to set + */ + function TimeTransform(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TimeTransform transform. + * @member {string} transform + * @memberof flyteidl.core.TimeTransform + * @instance + */ + TimeTransform.prototype.transform = ""; + + /** + * TimeTransform op. + * @member {flyteidl.core.Operator} op + * @memberof flyteidl.core.TimeTransform + * @instance + */ + TimeTransform.prototype.op = 0; + + /** + * Creates a new TimeTransform instance using the specified properties. + * @function create + * @memberof flyteidl.core.TimeTransform + * @static + * @param {flyteidl.core.ITimeTransform=} [properties] Properties to set + * @returns {flyteidl.core.TimeTransform} TimeTransform instance + */ + TimeTransform.create = function create(properties) { + return new TimeTransform(properties); + }; + + /** + * Encodes the specified TimeTransform message. Does not implicitly {@link flyteidl.core.TimeTransform.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.TimeTransform + * @static + * @param {flyteidl.core.ITimeTransform} message TimeTransform message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TimeTransform.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.transform != null && message.hasOwnProperty("transform")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.transform); + if (message.op != null && message.hasOwnProperty("op")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.op); + return writer; + }; + + /** + * Decodes a TimeTransform message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.TimeTransform + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.TimeTransform} TimeTransform + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TimeTransform.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.core.TimeTransform(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.transform = reader.string(); + break; + case 2: + message.op = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a TimeTransform message. + * @function verify + * @memberof flyteidl.core.TimeTransform + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TimeTransform.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; if (message.transform != null && message.hasOwnProperty("transform")) if (!$util.isString(message.transform)) return "transform: string expected"; + if (message.op != null && message.hasOwnProperty("op")) + switch (message.op) { + default: + return "op: enum value expected"; + case 0: + case 1: + break; + } return null; }; - return ArtifactBindingData; + return TimeTransform; })(); core.InputBindingData = (function() { @@ -470,6 +638,99 @@ return InputBindingData; })(); + core.RuntimeBinding = (function() { + + /** + * Properties of a RuntimeBinding. + * @memberof flyteidl.core + * @interface IRuntimeBinding + */ + + /** + * Constructs a new RuntimeBinding. + * @memberof flyteidl.core + * @classdesc Represents a RuntimeBinding. + * @implements IRuntimeBinding + * @constructor + * @param {flyteidl.core.IRuntimeBinding=} [properties] Properties to set + */ + function RuntimeBinding(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new RuntimeBinding instance using the specified properties. + * @function create + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {flyteidl.core.IRuntimeBinding=} [properties] Properties to set + * @returns {flyteidl.core.RuntimeBinding} RuntimeBinding instance + */ + RuntimeBinding.create = function create(properties) { + return new RuntimeBinding(properties); + }; + + /** + * Encodes the specified RuntimeBinding message. Does not implicitly {@link flyteidl.core.RuntimeBinding.verify|verify} messages. + * @function encode + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {flyteidl.core.IRuntimeBinding} message RuntimeBinding message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RuntimeBinding.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Decodes a RuntimeBinding message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.core.RuntimeBinding} RuntimeBinding + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RuntimeBinding.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.core.RuntimeBinding(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a RuntimeBinding message. + * @function verify + * @memberof flyteidl.core.RuntimeBinding + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RuntimeBinding.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + return RuntimeBinding; + })(); + core.LabelValue = (function() { /** @@ -480,6 +741,7 @@ * @property {google.protobuf.ITimestamp|null} [timeValue] LabelValue timeValue * @property {flyteidl.core.IArtifactBindingData|null} [triggeredBinding] LabelValue triggeredBinding * @property {flyteidl.core.IInputBindingData|null} [inputBinding] LabelValue inputBinding + * @property {flyteidl.core.IRuntimeBinding|null} [runtimeBinding] LabelValue runtimeBinding */ /** @@ -529,17 +791,25 @@ */ LabelValue.prototype.inputBinding = null; + /** + * LabelValue runtimeBinding. + * @member {flyteidl.core.IRuntimeBinding|null|undefined} runtimeBinding + * @memberof flyteidl.core.LabelValue + * @instance + */ + LabelValue.prototype.runtimeBinding = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; /** * LabelValue value. - * @member {"staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"|undefined} value + * @member {"staticValue"|"timeValue"|"triggeredBinding"|"inputBinding"|"runtimeBinding"|undefined} value * @memberof flyteidl.core.LabelValue * @instance */ Object.defineProperty(LabelValue.prototype, "value", { - get: $util.oneOfGetter($oneOfFields = ["staticValue", "timeValue", "triggeredBinding", "inputBinding"]), + get: $util.oneOfGetter($oneOfFields = ["staticValue", "timeValue", "triggeredBinding", "inputBinding", "runtimeBinding"]), set: $util.oneOfSetter($oneOfFields) }); @@ -575,6 +845,8 @@ $root.flyteidl.core.ArtifactBindingData.encode(message.triggeredBinding, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.inputBinding != null && message.hasOwnProperty("inputBinding")) $root.flyteidl.core.InputBindingData.encode(message.inputBinding, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.runtimeBinding != null && message.hasOwnProperty("runtimeBinding")) + $root.flyteidl.core.RuntimeBinding.encode(message.runtimeBinding, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; @@ -608,6 +880,9 @@ case 4: message.inputBinding = $root.flyteidl.core.InputBindingData.decode(reader, reader.uint32()); break; + case 5: + message.runtimeBinding = $root.flyteidl.core.RuntimeBinding.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -663,6 +938,16 @@ return "inputBinding." + error; } } + if (message.runtimeBinding != null && message.hasOwnProperty("runtimeBinding")) { + if (properties.value === 1) + return "value: multiple values"; + properties.value = 1; + { + var error = $root.flyteidl.core.RuntimeBinding.verify(message.runtimeBinding); + if (error) + return "runtimeBinding." + error; + } + } return null; }; @@ -802,6 +1087,7 @@ * @memberof flyteidl.core * @interface ITimePartition * @property {flyteidl.core.ILabelValue|null} [value] TimePartition value + * @property {flyteidl.core.Granularity|null} [granularity] TimePartition granularity */ /** @@ -827,6 +1113,14 @@ */ TimePartition.prototype.value = null; + /** + * TimePartition granularity. + * @member {flyteidl.core.Granularity} granularity + * @memberof flyteidl.core.TimePartition + * @instance + */ + TimePartition.prototype.granularity = 0; + /** * Creates a new TimePartition instance using the specified properties. * @function create @@ -853,6 +1147,8 @@ writer = $Writer.create(); if (message.value != null && message.hasOwnProperty("value")) $root.flyteidl.core.LabelValue.encode(message.value, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.granularity != null && message.hasOwnProperty("granularity")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.granularity); return writer; }; @@ -877,6 +1173,9 @@ case 1: message.value = $root.flyteidl.core.LabelValue.decode(reader, reader.uint32()); break; + case 2: + message.granularity = reader.int32(); + break; default: reader.skipType(tag & 7); break; @@ -901,6 +1200,17 @@ if (error) return "value." + error; } + if (message.granularity != null && message.hasOwnProperty("granularity")) + switch (message.granularity) { + default: + return "granularity: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py index cffe1484c7..a0cde0f864 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.py @@ -15,7 +15,7 @@ from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/core/artifact_id.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"e\n\x0b\x41rtifactKey\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\xa3\x01\n\x13\x41rtifactBindingData\x12%\n\rpartition_key\x18\x02 \x01(\tH\x00R\x0cpartitionKey\x12\x35\n\x16\x62ind_to_time_partition\x18\x03 \x01(\x08H\x00R\x13\x62indToTimePartition\x12\x1c\n\ttransform\x18\x04 \x01(\tR\ttransformB\x10\n\x0epartition_data\"$\n\x10InputBindingData\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\"\x92\x02\n\nLabelValue\x12#\n\x0cstatic_value\x18\x01 \x01(\tH\x00R\x0bstaticValue\x12;\n\ntime_value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ttimeValue\x12Q\n\x11triggered_binding\x18\x03 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x10triggeredBinding\x12\x46\n\rinput_binding\x18\x04 \x01(\x0b\x32\x1f.flyteidl.core.InputBindingDataH\x00R\x0cinputBindingB\x07\n\x05value\"\x9d\x01\n\nPartitions\x12:\n\x05value\x18\x01 \x03(\x0b\x32$.flyteidl.core.Partitions.ValueEntryR\x05value\x1aS\n\nValueEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value:\x02\x38\x01\"@\n\rTimePartition\x12/\n\x05value\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xe5\x01\n\nArtifactID\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x39\n\npartitions\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.PartitionsR\npartitions\x12\x43\n\x0etime_partition\x18\x04 \x01(\x0b\x32\x1c.flyteidl.core.TimePartitionR\rtimePartition\"}\n\x0b\x41rtifactTag\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xf0\x01\n\rArtifactQuery\x12<\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDH\x00R\nartifactId\x12?\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactTagH\x00R\x0b\x61rtifactTag\x12\x12\n\x03uri\x18\x03 \x01(\tH\x00R\x03uri\x12>\n\x07\x62inding\x18\x04 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x07\x62indingB\x0c\n\nidentifierB\xb5\x01\n\x11\x63om.flyteidl.coreB\x0f\x41rtifactIdProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/core/artifact_id.proto\x12\rflyteidl.core\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"e\n\x0b\x41rtifactKey\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x10\n\x03org\x18\x04 \x01(\tR\x03org\"\xd0\x01\n\x13\x41rtifactBindingData\x12%\n\rpartition_key\x18\x05 \x01(\tH\x00R\x0cpartitionKey\x12\x35\n\x16\x62ind_to_time_partition\x18\x06 \x01(\x08H\x00R\x13\x62indToTimePartition\x12\x43\n\x0etime_transform\x18\x07 \x01(\x0b\x32\x1c.flyteidl.core.TimeTransformR\rtimeTransformB\x10\n\x0epartition_dataJ\x04\x08\x01\x10\x05\"V\n\rTimeTransform\x12\x1c\n\ttransform\x18\x01 \x01(\tR\ttransform\x12\'\n\x02op\x18\x02 \x01(\x0e\x32\x17.flyteidl.core.OperatorR\x02op\"$\n\x10InputBindingData\x12\x10\n\x03var\x18\x01 \x01(\tR\x03var\"\x10\n\x0eRuntimeBinding\"\xdc\x02\n\nLabelValue\x12#\n\x0cstatic_value\x18\x01 \x01(\tH\x00R\x0bstaticValue\x12;\n\ntime_value\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ttimeValue\x12Q\n\x11triggered_binding\x18\x03 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x10triggeredBinding\x12\x46\n\rinput_binding\x18\x04 \x01(\x0b\x32\x1f.flyteidl.core.InputBindingDataH\x00R\x0cinputBinding\x12H\n\x0fruntime_binding\x18\x05 \x01(\x0b\x32\x1d.flyteidl.core.RuntimeBindingH\x00R\x0eruntimeBindingB\x07\n\x05value\"\x9d\x01\n\nPartitions\x12:\n\x05value\x18\x01 \x03(\x0b\x32$.flyteidl.core.Partitions.ValueEntryR\x05value\x1aS\n\nValueEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value:\x02\x38\x01\"~\n\rTimePartition\x12/\n\x05value\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\x12<\n\x0bgranularity\x18\x02 \x01(\x0e\x32\x1a.flyteidl.core.GranularityR\x0bgranularity\"\xe5\x01\n\nArtifactID\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x39\n\npartitions\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.PartitionsR\npartitions\x12\x43\n\x0etime_partition\x18\x04 \x01(\x0b\x32\x1c.flyteidl.core.TimePartitionR\rtimePartition\"}\n\x0b\x41rtifactTag\x12=\n\x0c\x61rtifact_key\x18\x01 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactKeyR\x0b\x61rtifactKey\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LabelValueR\x05value\"\xf0\x01\n\rArtifactQuery\x12<\n\x0b\x61rtifact_id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.ArtifactIDH\x00R\nartifactId\x12?\n\x0c\x61rtifact_tag\x18\x02 \x01(\x0b\x32\x1a.flyteidl.core.ArtifactTagH\x00R\x0b\x61rtifactTag\x12\x12\n\x03uri\x18\x03 \x01(\tH\x00R\x03uri\x12>\n\x07\x62inding\x18\x04 \x01(\x0b\x32\".flyteidl.core.ArtifactBindingDataH\x00R\x07\x62indingB\x0c\n\nidentifier*B\n\x0bGranularity\x12\t\n\x05UNSET\x10\x00\x12\n\n\x06MINUTE\x10\x01\x12\x08\n\x04HOUR\x10\x02\x12\x07\n\x03\x44\x41Y\x10\x03\x12\t\n\x05MONTH\x10\x04*\x1f\n\x08Operator\x12\t\n\x05MINUS\x10\x00\x12\x08\n\x04PLUS\x10\x01\x42\xb5\x01\n\x11\x63om.flyteidl.coreB\x0f\x41rtifactIdProtoP\x01Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\xa2\x02\x03\x46\x43X\xaa\x02\rFlyteidl.Core\xca\x02\rFlyteidl\\Core\xe2\x02\x19\x46lyteidl\\Core\\GPBMetadata\xea\x02\x0e\x46lyteidl::Coreb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -26,24 +26,32 @@ DESCRIPTOR._serialized_options = b'\n\021com.flyteidl.coreB\017ArtifactIdProtoP\001Z:github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core\242\002\003FCX\252\002\rFlyteidl.Core\312\002\rFlyteidl\\Core\342\002\031Flyteidl\\Core\\GPBMetadata\352\002\016Flyteidl::Core' _PARTITIONS_VALUEENTRY._options = None _PARTITIONS_VALUEENTRY._serialized_options = b'8\001' + _globals['_GRANULARITY']._serialized_start=1814 + _globals['_GRANULARITY']._serialized_end=1880 + _globals['_OPERATOR']._serialized_start=1882 + _globals['_OPERATOR']._serialized_end=1913 _globals['_ARTIFACTKEY']._serialized_start=115 _globals['_ARTIFACTKEY']._serialized_end=216 _globals['_ARTIFACTBINDINGDATA']._serialized_start=219 - _globals['_ARTIFACTBINDINGDATA']._serialized_end=382 - _globals['_INPUTBINDINGDATA']._serialized_start=384 - _globals['_INPUTBINDINGDATA']._serialized_end=420 - _globals['_LABELVALUE']._serialized_start=423 - _globals['_LABELVALUE']._serialized_end=697 - _globals['_PARTITIONS']._serialized_start=700 - _globals['_PARTITIONS']._serialized_end=857 - _globals['_PARTITIONS_VALUEENTRY']._serialized_start=774 - _globals['_PARTITIONS_VALUEENTRY']._serialized_end=857 - _globals['_TIMEPARTITION']._serialized_start=859 - _globals['_TIMEPARTITION']._serialized_end=923 - _globals['_ARTIFACTID']._serialized_start=926 - _globals['_ARTIFACTID']._serialized_end=1155 - _globals['_ARTIFACTTAG']._serialized_start=1157 - _globals['_ARTIFACTTAG']._serialized_end=1282 - _globals['_ARTIFACTQUERY']._serialized_start=1285 - _globals['_ARTIFACTQUERY']._serialized_end=1525 + _globals['_ARTIFACTBINDINGDATA']._serialized_end=427 + _globals['_TIMETRANSFORM']._serialized_start=429 + _globals['_TIMETRANSFORM']._serialized_end=515 + _globals['_INPUTBINDINGDATA']._serialized_start=517 + _globals['_INPUTBINDINGDATA']._serialized_end=553 + _globals['_RUNTIMEBINDING']._serialized_start=555 + _globals['_RUNTIMEBINDING']._serialized_end=571 + _globals['_LABELVALUE']._serialized_start=574 + _globals['_LABELVALUE']._serialized_end=922 + _globals['_PARTITIONS']._serialized_start=925 + _globals['_PARTITIONS']._serialized_end=1082 + _globals['_PARTITIONS_VALUEENTRY']._serialized_start=999 + _globals['_PARTITIONS_VALUEENTRY']._serialized_end=1082 + _globals['_TIMEPARTITION']._serialized_start=1084 + _globals['_TIMEPARTITION']._serialized_end=1210 + _globals['_ARTIFACTID']._serialized_start=1213 + _globals['_ARTIFACTID']._serialized_end=1442 + _globals['_ARTIFACTTAG']._serialized_start=1444 + _globals['_ARTIFACTTAG']._serialized_end=1569 + _globals['_ARTIFACTQUERY']._serialized_start=1572 + _globals['_ARTIFACTQUERY']._serialized_end=1812 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi index e1e688c8e4..c8e5a61a4a 100644 --- a/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/core/artifact_id_pb2.pyi @@ -1,12 +1,33 @@ from google.protobuf import timestamp_pb2 as _timestamp_pb2 from flyteidl.core import identifier_pb2 as _identifier_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class Granularity(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + UNSET: _ClassVar[Granularity] + MINUTE: _ClassVar[Granularity] + HOUR: _ClassVar[Granularity] + DAY: _ClassVar[Granularity] + MONTH: _ClassVar[Granularity] + +class Operator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MINUS: _ClassVar[Operator] + PLUS: _ClassVar[Operator] +UNSET: Granularity +MINUTE: Granularity +HOUR: Granularity +DAY: Granularity +MONTH: Granularity +MINUS: Operator +PLUS: Operator + class ArtifactKey(_message.Message): __slots__ = ["project", "domain", "name", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] @@ -20,14 +41,22 @@ class ArtifactKey(_message.Message): def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., name: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... class ArtifactBindingData(_message.Message): - __slots__ = ["partition_key", "bind_to_time_partition", "transform"] + __slots__ = ["partition_key", "bind_to_time_partition", "time_transform"] PARTITION_KEY_FIELD_NUMBER: _ClassVar[int] BIND_TO_TIME_PARTITION_FIELD_NUMBER: _ClassVar[int] - TRANSFORM_FIELD_NUMBER: _ClassVar[int] + TIME_TRANSFORM_FIELD_NUMBER: _ClassVar[int] partition_key: str bind_to_time_partition: bool + time_transform: TimeTransform + def __init__(self, partition_key: _Optional[str] = ..., bind_to_time_partition: bool = ..., time_transform: _Optional[_Union[TimeTransform, _Mapping]] = ...) -> None: ... + +class TimeTransform(_message.Message): + __slots__ = ["transform", "op"] + TRANSFORM_FIELD_NUMBER: _ClassVar[int] + OP_FIELD_NUMBER: _ClassVar[int] transform: str - def __init__(self, partition_key: _Optional[str] = ..., bind_to_time_partition: bool = ..., transform: _Optional[str] = ...) -> None: ... + op: Operator + def __init__(self, transform: _Optional[str] = ..., op: _Optional[_Union[Operator, str]] = ...) -> None: ... class InputBindingData(_message.Message): __slots__ = ["var"] @@ -35,17 +64,23 @@ class InputBindingData(_message.Message): var: str def __init__(self, var: _Optional[str] = ...) -> None: ... +class RuntimeBinding(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + class LabelValue(_message.Message): - __slots__ = ["static_value", "time_value", "triggered_binding", "input_binding"] + __slots__ = ["static_value", "time_value", "triggered_binding", "input_binding", "runtime_binding"] STATIC_VALUE_FIELD_NUMBER: _ClassVar[int] TIME_VALUE_FIELD_NUMBER: _ClassVar[int] TRIGGERED_BINDING_FIELD_NUMBER: _ClassVar[int] INPUT_BINDING_FIELD_NUMBER: _ClassVar[int] + RUNTIME_BINDING_FIELD_NUMBER: _ClassVar[int] static_value: str time_value: _timestamp_pb2.Timestamp triggered_binding: ArtifactBindingData input_binding: InputBindingData - def __init__(self, static_value: _Optional[str] = ..., time_value: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., triggered_binding: _Optional[_Union[ArtifactBindingData, _Mapping]] = ..., input_binding: _Optional[_Union[InputBindingData, _Mapping]] = ...) -> None: ... + runtime_binding: RuntimeBinding + def __init__(self, static_value: _Optional[str] = ..., time_value: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., triggered_binding: _Optional[_Union[ArtifactBindingData, _Mapping]] = ..., input_binding: _Optional[_Union[InputBindingData, _Mapping]] = ..., runtime_binding: _Optional[_Union[RuntimeBinding, _Mapping]] = ...) -> None: ... class Partitions(_message.Message): __slots__ = ["value"] @@ -61,10 +96,12 @@ class Partitions(_message.Message): def __init__(self, value: _Optional[_Mapping[str, LabelValue]] = ...) -> None: ... class TimePartition(_message.Message): - __slots__ = ["value"] + __slots__ = ["value", "granularity"] VALUE_FIELD_NUMBER: _ClassVar[int] + GRANULARITY_FIELD_NUMBER: _ClassVar[int] value: LabelValue - def __init__(self, value: _Optional[_Union[LabelValue, _Mapping]] = ...) -> None: ... + granularity: Granularity + def __init__(self, value: _Optional[_Union[LabelValue, _Mapping]] = ..., granularity: _Optional[_Union[Granularity, str]] = ...) -> None: ... class ArtifactID(_message.Message): __slots__ = ["artifact_key", "version", "partitions", "time_partition"] diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index 07973186b4..a36add78f2 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -731,10 +731,10 @@ pub struct ArtifactKey { #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArtifactBindingData { /// This is only relevant in the time partition case - #[prost(string, tag="4")] - pub transform: ::prost::alloc::string::String, + #[prost(message, optional, tag="7")] + pub time_transform: ::core::option::Option, /// These two fields are only relevant in the partition value case - #[prost(oneof="artifact_binding_data::PartitionData", tags="2, 3")] + #[prost(oneof="artifact_binding_data::PartitionData", tags="5, 6")] pub partition_data: ::core::option::Option, } /// Nested message and enum types in `ArtifactBindingData`. @@ -743,22 +743,34 @@ pub mod artifact_binding_data { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum PartitionData { - #[prost(string, tag="2")] + #[prost(string, tag="5")] PartitionKey(::prost::alloc::string::String), - #[prost(bool, tag="3")] + #[prost(bool, tag="6")] BindToTimePartition(bool), } } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct TimeTransform { + #[prost(string, tag="1")] + pub transform: ::prost::alloc::string::String, + #[prost(enumeration="Operator", tag="2")] + pub op: i32, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct InputBindingData { #[prost(string, tag="1")] pub var: ::prost::alloc::string::String, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct RuntimeBinding { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct LabelValue { - #[prost(oneof="label_value::Value", tags="1, 2, 3, 4")] + #[prost(oneof="label_value::Value", tags="1, 2, 3, 4, 5")] pub value: ::core::option::Option, } /// Nested message and enum types in `LabelValue`. @@ -776,6 +788,8 @@ pub mod label_value { TriggeredBinding(super::ArtifactBindingData), #[prost(message, tag="4")] InputBinding(super::InputBindingData), + #[prost(message, tag="5")] + RuntimeBinding(super::RuntimeBinding), } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -789,6 +803,8 @@ pub struct Partitions { pub struct TimePartition { #[prost(message, optional, tag="1")] pub value: ::core::option::Option, + #[prost(enumeration="Granularity", tag="2")] + pub granularity: i32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -841,6 +857,68 @@ pub mod artifact_query { Binding(super::ArtifactBindingData), } } +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Granularity { + Unset = 0, + Minute = 1, + Hour = 2, + /// default + Day = 3, + Month = 4, +} +impl Granularity { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Granularity::Unset => "UNSET", + Granularity::Minute => "MINUTE", + Granularity::Hour => "HOUR", + Granularity::Day => "DAY", + Granularity::Month => "MONTH", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "UNSET" => Some(Self::Unset), + "MINUTE" => Some(Self::Minute), + "HOUR" => Some(Self::Hour), + "DAY" => Some(Self::Day), + "MONTH" => Some(Self::Month), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum Operator { + Minus = 0, + Plus = 1, +} +impl Operator { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Operator::Minus => "MINUS", + Operator::Plus => "PLUS", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MINUS" => Some(Self::Minus), + "PLUS" => Some(Self::Plus), + _ => None, + } + } +} /// Defines a strongly typed variable. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/flyteidl/protos/flyteidl/core/artifact_id.proto b/flyteidl/protos/flyteidl/core/artifact_id.proto index fe887e336a..022bc20cff 100644 --- a/flyteidl/protos/flyteidl/core/artifact_id.proto +++ b/flyteidl/protos/flyteidl/core/artifact_id.proto @@ -18,20 +18,41 @@ message ArtifactKey { // Only valid for triggers message ArtifactBindingData { + reserved 1 to 4; // These two fields are only relevant in the partition value case oneof partition_data { - string partition_key = 2; - bool bind_to_time_partition = 3; + string partition_key = 5; + bool bind_to_time_partition = 6; } // This is only relevant in the time partition case - string transform = 4; + TimeTransform time_transform = 7; +} + +enum Granularity { + UNSET = 0; + MINUTE = 1; + HOUR = 2; + DAY = 3; // default + MONTH = 4; +} + +enum Operator { + MINUS = 0; + PLUS = 1; +} + +message TimeTransform { + string transform = 1; + Operator op = 2; } message InputBindingData { string var = 1; } +message RuntimeBinding {} + message LabelValue { oneof value { // The string static value is for use in the Partitions object @@ -41,6 +62,7 @@ message LabelValue { google.protobuf.Timestamp time_value = 2; ArtifactBindingData triggered_binding = 3; InputBindingData input_binding = 4; + RuntimeBinding runtime_binding = 5; } } @@ -50,6 +72,7 @@ message Partitions { message TimePartition { LabelValue value = 1; + Granularity granularity = 2; } message ArtifactID { From da20f7018213326de53d4dfc226ff911006e0367 Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Tue, 5 Mar 2024 14:38:55 -0600 Subject: [PATCH 22/76] add links to contributing guide and code (#5006) Signed-off-by: nikki everett --- docs/flyte_agents/developing_agents.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/flyte_agents/developing_agents.md b/docs/flyte_agents/developing_agents.md index ba114be6c7..a4a4adc7c7 100644 --- a/docs/flyte_agents/developing_agents.md +++ b/docs/flyte_agents/developing_agents.md @@ -15,7 +15,7 @@ If you need to create a new type of task, we recommend creating a new agent to r ```{note} -We strongly encourage you to contribute your agent to the Flyte community. To do so, follow the steps in "[Contributing to Flyte](https://docs.flyte.org/en/latest/community/contribute.html)", and reach out to us on [Slack](https://docs.flyte.org/en/latest/community/contribute.html#) if you have any questions. +We strongly encourage you to contribute your agent to the Flyte community. To do so, follow the steps in "[Contributing to Flyte](https://docs.flyte.org/en/latest/community/contribute.html)" to add your agent to [Flytekit](https://github.com/flyteorg/flytekit/tree/master/plugins) and [create an example](https://docs.flyte.org/en/latest/flytesnacks/contribute.html) of your agent for the [Integrations](https://docs.flyte.org/en/latest/flytesnacks/integrations.html) documentation. If you have any questions, reach out to us on [Slack](https://docs.flyte.org/en/latest/community/contribute.html#). ``` @@ -31,7 +31,7 @@ While agents can be written in any programming language, we currently only suppo ## Async agent interface specification -To create a new async agent, extend the `AsyncAgentBase` and implement `create`, `get`, and `delete` methods. These methods must be idempotent. +To create a new async agent, extend the [`AsyncAgentBase`](https://github.com/flyteorg/flytekit/blob/master/flytekit/extend/backend/base_agent.py#L127) class and implement `create`, `get`, and `delete` methods. These methods must be idempotent. - `create`: This method is used to initiate a new job. Users have the flexibility to use gRPC, REST, or an SDK to create a job. - `get`: This method retrieves the job resource (jobID or output literal) associated with the task, such as a BigQuery job ID or Databricks task ID. @@ -78,7 +78,7 @@ For an example implementation, see the [BigQuery agent](https://github.com/flyte ## Sync agent interface specification -To create a new sync agent, extend the `SyncAgentBase` class and implement a `do` method. This method must be idempotent. +To create a new sync agent, extend the [`SyncAgentBase`](https://github.com/flyteorg/flytekit/blob/master/flytekit/extend/backend/base_agent.py#L107) class and implement a `do` method. This method must be idempotent. - `do`: This method is used to execute the synchronous task, and the worker in Flyte will be blocked until the method returns. From f9c1a971b268b19ff951151e2bfa3b143d722d9b Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Tue, 5 Mar 2024 14:59:40 -0600 Subject: [PATCH 23/76] update link to flytesnacks repo (#5007) Signed-off-by: nikki everett --- docs/deployment/deployment/cloud_simple.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/deployment/deployment/cloud_simple.rst b/docs/deployment/deployment/cloud_simple.rst index c71708f1f4..94833a0db4 100644 --- a/docs/deployment/deployment/cloud_simple.rst +++ b/docs/deployment/deployment/cloud_simple.rst @@ -112,8 +112,8 @@ hello world example: .. prompt:: bash $ git clone https://github.com/flyteorg/flytesnacks - cd flytesnacks/cookbook - pyflyte run --remote core/flyte_basics/hello_world.py my_wf + cd flytesnacks/examples/basics + pyflyte run --remote basics/hello_world.py hello_world_wf *********************************** Flyte in on-premises infrastructure From 99dad357a60869dae9d9201b3a9311b03f44f65b Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Tue, 5 Mar 2024 15:17:27 -0800 Subject: [PATCH 24/76] Improve the error message for databricks plugins (#4477) Signed-off-by: Kevin Su Signed-off-by: Kevin Su --- .../internal/webapi/launcher.go | 3 +- .../internal/webapi/launcher_test.go | 5 +- .../plugins/webapi/agent/integration_test.go | 12 +- .../webapi/databricks/integration_test.go | 14 +- .../tasks/plugins/webapi/databricks/plugin.go | 254 ++++++++---------- .../plugins/webapi/databricks/plugin_test.go | 147 ++++++---- 6 files changed, 224 insertions(+), 211 deletions(-) diff --git a/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go b/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go index bf6ef791ac..99a3ccdf7a 100644 --- a/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go +++ b/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go @@ -2,6 +2,7 @@ package webapi import ( "context" + pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors" "time" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core" @@ -15,7 +16,7 @@ func launch(ctx context.Context, p webapi.AsyncPlugin, tCtx core.TaskExecutionCo rMeta, r, err := p.Create(ctx, tCtx) if err != nil { logger.Errorf(ctx, "Failed to create resource. Error: %v", err) - return nil, core.PhaseInfo{}, err + return state, core.PhaseInfoRetryableFailure(pluginErrors.TaskFailedWithError, err.Error(), nil), nil } // If the plugin also returned the created resource, check to see if it's already in a terminal state. diff --git a/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher_test.go b/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher_test.go index 85ba42d0c6..7836cc591d 100644 --- a/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher_test.go +++ b/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher_test.go @@ -79,8 +79,9 @@ func Test_launch(t *testing.T) { plgn := newPluginWithProperties(webapi.PluginConfig{}) plgn.OnCreate(ctx, tCtx).Return("", nil, fmt.Errorf("error creating")) - _, _, err := launch(ctx, plgn, tCtx, c, &s) - assert.Error(t, err) + _, phase, err := launch(ctx, plgn, tCtx, c, &s) + assert.Nil(t, err) + assert.Equal(t, core.PhaseRetryableFailure, phase.Phase()) }) t.Run("Failed to cache", func(t *testing.T) { diff --git a/flyteplugins/go/tasks/plugins/webapi/agent/integration_test.go b/flyteplugins/go/tasks/plugins/webapi/agent/integration_test.go index a4ddc5e303..689527ee3b 100644 --- a/flyteplugins/go/tasks/plugins/webapi/agent/integration_test.go +++ b/flyteplugins/go/tasks/plugins/webapi/agent/integration_test.go @@ -137,8 +137,8 @@ func TestEndToEnd(t *testing.T) { tCtx.OnInputReader().Return(inputReader) trns, err := plugin.Handle(context.Background(), tCtx) - assert.Error(t, err) - assert.Equal(t, trns.Info().Phase(), core.PhaseUndefined) + assert.Nil(t, err) + assert.Equal(t, trns.Info().Phase(), core.PhaseRetryableFailure) err = plugin.Abort(context.Background(), tCtx) assert.Nil(t, err) }) @@ -155,8 +155,8 @@ func TestEndToEnd(t *testing.T) { assert.NoError(t, err) trns, err := plugin.Handle(context.Background(), tCtx) - assert.Error(t, err) - assert.Equal(t, trns.Info().Phase(), core.PhaseUndefined) + assert.Nil(t, err) + assert.Equal(t, trns.Info().Phase(), core.PhaseRetryableFailure) }) t.Run("failed to read inputs", func(t *testing.T) { @@ -176,8 +176,8 @@ func TestEndToEnd(t *testing.T) { assert.NoError(t, err) trns, err := plugin.Handle(context.Background(), tCtx) - assert.Error(t, err) - assert.Equal(t, trns.Info().Phase(), core.PhaseUndefined) + assert.Nil(t, err) + assert.Equal(t, trns.Info().Phase(), core.PhaseRetryableFailure) }) } diff --git a/flyteplugins/go/tasks/plugins/webapi/databricks/integration_test.go b/flyteplugins/go/tasks/plugins/webapi/databricks/integration_test.go index 651892f672..d18f4ba79e 100644 --- a/flyteplugins/go/tasks/plugins/webapi/databricks/integration_test.go +++ b/flyteplugins/go/tasks/plugins/webapi/databricks/integration_test.go @@ -109,8 +109,8 @@ func newFakeDatabricksServer() *httptest.Server { runID := "065168461" jobID := "019e7546" return httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) { - if request.URL.Path == fmt.Sprintf("%v/submit", databricksAPI) && request.Method == post { - writer.WriteHeader(202) + if request.URL.Path == fmt.Sprintf("%v/submit", databricksAPI) && request.Method == http.MethodPost { + writer.WriteHeader(http.StatusOK) bytes := []byte(fmt.Sprintf(`{ "run_id": "%v" }`, runID)) @@ -118,8 +118,8 @@ func newFakeDatabricksServer() *httptest.Server { return } - if request.URL.Path == fmt.Sprintf("%v/get", databricksAPI) && request.Method == get { - writer.WriteHeader(200) + if request.URL.Path == fmt.Sprintf("%v/get", databricksAPI) && request.Method == http.MethodGet { + writer.WriteHeader(http.StatusOK) bytes := []byte(fmt.Sprintf(`{ "job_id": "%v", "state": {"state_message": "execution in progress.", "life_cycle_state": "TERMINATED", "result_state": "SUCCESS"} @@ -128,12 +128,12 @@ func newFakeDatabricksServer() *httptest.Server { return } - if request.URL.Path == fmt.Sprintf("%v/cancel", databricksAPI) && request.Method == post { - writer.WriteHeader(200) + if request.URL.Path == fmt.Sprintf("%v/cancel", databricksAPI) && request.Method == http.MethodPost { + writer.WriteHeader(http.StatusOK) return } - writer.WriteHeader(500) + writer.WriteHeader(http.StatusInternalServerError) })) } diff --git a/flyteplugins/go/tasks/plugins/webapi/databricks/plugin.go b/flyteplugins/go/tasks/plugins/webapi/databricks/plugin.go index 3e9b37ea93..5ebe1d0075 100644 --- a/flyteplugins/go/tasks/plugins/webapi/databricks/plugin.go +++ b/flyteplugins/go/tasks/plugins/webapi/databricks/plugin.go @@ -6,6 +6,7 @@ import ( "encoding/gob" "encoding/json" "fmt" + "io" "io/ioutil" "net/http" "time" @@ -26,20 +27,20 @@ import ( ) const ( - ErrSystem errors.ErrorCode = "System" - post string = "POST" - get string = "GET" - databricksAPI string = "/api/2.1/jobs/runs" - newCluster string = "new_cluster" - dockerImage string = "docker_image" - sparkConfig string = "spark_conf" - sparkPythonTask string = "spark_python_task" - pythonFile string = "python_file" - parameters string = "parameters" - url string = "url" + create string = "create" + get string = "get" + cancel string = "cancel" + databricksAPI string = "/api/2.1/jobs/runs" + newCluster string = "new_cluster" + dockerImage string = "docker_image" + sparkConfig string = "spark_conf" + sparkPythonTask string = "spark_python_task" + pythonFile string = "python_file" + parameters string = "parameters" + url string = "url" ) -// for mocking/testing purposes, and we'll override this method +// HTTPClient for mocking/testing purposes, and we'll override this method type HTTPClient interface { Do(req *http.Request) (*http.Response, error) } @@ -127,60 +128,41 @@ func (p Plugin) Create(ctx context.Context, taskCtx webapi.TaskExecutionContextR } databricksJob[sparkPythonTask] = map[string]interface{}{pythonFile: p.cfg.EntrypointFile, parameters: modifiedArgs} - req, err := buildRequest(post, databricksJob, p.cfg.databricksEndpoint, - p.cfg.DatabricksInstance, token, "", false) + data, err := p.sendRequest(create, databricksJob, token, "") if err != nil { return nil, nil, err } - resp, err := p.client.Do(req) - if err != nil { - return nil, nil, err - } - defer resp.Body.Close() - data, err := buildResponse(resp) - if err != nil { - return nil, nil, err - } - if data["run_id"] == "" { - return nil, nil, pluginErrors.Wrapf(pluginErrors.RuntimeFailure, err, - "Unable to fetch statementHandle from http response") + if _, ok := data["run_id"]; !ok { + return nil, nil, errors.Errorf("CorruptedPluginState", "can't get the run_id") } runID := fmt.Sprintf("%.0f", data["run_id"]) - return ResourceMetaWrapper{runID, p.cfg.DatabricksInstance, token}, - ResourceWrapper{StatusCode: resp.StatusCode}, nil + return ResourceMetaWrapper{runID, p.cfg.DatabricksInstance, token}, nil, nil } func (p Plugin) Get(ctx context.Context, taskCtx webapi.GetContext) (latest webapi.Resource, err error) { exec := taskCtx.ResourceMeta().(ResourceMetaWrapper) - req, err := buildRequest(get, nil, p.cfg.databricksEndpoint, - p.cfg.DatabricksInstance, exec.Token, exec.RunID, false) - if err != nil { - logger.Errorf(ctx, "Failed to build databricks job request [%v]", err) - return nil, err - } - resp, err := p.client.Do(req) - logger.Debugf(ctx, "Get databricks job response", "resp", resp) + res, err := p.sendRequest(get, nil, exec.Token, exec.RunID) if err != nil { - logger.Errorf(ctx, "Failed to get databricks job status [%v]", resp) return nil, err } - defer resp.Body.Close() - data, err := buildResponse(resp) - if err != nil { - return nil, err - } - if data == nil || data["state"] == nil { + if _, ok := res["state"]; !ok { return nil, errors.Errorf("CorruptedPluginState", "can't get the job state") } - jobState := data["state"].(map[string]interface{}) + jobState := res["state"].(map[string]interface{}) + jobID := fmt.Sprintf("%.0f", res["job_id"]) message := fmt.Sprintf("%s", jobState["state_message"]) - jobID := fmt.Sprintf("%.0f", data["job_id"]) lifeCycleState := fmt.Sprintf("%s", jobState["life_cycle_state"]) - resultState := fmt.Sprintf("%s", jobState["result_state"]) + var resultState string + if _, ok := jobState["result_state"]; !ok { + // The result_state is not available until the job is finished. + // https://docs.databricks.com/en/workflows/jobs/jobs-2.0-api.html#runresultstate + resultState = "" + } else { + resultState = fmt.Sprintf("%s", jobState["result_state"]) + } return ResourceWrapper{ - StatusCode: resp.StatusCode, JobID: jobID, LifeCycleState: lifeCycleState, ResultState: resultState, @@ -193,63 +175,111 @@ func (p Plugin) Delete(ctx context.Context, taskCtx webapi.DeleteContext) error return nil } exec := taskCtx.ResourceMeta().(ResourceMetaWrapper) - req, err := buildRequest(post, nil, p.cfg.databricksEndpoint, - p.cfg.DatabricksInstance, exec.Token, exec.RunID, true) + _, err := p.sendRequest(cancel, nil, exec.Token, exec.RunID) if err != nil { return err } + logger.Info(ctx, "Deleted Databricks job execution.") + + return nil +} + +func (p Plugin) sendRequest(method string, databricksJob map[string]interface{}, token string, runID string) (map[string]interface{}, error) { + var databricksURL string + // for mocking/testing purposes + if p.cfg.databricksEndpoint == "" { + databricksURL = fmt.Sprintf("https://%v%v", p.cfg.DatabricksInstance, databricksAPI) + } else { + databricksURL = fmt.Sprintf("%v%v", p.cfg.databricksEndpoint, databricksAPI) + } + + // build the request spec + var body io.Reader + var httpMethod string + switch method { + case create: + databricksURL += "/submit" + mJSON, err := json.Marshal(databricksJob) + if err != nil { + return nil, fmt.Errorf("failed to marshal the job request: %v", err) + } + body = bytes.NewBuffer(mJSON) + httpMethod = http.MethodPost + case get: + databricksURL += "/get?run_id=" + runID + httpMethod = http.MethodGet + case cancel: + databricksURL += "/cancel" + body = bytes.NewBuffer([]byte(fmt.Sprintf("{ \"run_id\": %v }", runID))) + httpMethod = http.MethodPost + } + + req, err := http.NewRequest(httpMethod, databricksURL, body) + if err != nil { + return nil, err + } + req.Header.Add("Authorization", "Bearer "+token) + req.Header.Add("Content-Type", "application/json") + + // Send the request resp, err := p.client.Do(req) if err != nil { - return err + return nil, fmt.Errorf("failed to send request to Databricks platform with err: [%v]", err) } defer resp.Body.Close() - logger.Infof(ctx, "Deleted query execution [%v]", resp) - return nil + // Parse the response body + responseBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + var data map[string]interface{} + err = json.Unmarshal(responseBody, &data) + if err != nil { + return nil, fmt.Errorf("failed to parse response with err: [%v]", err) + } + if resp.StatusCode != http.StatusOK { + message := "" + if v, ok := data["message"]; ok { + message = v.(string) + } + return nil, fmt.Errorf("failed to %v Databricks job with error [%v]", method, message) + } + return data, nil } func (p Plugin) Status(ctx context.Context, taskCtx webapi.StatusContext) (phase core.PhaseInfo, err error) { exec := taskCtx.ResourceMeta().(ResourceMetaWrapper) resource := taskCtx.Resource().(ResourceWrapper) message := resource.Message - statusCode := resource.StatusCode jobID := resource.JobID lifeCycleState := resource.LifeCycleState resultState := resource.ResultState - if statusCode == 0 { - return core.PhaseInfoUndefined, errors.Errorf(ErrSystem, "No Status field set.") - } - taskInfo := createTaskInfo(exec.RunID, jobID, exec.DatabricksInstance) - switch statusCode { - // Job response format. https://docs.databricks.com/dev-tools/api/latest/jobs.html#operation/JobsRunsSubmit - case http.StatusAccepted: - return core.PhaseInfoRunning(pluginsCore.DefaultPhaseVersion, taskInfo), nil - case http.StatusOK: - if lifeCycleState == "TERMINATED" || lifeCycleState == "TERMINATING" || lifeCycleState == "INTERNAL_ERROR" { - if resultState == "SUCCESS" { - if err := writeOutput(ctx, taskCtx); err != nil { - pluginsCore.PhaseInfoFailure(string(rune(statusCode)), "failed to write output", taskInfo) - } - return pluginsCore.PhaseInfoSuccess(taskInfo), nil + switch lifeCycleState { + // Job response format. https://docs.databricks.com/en/workflows/jobs/jobs-2.0-api.html#runlifecyclestate + case "PENDING": + return core.PhaseInfoInitializing(time.Now(), core.DefaultPhaseVersion, message, taskInfo), nil + case "RUNNING": + fallthrough + case "TERMINATING": + return core.PhaseInfoRunning(core.DefaultPhaseVersion, taskInfo), nil + case "TERMINATED": + if resultState == "SUCCESS" { + // Result state details. https://docs.databricks.com/en/workflows/jobs/jobs-2.0-api.html#runresultstate + if err := writeOutput(ctx, taskCtx); err != nil { + return core.PhaseInfoFailure(string(rune(http.StatusInternalServerError)), "failed to write output", taskInfo), nil } - return pluginsCore.PhaseInfoFailure(string(rune(statusCode)), message, taskInfo), nil - } - - if lifeCycleState == "PENDING" { - return core.PhaseInfoInitializing(time.Now(), core.DefaultPhaseVersion, message, taskInfo), nil + return core.PhaseInfoSuccess(taskInfo), nil } - - return core.PhaseInfoRunning(pluginsCore.DefaultPhaseVersion, taskInfo), nil - case http.StatusBadRequest: - fallthrough - case http.StatusInternalServerError: - fallthrough - case http.StatusUnauthorized: - return pluginsCore.PhaseInfoFailure(string(rune(statusCode)), message, taskInfo), nil + return core.PhaseInfoFailure(pluginErrors.TaskFailedWithError, message, taskInfo), nil + case "SKIPPED": + return core.PhaseInfoFailure(string(rune(http.StatusConflict)), message, taskInfo), nil + case "INTERNAL_ERROR": + return core.PhaseInfoFailure(string(rune(http.StatusInternalServerError)), message, taskInfo), nil } - return core.PhaseInfoUndefined, pluginErrors.Errorf(pluginsCore.SystemErrorCode, "unknown execution phase [%v].", statusCode) + return core.PhaseInfoUndefined, pluginErrors.Errorf(pluginsCore.SystemErrorCode, "unknown execution phase [%v].", lifeCycleState) } func writeOutput(ctx context.Context, taskCtx webapi.StatusContext) error { @@ -266,66 +296,6 @@ func writeOutput(ctx context.Context, taskCtx webapi.StatusContext) error { return taskCtx.OutputWriter().Put(ctx, outputReader) } -func buildRequest( - method string, - databricksJob map[string]interface{}, - databricksEndpoint string, - databricksInstance string, - token string, - runID string, - isCancel bool, -) (*http.Request, error) { - var databricksURL string - // for mocking/testing purposes - if databricksEndpoint == "" { - databricksURL = fmt.Sprintf("https://%v%v", databricksInstance, databricksAPI) - } else { - databricksURL = fmt.Sprintf("%v%v", databricksEndpoint, databricksAPI) - } - - var data []byte - var req *http.Request - var err error - if isCancel { - databricksURL += "/cancel" - data = []byte(fmt.Sprintf("{ \"run_id\": %v }", runID)) - } else if method == post { - databricksURL += "/submit" - mJSON, err := json.Marshal(databricksJob) - if err != nil { - return nil, err - } - data = []byte(string(mJSON)) - } else { - databricksURL += "/get?run_id=" + runID - } - - if data == nil { - req, err = http.NewRequest(method, databricksURL, nil) - } else { - req, err = http.NewRequest(method, databricksURL, bytes.NewBuffer(data)) - } - if err != nil { - return nil, err - } - req.Header.Add("Authorization", "Bearer "+token) - req.Header.Add("Content-Type", "application/json") - return req, nil -} - -func buildResponse(response *http.Response) (map[string]interface{}, error) { - responseBody, err := ioutil.ReadAll(response.Body) - if err != nil { - return nil, err - } - var data map[string]interface{} - err = json.Unmarshal(responseBody, &data) - if err != nil { - return nil, err - } - return data, nil -} - func createTaskInfo(runID, jobID, databricksInstance string) *core.TaskInfo { timeNow := time.Now() diff --git a/flyteplugins/go/tasks/plugins/webapi/databricks/plugin_test.go b/flyteplugins/go/tasks/plugins/webapi/databricks/plugin_test.go index fda3ab61b0..228914af93 100644 --- a/flyteplugins/go/tasks/plugins/webapi/databricks/plugin_test.go +++ b/flyteplugins/go/tasks/plugins/webapi/databricks/plugin_test.go @@ -2,10 +2,8 @@ package databricks import ( "context" - "encoding/json" - "io/ioutil" + "errors" "net/http" - "strings" "testing" "time" @@ -13,21 +11,22 @@ import ( pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core" pluginCoreMocks "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core/mocks" + "github.com/flyteorg/flyte/flytestdlib/ioutils" "github.com/flyteorg/flyte/flytestdlib/promutils" ) type MockClient struct { + MockDo func(req *http.Request) (*http.Response, error) +} + +func (m MockClient) Do(req *http.Request) (*http.Response, error) { + return m.MockDo(req) } var ( - MockDo func(req *http.Request) (*http.Response, error) testInstance = "test-account.cloud.databricks.com" ) -func (m *MockClient) Do(req *http.Request) (*http.Response, error) { - return MockDo(req) -} - func TestPlugin(t *testing.T) { fakeSetupContext := pluginCoreMocks.SetupContext{} fakeSetupContext.OnMetricsScope().Return(promutils.NewScope("test")) @@ -35,7 +34,9 @@ func TestPlugin(t *testing.T) { plugin := Plugin{ metricScope: fakeSetupContext.MetricsScope(), cfg: GetConfig(), - client: &MockClient{}, + client: &MockClient{func(req *http.Request) (*http.Response, error) { + return nil, nil + }}, } t.Run("get config", func(t *testing.T) { cfg := defaultConfig @@ -53,61 +54,101 @@ func TestPlugin(t *testing.T) { }) } -func TestCreateTaskInfo(t *testing.T) { - t.Run("create task info", func(t *testing.T) { - taskInfo := createTaskInfo("run-id", "job-id", testInstance) +func TestSendRequest(t *testing.T) { + fakeSetupContext := pluginCoreMocks.SetupContext{} + fakeSetupContext.OnMetricsScope().Return(promutils.NewScope("test1")) + databricksJob := map[string]interface{}{"sparkConfig": map[string]interface{}{"sparkVersion": "7.3.x-scala2.12"}} + token := "token" - assert.Equal(t, 1, len(taskInfo.Logs)) - assert.Equal(t, taskInfo.Logs[0].Uri, "https://test-account.cloud.databricks.com/#job/job-id/run/run-id") - assert.Equal(t, taskInfo.Logs[0].Name, "Databricks Console") + plugin := Plugin{ + metricScope: fakeSetupContext.MetricsScope(), + cfg: GetConfig(), + client: &MockClient{MockDo: func(req *http.Request) (*http.Response, error) { + assert.Equal(t, req.Method, http.MethodPost) + return &http.Response{ + StatusCode: http.StatusOK, + Body: ioutils.NewBytesReadCloser([]byte(`{"id":"someID","data":"someData"}`)), + }, nil + }}, + } + + t.Run("create a Databricks job", func(t *testing.T) { + data, err := plugin.sendRequest(create, databricksJob, token, "") + assert.NotNil(t, data) + assert.Equal(t, "someID", data["id"]) + assert.Equal(t, "someData", data["data"]) + assert.Nil(t, err) }) -} -func TestBuildRequest(t *testing.T) { - token := "test-token" - runID := "019e70eb" - databricksEndpoint := "" - databricksURL := "https://" + testInstance + "/api/2.1/jobs/runs" - t.Run("build http request for submitting a databricks job", func(t *testing.T) { - req, err := buildRequest(post, nil, databricksEndpoint, testInstance, token, runID, false) - header := http.Header{} - header.Add("Authorization", "Bearer "+token) - header.Add("Content-Type", "application/json") + t.Run("failed to create a Databricks job", func(t *testing.T) { + plugin.client = &MockClient{MockDo: func(req *http.Request) (*http.Response, error) { + assert.Equal(t, req.Method, http.MethodPost) + return &http.Response{ + StatusCode: http.StatusBadRequest, + Body: ioutils.NewBytesReadCloser([]byte(`{"message":"failed"}`)), + }, nil + }} + data, err := plugin.sendRequest(create, databricksJob, token, "") + assert.Nil(t, data) + assert.Equal(t, err.Error(), "failed to create Databricks job with error [failed]") + }) - assert.NoError(t, err) - assert.Equal(t, header, req.Header) - assert.Equal(t, databricksURL+"/submit", req.URL.String()) - assert.Equal(t, post, req.Method) + t.Run("failed to send request to Databricks", func(t *testing.T) { + plugin.client = &MockClient{MockDo: func(req *http.Request) (*http.Response, error) { + assert.Equal(t, req.Method, http.MethodPost) + return nil, errors.New("failed to send request") + }} + data, err := plugin.sendRequest(create, databricksJob, token, "") + assert.Nil(t, data) + assert.Equal(t, err.Error(), "failed to send request to Databricks platform with err: [failed to send request]") }) - t.Run("Get a databricks spark job status", func(t *testing.T) { - req, err := buildRequest(get, nil, databricksEndpoint, testInstance, token, runID, false) - assert.NoError(t, err) - assert.Equal(t, databricksURL+"/get?run_id="+runID, req.URL.String()) - assert.Equal(t, get, req.Method) + t.Run("failed to send request to Databricks", func(t *testing.T) { + plugin.client = &MockClient{MockDo: func(req *http.Request) (*http.Response, error) { + assert.Equal(t, req.Method, http.MethodPost) + return &http.Response{ + StatusCode: http.StatusOK, + Body: ioutils.NewBytesReadCloser([]byte(`123`)), + }, nil + }} + data, err := plugin.sendRequest(create, databricksJob, token, "") + assert.Nil(t, data) + assert.Equal(t, err.Error(), "failed to parse response with err: [json: cannot unmarshal number into Go value of type map[string]interface {}]") }) - t.Run("Cancel a spark job", func(t *testing.T) { - req, err := buildRequest(post, nil, databricksEndpoint, testInstance, token, runID, true) - assert.NoError(t, err) - assert.Equal(t, databricksURL+"/cancel", req.URL.String()) - assert.Equal(t, post, req.Method) + t.Run("get a Databricks job", func(t *testing.T) { + plugin.client = &MockClient{MockDo: func(req *http.Request) (*http.Response, error) { + assert.Equal(t, req.Method, http.MethodGet) + return &http.Response{ + StatusCode: http.StatusOK, + Body: ioutils.NewBytesReadCloser([]byte(`{"message":"ok"}`)), + }, nil + }} + data, err := plugin.sendRequest(get, databricksJob, token, "") + assert.NotNil(t, data) + assert.Nil(t, err) + }) + + t.Run("cancel a Databricks job", func(t *testing.T) { + plugin.client = &MockClient{MockDo: func(req *http.Request) (*http.Response, error) { + assert.Equal(t, req.Method, http.MethodPost) + return &http.Response{ + StatusCode: http.StatusOK, + Body: ioutils.NewBytesReadCloser([]byte(`{"message":"ok"}`)), + }, nil + }} + data, err := plugin.sendRequest(cancel, databricksJob, token, "") + assert.NotNil(t, data) + assert.Nil(t, err) }) } -func TestBuildResponse(t *testing.T) { - t.Run("build http response", func(t *testing.T) { - bodyStr := `{"job_id":"019c06a4-0000", "message":"Statement executed successfully."}` - responseBody := ioutil.NopCloser(strings.NewReader(bodyStr)) - response := &http.Response{Body: responseBody} - actualData, err := buildResponse(response) - assert.NoError(t, err) +func TestCreateTaskInfo(t *testing.T) { + t.Run("create task info", func(t *testing.T) { + taskInfo := createTaskInfo("run-id", "job-id", testInstance) - bodyByte, err := ioutil.ReadAll(strings.NewReader(bodyStr)) - assert.NoError(t, err) - var expectedData map[string]interface{} - err = json.Unmarshal(bodyByte, &expectedData) - assert.NoError(t, err) - assert.Equal(t, expectedData, actualData) + assert.Equal(t, 1, len(taskInfo.Logs)) + assert.Equal(t, taskInfo.Logs[0].Uri, "https://test-account.cloud.databricks.com/#job/job-id/run/run-id") + assert.Equal(t, taskInfo.Logs[0].Name, "Databricks Console") }) } From 610830ccf9f5abfaa12e38934709f8dfb5988480 Mon Sep 17 00:00:00 2001 From: Flyte Bot Date: Tue, 5 Mar 2024 15:18:56 -0800 Subject: [PATCH 25/76] Update Flyte components (#5008) Signed-off-by: Flyte-Bot Signed-off-by: Yee Hing Tong --- CHANGELOG/CHANGELOG-v1.11.0-b1.md | 3 ++ charts/flyte-binary/README.md | 2 +- charts/flyte-binary/values.yaml | 2 +- charts/flyte-core/README.md | 14 ++++---- charts/flyte-core/values.yaml | 12 +++---- charts/flyte/README.md | 18 +++++----- charts/flyte/values.yaml | 12 +++---- .../flyte_aws_scheduler_helm_generated.yaml | 32 ++++++++--------- deployment/eks/flyte_generated.yaml | 24 ++++++------- .../flyte_helm_controlplane_generated.yaml | 22 ++++++------ .../eks/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/eks/flyte_helm_generated.yaml | 36 +++++++++---------- .../flyte_helm_controlplane_generated.yaml | 22 ++++++------ .../gcp/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/gcp/flyte_helm_generated.yaml | 36 +++++++++---------- .../flyte_sandbox_binary_helm_generated.yaml | 4 +-- deployment/sandbox/flyte_helm_generated.yaml | 36 +++++++++---------- .../manifests/complete-agent.yaml | 8 ++--- .../sandbox-bundled/manifests/complete.yaml | 8 ++--- docker/sandbox-bundled/manifests/dev.yaml | 4 +-- docs/conf.py | 2 +- kustomize/overlays/eks/kustomization.yaml | 10 +++--- 22 files changed, 169 insertions(+), 166 deletions(-) create mode 100644 CHANGELOG/CHANGELOG-v1.11.0-b1.md 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/charts/flyte-binary/README.md b/charts/flyte-binary/README.md index 99aa1c40b1..78c301f2b3 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.11.0-b0"` | | +| configuration.co-pilot.image.tag | string | `"v1.11.0-b1"` | | | 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/values.yaml b/charts/flyte-binary/values.yaml index 0da15a1855..61bb73e72d 100644 --- a/charts/flyte-binary/values.yaml +++ b/charts/flyte-binary/values.yaml @@ -159,7 +159,7 @@ configuration: # repository CoPilot sidecar image repository repository: cr.flyte.org/flyteorg/flytecopilot # FLYTECOPILOT_IMAGE # tag CoPilot sidecar image tag - tag: v1.11.0-b0 # FLYTECOPILOT_TAG + tag: v1.11.0-b1 # FLYTECOPILOT_TAG # agentService Flyte Agent configuration agentService: defaultAgent: diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index 6349b01a4b..5f0e3dcbb5 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -95,8 +95,8 @@ 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.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.copilot | object | `{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration | +| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1","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). | @@ -130,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.11.0-b0"` | Docker image tag | +| datacatalog.image.tag | string | `"v1.11.0-b1"` | 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 | @@ -165,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.11.0-b0"` | | +| flyteadmin.image.tag | string | `"v1.11.0-b1"` | | | flyteadmin.initialProjects | list | `["flytesnacks","flytetester","flyteexamples"]` | Initial projects to create | | flyteadmin.nodeSelector | object | `{}` | nodeSelector for Flyteadmin deployment | | flyteadmin.podAnnotations | object | `{}` | Annotations for Flyteadmin pods | @@ -202,7 +202,7 @@ helm install gateway bitnami/contour -n flyte | 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.3"` | | +| flyteconsole.image.tag | string | `"v1.11.0"` | | | flyteconsole.imagePullSecrets | list | `[]` | ImagePullSecrets to assign to the Flyteconsole deployment | | flyteconsole.nodeSelector | object | `{}` | nodeSelector for Flyteconsole deployment | | flyteconsole.podAnnotations | object | `{}` | Annotations for Flyteconsole pods | @@ -226,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.11.0-b0"` | | +| flytepropeller.image.tag | string | `"v1.11.0-b1"` | | | flytepropeller.manager | bool | `false` | | | flytepropeller.nodeSelector | object | `{}` | nodeSelector for Flytepropeller deployment | | flytepropeller.podAnnotations | object | `{}` | Annotations for Flytepropeller pods | @@ -256,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.11.0-b0"` | Docker image tag | +| flytescheduler.image.tag | string | `"v1.11.0-b1"` | 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 | diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml index de307f6649..32fb5c5827 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -16,7 +16,7 @@ flyteadmin: image: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE - tag: v1.11.0-b0 # FLYTEADMIN_TAG + tag: v1.11.0-b1 # FLYTEADMIN_TAG pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables # @@ -142,7 +142,7 @@ flytescheduler: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.11.0-b0 # FLYTESCHEDULER_TAG + tag: v1.11.0-b1 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -208,7 +208,7 @@ datacatalog: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.11.0-b0 # DATACATALOG_TAG + tag: v1.11.0-b1 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -296,7 +296,7 @@ flytepropeller: image: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE - tag: v1.11.0-b0 # FLYTEPROPELLER_TAG + tag: v1.11.0-b1 # FLYTEPROPELLER_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment resources: @@ -379,7 +379,7 @@ flyteconsole: image: # -- Docker image for Flyteconsole deployment repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE - tag: v1.10.3 # FLYTECONSOLE_TAG + tag: v1.11.0 # FLYTECONSOLE_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flyteconsole deployment resources: @@ -731,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.11.0-b0 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/charts/flyte/README.md b/charts/flyte/README.md index 0bce53a417..f2ac67bdc2 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -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.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-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 | 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-b1","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.11.0-b1"},"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-b1"},"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.11.0"},"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-b1"},"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-b1"},"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.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-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-b1","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.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.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.copilot | object | `{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1","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-b1","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 | @@ -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.11.0-b0"` | Docker image tag | +| flyte.datacatalog.image.tag | string | `"v1.11.0-b1"` | 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.11.0-b0"` | Docker image tag | +| flyte.flyteadmin.image.tag | string | `"v1.11.0-b1"` | 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.3"` | Docker image tag | +| flyte.flyteconsole.image.tag | string | `"v1.11.0"` | 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.11.0-b0"` | Docker image tag | +| flyte.flytepropeller.image.tag | string | `"v1.11.0-b1"` | 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.11.0-b0"` | Docker image tag | +| flyte.flytescheduler.image.tag | string | `"v1.11.0-b1"` | 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 aecfce362f..50a1fc5402 100755 --- a/charts/flyte/values.yaml +++ b/charts/flyte/values.yaml @@ -16,7 +16,7 @@ flyte: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE # -- Docker image tag - tag: v1.11.0-b0 # FLYTEADMIN_TAG + tag: v1.11.0-b1 # FLYTEADMIN_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables @@ -84,7 +84,7 @@ flyte: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.11.0-b0 # FLYTESCHEDULER_TAG + tag: v1.11.0-b1 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -129,7 +129,7 @@ flyte: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.11.0-b0 # DATACATALOG_TAG + tag: v1.11.0-b1 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -178,7 +178,7 @@ flyte: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE # -- Docker image tag - tag: v1.11.0-b0 # FLYTEPROPELLER_TAG + tag: v1.11.0-b1 # FLYTEPROPELLER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment @@ -223,7 +223,7 @@ flyte: # -- Docker image for Flyteconsole deployment repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE # -- Docker image tag - tag: v1.10.3 # FLYTECONSOLE_TAG + tag: v1.11.0 # FLYTECONSOLE_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flyteconsole deployment @@ -471,7 +471,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.11.0-b0 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml index 5b559bd9de..83c0d249c5 100644 --- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml +++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml @@ -429,7 +429,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -868,7 +868,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -889,7 +889,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -907,7 +907,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -924,7 +924,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -951,7 +951,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1056,7 +1056,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1112,7 +1112,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -1186,7 +1186,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1204,7 +1204,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1267,7 +1267,7 @@ spec: template: metadata: annotations: - configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" + configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1293,7 +1293,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1347,9 +1347,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b0 + app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" + configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" spec: securityContext: fsGroup: 65534 @@ -1361,7 +1361,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1388,7 +1388,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_generated.yaml b/deployment/eks/flyte_generated.yaml index b4b8f63584..b4ee31f106 100644 --- a/deployment/eks/flyte_generated.yaml +++ b/deployment/eks/flyte_generated.yaml @@ -8640,7 +8640,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0 + image: cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1 imagePullPolicy: IfNotPresent name: datacatalog ports: @@ -8663,7 +8663,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0 + image: cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1 imagePullPolicy: IfNotPresent name: run-migrations volumeMounts: @@ -8724,7 +8724,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1 imagePullPolicy: IfNotPresent name: webhook volumeMounts: @@ -8751,7 +8751,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1 imagePullPolicy: IfNotPresent name: generate-secrets volumeMounts: @@ -8799,7 +8799,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1 imagePullPolicy: IfNotPresent name: flyteadmin ports: @@ -8846,7 +8846,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1 imagePullPolicy: IfNotPresent name: run-migrations volumeMounts: @@ -8863,7 +8863,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1 imagePullPolicy: IfNotPresent name: seed-projects volumeMounts: @@ -8877,7 +8877,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1 imagePullPolicy: IfNotPresent name: sync-cluster-resources volumeMounts: @@ -8897,7 +8897,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1 imagePullPolicy: IfNotPresent name: generate-secrets volumeMounts: @@ -8951,7 +8951,7 @@ spec: - envFrom: - configMapRef: name: flyte-console-config - image: cr.flyte.org/flyteorg/flyteconsole:v1.10.3 + image: cr.flyte.org/flyteorg/flyteconsole:v1.11.0 name: flyteconsole ports: - containerPort: 8080 @@ -9002,7 +9002,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1 imagePullPolicy: IfNotPresent name: flytepropeller ports: @@ -9270,7 +9270,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1 imagePullPolicy: IfNotPresent name: sync-cluster-resources volumeMounts: diff --git a/deployment/eks/flyte_helm_controlplane_generated.yaml b/deployment/eks/flyte_helm_controlplane_generated.yaml index 1ae984cf69..b60694f947 100644 --- a/deployment/eks/flyte_helm_controlplane_generated.yaml +++ b/deployment/eks/flyte_helm_controlplane_generated.yaml @@ -574,7 +574,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -595,7 +595,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -613,7 +613,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -630,7 +630,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -657,7 +657,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -762,7 +762,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -818,7 +818,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -892,7 +892,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -910,7 +910,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -993,7 +993,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1013,7 +1013,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml index 8d82b6f2a0..90d327cb9e 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.11.0-b0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -427,7 +427,7 @@ spec: template: metadata: annotations: - configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" + configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -453,7 +453,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -507,9 +507,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b0 + app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" + configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" spec: securityContext: fsGroup: 65534 @@ -521,7 +521,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -548,7 +548,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml index 25c1701051..8f34f4f236 100644 --- a/deployment/eks/flyte_helm_generated.yaml +++ b/deployment/eks/flyte_helm_generated.yaml @@ -460,7 +460,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -899,7 +899,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -920,7 +920,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -938,7 +938,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -955,7 +955,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -982,7 +982,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1087,7 +1087,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1143,7 +1143,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -1217,7 +1217,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1235,7 +1235,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1318,7 +1318,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1338,7 +1338,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1397,7 +1397,7 @@ spec: template: metadata: annotations: - configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" + configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1423,7 +1423,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1477,9 +1477,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b0 + app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "30e5fce341e4344cb6253ef4321f37c1e0895b9b55a927f94dfbc303d65c15b" + configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" spec: securityContext: fsGroup: 65534 @@ -1491,7 +1491,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1518,7 +1518,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_controlplane_generated.yaml b/deployment/gcp/flyte_helm_controlplane_generated.yaml index 0f1ebf1381..7e0b58b832 100644 --- a/deployment/gcp/flyte_helm_controlplane_generated.yaml +++ b/deployment/gcp/flyte_helm_controlplane_generated.yaml @@ -589,7 +589,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -610,7 +610,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -628,7 +628,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -645,7 +645,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -672,7 +672,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -777,7 +777,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -833,7 +833,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -907,7 +907,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -925,7 +925,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1008,7 +1008,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1028,7 +1028,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml index a63234aec2..d19a4d48c4 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.11.0-b0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -435,7 +435,7 @@ spec: template: metadata: annotations: - configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" + configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -460,7 +460,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -514,9 +514,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b0 + app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" + configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" spec: securityContext: fsGroup: 65534 @@ -528,7 +528,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -555,7 +555,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml index 315c83f114..5b8757459c 100644 --- a/deployment/gcp/flyte_helm_generated.yaml +++ b/deployment/gcp/flyte_helm_generated.yaml @@ -473,7 +473,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -922,7 +922,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -943,7 +943,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -961,7 +961,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -978,7 +978,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -1005,7 +1005,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1110,7 +1110,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1166,7 +1166,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -1240,7 +1240,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1258,7 +1258,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1341,7 +1341,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1361,7 +1361,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1420,7 +1420,7 @@ spec: template: metadata: annotations: - configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" + configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1445,7 +1445,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1499,9 +1499,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b0 + app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "bfe89fce66aa8eee9543c676ab07345b9c05c4ec7859daefd51da6bf414f0f4" + configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" spec: securityContext: fsGroup: 65534 @@ -1513,7 +1513,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1540,7 +1540,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml b/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml index 2d93910a5c..1aeec5ee6d 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.11.0-b0" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1" k8s-array: logs: config: @@ -358,7 +358,7 @@ spec: app.kubernetes.io/instance: flyte app.kubernetes.io/component: flyte-binary annotations: - checksum/configuration: 882c31ec18bdac7aa4f1a9057f9e549b1307b60b5d76839dfb6bc526958bee57 + checksum/configuration: 9c864736e7d08baebc6de026def33e542b35097dd158017c89f85d7672401b92 checksum/configuration-secret: d5d93f4e67780b21593dc3799f0f6682aab0765e708e4020939975d14d44f929 checksum/cluster-resource-templates: 7dfa59f3d447e9c099b8f8ffad3af466fecbc9cf9f8c97295d9634254a55d4ae spec: diff --git a/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index d8ddf237a6..c398c5fbf8 100644 --- a/deployment/sandbox/flyte_helm_generated.yaml +++ b/deployment/sandbox/flyte_helm_generated.yaml @@ -585,7 +585,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -6705,7 +6705,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -6725,7 +6725,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -6742,7 +6742,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -6758,7 +6758,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -6785,7 +6785,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -6880,7 +6880,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -6933,7 +6933,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -7005,7 +7005,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -7022,7 +7022,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -7095,7 +7095,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -7114,7 +7114,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -7170,7 +7170,7 @@ spec: template: metadata: annotations: - configChecksum: "8d992b3c2174350d363ddbf3b1ac0d7f8017a546ec794a9551a4f2b1f4e6ea7" + configChecksum: "fa64b9672600e5eeed8ca407828a7490b17dadfe16c273e2aacfb52d9b5b085" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -7195,7 +7195,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -7242,9 +7242,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b0 + app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "8d992b3c2174350d363ddbf3b1ac0d7f8017a546ec794a9551a4f2b1f4e6ea7" + configChecksum: "fa64b9672600e5eeed8ca407828a7490b17dadfe16c273e2aacfb52d9b5b085" spec: securityContext: fsGroup: 65534 @@ -7256,7 +7256,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -7283,7 +7283,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 6de7c86be9..bc96ffac8f 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -468,7 +468,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1" k8s-array: logs: config: @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: UDI2NklEa2dSNUhNeTFteA== + haSharedSecret: YXFGVndTaXBySjFxWEIxNA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1246,7 +1246,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: 9ab632fe7ac69bcf63d6965a44986a05e23798beda4a3175d1601e61057a9832 + checksum/configuration: 286b381aca83e796ac69572dba6d2071241be79d4f00f3c2af55415a95157efd checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: d57403ae8ea0fce27bceda25f6af446fe51652e99e95a07fddae387006ee29f1 + checksum/secret: f5132fa475eb2386265cbda64d4e6d56922b771a5f7f5e6e8e4536a712663e45 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index b56e367ac4..36aca312f3 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -457,7 +457,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1" k8s-array: logs: config: @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: T21pWVJOUEdxMXBTSVE1RQ== + haSharedSecret: QVo4T0pQZmZLcFZmNjIyNQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1194,7 +1194,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: 11cd65708fd872839c6e561e84c30e045567486f06757f4549c69cc22aea5697 + checksum/configuration: 1362bc266b00c161aac0a24f7db312b9d6b9e68d7d8d8859ec8e171b9dc3e2bd checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: b0e1d465fbab24856443e463cb7846c898d03f1e00ac443b08e5474d28418ba3 + checksum/secret: f5e2b9fbf28a7d7815a094f72366cac395bd0aacd7890faa07e80ec700770fc5 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 2a8383a1dd..80e06fc6a2 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: bGRYdlJtdmZ5Qm14ZEJnNg== + haSharedSecret: dktYanZDU0tsa0hTWlZmWA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: b3f9230da427e818d5a63cbbf15159f2b165c98e6f56e269983c0a8fff6b6099 + checksum/secret: 7956909ef2268e1aad9b4b132d938c8b1a5775321bacfaf61aea7b73cdbcc85e labels: app: docker-registry release: flyte-sandbox diff --git a/docs/conf.py b/docs/conf.py index b4666d94a4..6d20ecf4b9 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.11.0-b0" +release = "1.11.0-b1" # -- General configuration --------------------------------------------------- diff --git a/kustomize/overlays/eks/kustomization.yaml b/kustomize/overlays/eks/kustomization.yaml index d50b42c64f..b29d932a80 100644 --- a/kustomize/overlays/eks/kustomization.yaml +++ b/kustomize/overlays/eks/kustomization.yaml @@ -21,23 +21,23 @@ bases: images: # FlyteAdmin - name: flyteadmin # match images with this name - newTag: v1.11.0-b0 # FLYTEADMIN_TAG override the tag + newTag: v1.11.0-b1 # FLYTEADMIN_TAG override the tag newName: cr.flyte.org/flyteorg/flyteadmin # override the name # FlyteConsole - name: flyteconsole # match images with this name - newTag: v1.10.3 # FLYTECONSOLE_TAG the tag + newTag: v1.11.0 # FLYTECONSOLE_TAG the tag newName: cr.flyte.org/flyteorg/flyteconsole # override the namep # Flyte DataCatalog - name: datacatalog # match images with this name - newTag: v1.11.0-b0 # DATACATALOG_TAG override the tag + newTag: v1.11.0-b1 # DATACATALOG_TAG override the tag newName: cr.flyte.org/flyteorg/datacatalog # override the name # FlytePropeller - name: flytepropeller # match images with this name - newTag: v1.11.0-b0 # FLYTEPROPELLER_TAG override the tag + newTag: v1.11.0-b1 # FLYTEPROPELLER_TAG override the tag newName: cr.flyte.org/flyteorg/flytepropeller # override the name # Webhook - name: webhook # match images with this name - newTag: v1.11.0-b0 # FLYTEPROPELLER_TAG override the tag + newTag: v1.11.0-b1 # FLYTEPROPELLER_TAG override the tag newName: cr.flyte.org/flyteorg/flytepropeller # override the name # Override postgres image to use alpine based (rather smaller) docker image - name: postgres From ba5925868f9ece84c834a9d5a1e09f6287394bce Mon Sep 17 00:00:00 2001 From: Future-Outlier Date: Wed, 6 Mar 2024 07:51:56 +0800 Subject: [PATCH 26/76] [Docs] Chatgpt Agent Setup (#4992) Signed-off-by: Future-Outlier Co-authored-by: Nikki Everett --- , | 0 docs/deployment/agents/bigquery.rst | 2 +- docs/deployment/agents/chatgpt.rst | 138 ++++++++++++++++++++++++++ docs/deployment/agents/databricks.rst | 2 +- docs/deployment/agents/index.md | 3 + docs/deployment/agents/mmcloud.rst | 2 +- docs/deployment/agents/snowflake.rst | 2 +- monodocs-environment.yaml | 1 + 8 files changed, 146 insertions(+), 4 deletions(-) create mode 100644 , create mode 100644 docs/deployment/agents/chatgpt.rst diff --git a/, b/, new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/deployment/agents/bigquery.rst b/docs/deployment/agents/bigquery.rst index d706ac7c37..d3e4ee490e 100644 --- a/docs/deployment/agents/bigquery.rst +++ b/docs/deployment/agents/bigquery.rst @@ -103,4 +103,4 @@ Upgrade the Flyte Helm release and ```` with the name of your namespace (e.g., ``flyte``). -For BigQuery agent on the Flyte cluster, see `BigQuery agent `_. +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..c3e5a490ea --- /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_access_token: + 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 3dbf7731c5..b21fab3c57 100644 --- a/docs/deployment/agents/databricks.rst +++ b/docs/deployment/agents/databricks.rst @@ -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 agent on the Flyte cluster, see `Databricks agent `_. +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 0e114c8d06..7c7f3db92d 100644 --- a/docs/deployment/agents/index.md +++ b/docs/deployment/agents/index.md @@ -17,6 +17,8 @@ If you are using a managed deployment of Flyte, you will need to contact your de * - {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 ` @@ -33,6 +35,7 @@ If you are using a managed deployment of Flyte, you will need to contact your de :hidden: airflow +chatgpt databricks bigquery mmcloud diff --git a/docs/deployment/agents/mmcloud.rst b/docs/deployment/agents/mmcloud.rst index ac08f4fcdf..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 agent on the Flyte cluster, see `MMCloud agent `_. +For MMCloud agent on the Flyte cluster, see `MMCloud agent `_. diff --git a/docs/deployment/agents/snowflake.rst b/docs/deployment/agents/snowflake.rst index f4d82c0eb2..fe1c8482ae 100644 --- a/docs/deployment/agents/snowflake.rst +++ b/docs/deployment/agents/snowflake.rst @@ -100,4 +100,4 @@ Upgrade the Flyte Helm release and ```` with the name of your namespace (e.g., ``flyte``). -For Snowflake agent on the Flyte cluster, see `Snowflake agent `_. +For Snowflake agent on the Flyte cluster, see `Snowflake agent `_. diff --git a/monodocs-environment.yaml b/monodocs-environment.yaml index 140552aa2d..78f85c19cf 100644 --- a/monodocs-environment.yaml +++ b/monodocs-environment.yaml @@ -56,6 +56,7 @@ dependencies: - mlflow==2.7.0 # mlflow - snowflake-connector-python # snowflake - vaex-core # vaex + - openai # chatgpt - pip: - readthedocs-sphinx-ext From bce9b6f0383808f9648792189c3b8f913131aaef Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Wed, 6 Mar 2024 10:59:49 -0600 Subject: [PATCH 27/76] Add Airflow migration guide (#4871) * move @pingsutw airflow migration doc from flytesnacks branch to flyte Signed-off-by: nikki everett * copy edits Signed-off-by: nikki everett * more copy edits Signed-off-by: nikki everett * move airflow migration guide to development lifecycle section Signed-off-by: nikki everett * copy changes from docs/migration-guides-ping Signed-off-by: nikki everett --------- Signed-off-by: nikki everett --- .../index.md | 1 + .../user_guide/development_lifecycle/index.md | 1 + .../migrating_from_airflow_to_flyte.md | 87 +++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 docs/user_guide/development_lifecycle/migrating_from_airflow_to_flyte.md diff --git a/docs/getting_started_with_workflow_development/index.md b/docs/getting_started_with_workflow_development/index.md index d7b39d7cee..e27705a465 100644 --- a/docs/getting_started_with_workflow_development/index.md +++ b/docs/getting_started_with_workflow_development/index.md @@ -1,4 +1,5 @@ (getting_started_workflow_development)= + # Getting started with workflow development Machine learning engineers, data engineers, and data analysts often represent the processes that consume, transform, and output data with directed acyclic graphs (DAGs). In this section, you will learn how to create a Flyte project to contain the workflow code that implements your DAG, as well as the configuration files needed to package the code to run on a local or remote Flyte cluster. diff --git a/docs/user_guide/development_lifecycle/index.md b/docs/user_guide/development_lifecycle/index.md index 8c21abc291..6da72983b9 100644 --- a/docs/user_guide/development_lifecycle/index.md +++ b/docs/user_guide/development_lifecycle/index.md @@ -20,4 +20,5 @@ running_workflows running_launch_plans inspecting_executions debugging_executions +migrating_from_airflow_to_flyte ``` diff --git a/docs/user_guide/development_lifecycle/migrating_from_airflow_to_flyte.md b/docs/user_guide/development_lifecycle/migrating_from_airflow_to_flyte.md new file mode 100644 index 0000000000..42f2f93ccd --- /dev/null +++ b/docs/user_guide/development_lifecycle/migrating_from_airflow_to_flyte.md @@ -0,0 +1,87 @@ +(migrating_from_airflow_to_flyte)= +# Migrating from Airflow to Flyte + +:::{important} +Many Airflow operators and sensors have been tested on Flyte, but some may not work as expected. +If you encounter any issues, please file an [issue](https://github.com/flyteorg/flyte/issues) or reach out to the Flyte community on [Slack](https://slack.flyte.org/). +::: + +Flyte can compile Airflow tasks into Flyte tasks without changing code, which allows you +to migrate your Airflow DAGs to Flyte with minimal effort. + +In addition to migration capabilities, Flyte users can seamlessly integrate Airflow tasks into their workflows, leveraging the ecosystem of Airflow operators and sensors. +By combining the robust Airflow ecosystem with Flyte's capabilities such as scalability, versioning, and reproducibility, users can run more complex data and machine learning workflows with ease. +For more information, see the [Airflow agent documentation](https://docs.flyte.org/en/latest/flytesnacks/examples/airflow_agent/index.html). + +# For current Flyte users + +Even if you're already using Flyte and have no intentions of migrating from Airflow, +you can still incorporate Airflow tasks into your Flyte workflows. For instance, Airflow offers support +for Google Cloud [Dataproc Operators](https://airflow.apache.org/docs/apache-airflow-providers-google/stable/operators/cloud/dataproc.html), facilitating the execution of Spark jobs on Google Cloud Dataproc clusters. Rather than developing a custom plugin in Flyte, you can seamlessly integrate Airflow's Dataproc Operators into your Flyte workflows to execute Spark jobs. + +## Prerequisites + +- Install `flytekitplugins-airflow` in your Python environment. +- Enable an {ref}`Airflow agent` in your Flyte cluster. + +## Steps + +### 1. Define your Airflow tasks in a Flyte workflow + +Flytekit compiles Airflow tasks into Flyte tasks, so you can use +any Airflow sensor or operator in a Flyte workflow: + + +```python +from flytekit import task, workflow +from airflow.sensors.filesystem import FileSensor + +@task +def say_hello() -> str: + return "Hello, World!" + +@workflow +def airflow_wf(): + flyte_task = say_hello() + airflow_task = FileSensor(task_id="sensor", filepath="/") + airflow_task >> flyte_task + +if __name__ == "__main__": + print(f"Running airflow_wf() {airflow_wf()}") +``` + +### 2. Test your workflow locally + +:::{note} +Before running your workflow locally, you must configure the [Airflow connection](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html) by setting the `AIRFLOW_CONN_{CONN_ID}` environment variable. +For example, +```bash +export AIRFLOW_CONN_MY_PROD_DATABASE='my-conn-type://login:password@host:port/schema?param1=val1¶m2=val2' +``` +::: + +Although Airflow doesn't support local execution, you can run your workflow that contains Airflow tasks locally, which is helpful for testing and debugging your tasks before moving to production. + +```bash +AIRFLOW_CONN_FS_DEFAULT="/" pyflyte run workflows.py airflow_wf +``` + +:::{warning} +Some Airflow operators may require certain permissions to execute. For instance, `DataprocCreateClusterOperator` requires the `dataproc.clusters.create` permission. +When running Airflow tasks locally, you may need to set the necessary permissions locally for the task to execute successfully. +::: + +### 3. Move your workflow to production + +:::{note} +In production, we recommend storing connections in a [secrets backend](https://airflow.apache.org/docs/apache-airflow/stable/security/secrets/secrets-backend/index.html). +Make sure the agent pod has the right permission (IAM role) to access the secret from the external secrets backend. +::: + +After you have tested your workflow locally, you can execute it on a Flyte cluster using the `--remote` flag. +In this case, Flyte creates a pod in the Kubernetes cluster to run the `say_hello` task, and then runs +your Airflow `BashOperator` task on the Airflow agent. + +```bash +pyflyte run --remote workflows.py airflow_wf +``` From fd42f65660069d9c164cda2de579d3a89cac5b0f Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Wed, 6 Mar 2024 11:05:24 -0600 Subject: [PATCH 28/76] Add Docker image build and FlyteAgent update steps to "Developing agents" doc (#5009) * add docker image build and flyteagent update steps Signed-off-by: nikki everett * fix link Signed-off-by: nikki everett * remove old agents doc and redirect to new agents guide Signed-off-by: nikki everett * update timeout Signed-off-by: Kevin Su --------- Signed-off-by: nikki everett Signed-off-by: Kevin Su Co-authored-by: Kevin Su --- docs/flyte_agents/developing_agents.md | 82 +++++- .../development_lifecycle/agents.md | 234 ------------------ .../user_guide/development_lifecycle/index.md | 1 - docs/user_guide/extending/index.md | 2 +- 4 files changed, 81 insertions(+), 238 deletions(-) delete mode 100644 docs/user_guide/development_lifecycle/agents.md diff --git a/docs/flyte_agents/developing_agents.md b/docs/flyte_agents/developing_agents.md index a4a4adc7c7..3ea6db1d03 100644 --- a/docs/flyte_agents/developing_agents.md +++ b/docs/flyte_agents/developing_agents.md @@ -29,7 +29,11 @@ While agents can be written in any programming language, we currently only suppo ``` -## Async agent interface specification +## Steps + +### 1. Implement required methods + +#### Async agent interface specification To create a new async agent, extend the [`AsyncAgentBase`](https://github.com/flyteorg/flytekit/blob/master/flytekit/extend/backend/base_agent.py#L127) class and implement `create`, `get`, and `delete` methods. These methods must be idempotent. @@ -76,7 +80,7 @@ AgentRegistry.register(BigQueryAgent()) For an example implementation, see the [BigQuery agent](https://github.com/flyteorg/flytekit/blob/master/plugins/flytekit-bigquery/flytekitplugins/bigquery/agent.py#L43). -## Sync agent interface specification +#### Sync agent interface specification To create a new sync agent, extend the [`SyncAgentBase`](https://github.com/flyteorg/flytekit/blob/master/flytekit/extend/backend/base_agent.py#L107) class and implement a `do` method. This method must be idempotent. @@ -98,3 +102,77 @@ class OpenAIAgent(SyncAgentBase): AgentRegistry.register(OpenAIAgent()) ``` + +### 2. Test the agent locally + +See {doc}`"Testing agents locally" ` to test your agent locally. + +### 3. Build a new Docker image + +The following is a sample Dockerfile for building an image for a Flyte agent: + +```Dockerfile +FROM python:3.9-slim-buster + +MAINTAINER Flyte Team +LABEL org.opencontainers.image.source=https://github.com/flyteorg/flytekit + +WORKDIR /root +ENV PYTHONPATH /root + +# flytekit will autoload the agent if package is installed. +RUN pip install flytekitplugins-bigquery +CMD pyflyte serve agent --port 8000 +``` + +:::{note} +For flytekit versions `<=v1.10.2`, use `pyflyte serve`. +For flytekit versions `>v1.10.2`, use `pyflyte serve agent`. +::: + +### 4. Update FlyteAgent + +1. Update the FlyteAgent deployment's [image](https://github.com/flyteorg/flyte/blob/master/charts/flyteagent/templates/agent/deployment.yaml#L35) +2. Update the FlytePropeller configmap. + +```YAML + tasks: + task-plugins: + enabled-plugins: + - agent-service + default-for-task-types: + - bigquery_query_job_task: agent-service + - custom_task: agent-service + + plugins: + agent-service: + supportedTaskTypes: + - bigquery_query_job_task + - default_task + - custom_task + # By default, all requests will be sent to the default agent. + defaultAgent: + endpoint: "dns:///flyteagent.flyte.svc.cluster.local:8000" + insecure: true + timeouts: + GetTask: 5s + defaultTimeout: 10s + agents: + custom_agent: + endpoint: "dns:///custom-flyteagent.flyte.svc.cluster.local:8000" + insecure: false + defaultServiceConfig: '{"loadBalancingConfig": [{"round_robin":{}}]}' + timeouts: + GetTask: 5s + defaultTimeout: 10s + agentForTaskTypes: + # It will override the default agent for custom_task, which means propeller will send the request to this agent. + - custom_task: custom_agent + ``` + +3. Restart the FlytePropeller + +``` +kubectl rollout restart deployment flytepropeller -n flyte +``` + diff --git a/docs/user_guide/development_lifecycle/agents.md b/docs/user_guide/development_lifecycle/agents.md deleted file mode 100644 index 2ec1309272..0000000000 --- a/docs/user_guide/development_lifecycle/agents.md +++ /dev/null @@ -1,234 +0,0 @@ ---- -jupytext: - cell_metadata_filter: all - formats: md:myst - main_language: python - notebook_metadata_filter: all - text_representation: - extension: .md - format_name: myst - format_version: 0.13 - jupytext_version: 1.16.1 -kernelspec: - display_name: Python 3 - language: python - name: python3 ---- - -(extend-agent-service)= - -# Agents - -```{eval-rst} -.. tags:: Extensibility, Contribute, Intermediate -``` - -:::{note} -This is an experimental feature, which is subject to change the API in the future. -::: - -## What is an agent? - -In Flyte, an agent is a long-running stateless service that can be used to execute tasks. It reduces the overhead of creating a pod for each task. -In addition, it's easy to scale up and down the agent service based on the workload. Agent services are designed to be language-agnostic. -For now, we only support Python agent, but we may support other languages in the future. - -Agent is designed to run a specific type of task. For example, you can create a BigQuery agent to run BigQuery task. Therefore, if you create a new type of task, you can -either run the task in the pod, or you can create a new agent to run it. You can determine how the task will be executed in the FlytePropeller configMap. - -Key goals of the agent service include: - -- Support for communication with external services: The focus is on enabling agents that seamlessly interact with external services. -- Independent testing and private deployment: Agents can be tested independently and deployed privately, providing flexibility and control over development. -- Flyte Agent usage in local development: Users, especially in `flytekit` and `unionml`, can leverage backend agents for local development, streamlining the development process. -- Language-agnostic: Agents can be authored in any programming language, allowing users to work with their preferred language and tools. -- Scalability: Agents are designed to be scalable, ensuring they can handle large-scale workloads effectively. -- Simple API: Agents offer a straightforward API, making integration and usage straightforward for developers. - -## Why do we need an agent service? - -Without agents, people need to implement a backend plugin in the propeller. The backend plugin is responsible for -creating a CRD and submitting a http request to the external service. However, it increases the complexity of flytepropeller, and -it's hard to maintain the backend plugin. For example, if we want to add a new plugin, we need to update and compile -flytepropeller, and it's also hard to test. In addition, the backend plugin is running in flytepropeller itself, so it -increases the load of the flytepropeller engine. - -Furthermore, implementing backend plugins can be challenging, particularly for data scientists and ML engineers who may lack proficiency in -Golang. Additionally, managing performance requirements, maintenance, and development can be burdensome. -To address these issues, we introduced the "Agent Service" in Flyte. This system enables rapid plugin -development while decoupling them from the core flytepropeller engine. - -## Overview - -The Flyte agent service is a Python-based agent registry powered by a gRPC server. It allows users and flytepropeller -to send gRPC requests to the registry for executing jobs such as BigQuery and Databricks. Each Agent service is a Kubernetes -deployment. You can create two different Agent services hosting different Agents. For example, you can create one production -agent service and one development agent service. - -:::{figure} https://i.ibb.co/vXhBDjP/Screen-Shot-2023-05-29-at-2-54-14-PM.png -:alt: Agent Service -:class: with-shadow -::: - -## How to register a new agent - -### Flytekit interface specification - -To register a new agent, you can extend the `AgentBase` class in the flytekit backend module. Implementing the following three methods is necessary, and it's important to ensure that all calls are idempotent: - -- `create`: This method is used to initiate a new task. Users have the flexibility to use gRPC, REST, or an SDK to create a task. -- `get`: This method allows retrieving the job Resource (jobID or output literal) associated with the task, such as a BigQuery Job ID or Databricks task ID. -- `delete`: Invoking this method will send a request to delete the corresponding job. - -```python -from flytekit.extend.backend.base_agent import AgentBase, AgentRegistry -from dataclasses import dataclass -import requests - -@dataclass -class Metadata: - # you can add any metadata you want, propeller will pass the metadata to the agent to get the job status. - # For example, you can add the job_id to the metadata, and the agent will use the job_id to get the job status. - # You could also add the s3 file path, and the agent can check if the file exists. - job_id: str - -class CustomAgent(AgentBase): - def __init__(self, task_type: str): - # Each agent should have a unique task type. Agent service will use the task type to find the corresponding agent. - self._task_type = task_type - - def create( - self, - context: grpc.ServicerContext, - output_prefix: str, - task_template: TaskTemplate, - inputs: typing.Optional[LiteralMap] = None, - ) -> TaskCreateResponse: - # 1. Submit the task to the external service (BigQuery, DataBricks, etc.) - # 2. Create a task metadata such as jobID. - # 3. Return the task metadata, and keep in mind that the metadata should be serialized to bytes. - res = requests.post(url, json=data) - return CreateTaskResponse(resource_meta=json.dumps(asdict(Metadata(job_id=str(res.job_id)))).encode("utf-8")) - - def get(self, context: grpc.ServicerContext, resource_meta: bytes) -> TaskGetResponse: - # 1. Deserialize the metadata. - # 2. Use the metadata to get the job status. - # 3. Return the job status. - metadata = Metadata(**json.loads(resource_meta.decode("utf-8"))) - res = requests.get(url, json={"job_id": metadata.job_id}) - return GetTaskResponse(resource=Resource(state=res.state) - - def delete(self, context: grpc.ServicerContext, resource_meta: bytes) -> TaskDeleteResponse: - # 1. Deserialize the metadata. - # 2. Use the metadata to delete the job. - # 3. If failed to delete the job, add the error message to the grpc context. - # context.set_code(grpc.StatusCode.INTERNAL) - # context.set_details(f"failed to create task with error {e}") - try: - metadata = Metadata(**json.loads(resource_meta.decode("utf-8"))) - requests.delete(url, json={"job_id": metadata.job_id}) - except Exception as e: - logger.error(f"failed to delete task with error {e}") - context.set_code(grpc.StatusCode.INTERNAL) - context.set_details(f"failed to delete task with error {e}") - return DeleteTaskResponse() - -# To register the custom agent -AgentRegistry.register(CustomAgent()) -``` - -Here is an example of [BigQuery Agent](https://github.com/flyteorg/flytekit/blob/9977aac26242ebbede8e00d476c2fbc59ac5487a/plugins/flytekit-bigquery/flytekitplugins/bigquery/agent.py#L35) implementation. - -### How to test the agent - -Agent can be tested locally without running backend server. It makes the development of the agent easier. - -The task inherited from AsyncAgentExecutorMixin can be executed locally, allowing flytekit to mimic the propeller's behavior to call the agent. -In some cases, you should store credentials in your local environment when testing locally. -For example, you need to set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable when testing the BigQuery task. -After setting up the CREDENTIALS, you can run the task locally. Flytekit will automatically call the agent to create, get, or delete the task. - -```python -bigquery_doge_coin = BigQueryTask( - name=f"bigquery.doge_coin", - inputs=kwtypes(version=int), - query_template="SELECT * FROM `bigquery-public-data.crypto_dogecoin.transactions` WHERE version = @version LIMIT 10;", - output_structured_dataset_type=StructuredDataset, - task_config=BigQueryConfig(ProjectID="flyte-test-340607") -) -``` - -Task above task as an example, you can run the task locally and test agent with the following command: - -```bash -pyflyte run wf.py bigquery_doge_coin --version 10 -``` - -### Build a new image - -The following is a sample Dockerfile for building an image for a flyte agent. - -```Dockerfile -FROM python:3.9-slim-buster - -MAINTAINER Flyte Team -LABEL org.opencontainers.image.source=https://github.com/flyteorg/flytekit - -WORKDIR /root -ENV PYTHONPATH /root - -# flytekit will autoload the agent if package is installed. -RUN pip install flytekitplugins-bigquery -CMD pyflyte serve agent --port 8000 -``` - -:::{note} -For flytekit versions `<=v1.10.2`, use `pyflyte serve`. -For flytekit versions `>v1.10.2`, use `pyflyte serve agent`. -::: - -### Update FlyteAgent - -1. Update the FlyteAgent deployment's [image](https://github.com/flyteorg/flyte/blob/c049865cba017ad826405c7145cd3eccbc553232/charts/flyteagent/templates/agent/deployment.yaml#L26) -2. Update the FlytePropeller configmap. - -```YAML -tasks: - task-plugins: - enabled-plugins: - - agent-service - default-for-task-types: - - bigquery_query_job_task: agent-service - - custom_task: agent-service - -plugins: - agent-service: - supportedTaskTypes: - - bigquery_query_job_task - - default_task - - custom_task - # By default, all the request will be sent to the default agent. - defaultAgent: - endpoint: "dns:///flyteagent.flyte.svc.cluster.local:8000" - insecure: true - timeouts: - GetTask: 200ms - defaultTimeout: 50ms - agents: - custom_agent: - endpoint: "dns:///custom-flyteagent.flyte.svc.cluster.local:8000" - insecure: false - defaultServiceConfig: '{"loadBalancingConfig": [{"round_robin":{}}]}' - timeouts: - GetTask: 100ms - defaultTimeout: 20ms - agentForTaskTypes: - # It will override the default agent for custom_task, which means propeller will send the request to this agent. - - custom_task: custom_agent -``` - -3. Restart the FlytePropeller - -``` -kubectl rollout restart deployment flytepropeller -n flyte -``` diff --git a/docs/user_guide/development_lifecycle/index.md b/docs/user_guide/development_lifecycle/index.md index 6da72983b9..2617674e24 100644 --- a/docs/user_guide/development_lifecycle/index.md +++ b/docs/user_guide/development_lifecycle/index.md @@ -8,7 +8,6 @@ You will gain an understanding of concepts like caching, the Flyte remote API, A :name: development_lifecycle_toc :hidden: -agents private_images caching cache_serializing diff --git a/docs/user_guide/extending/index.md b/docs/user_guide/extending/index.md index 19a553ddfc..999214bf50 100644 --- a/docs/user_guide/extending/index.md +++ b/docs/user_guide/extending/index.md @@ -157,7 +157,7 @@ of the plugin. _New in Flyte 1.7.0_ -{ref}`Flyte Agent Service ` allows you to write backend +The {ref}`Flyte Agent service ` allows you to write backend plugins in Python. ### Summary From f448a0358d8706a09b65b96543134f629327d755 Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Thu, 7 Mar 2024 13:44:50 -0600 Subject: [PATCH 29/76] Update docs links in /flyteidl (#4989) Signed-off-by: nikki everett Signed-off-by: Kevin Su Co-authored-by: Kevin Su --- flyteidl/README.md | 2 +- flyteidl/clients/go/assets/admin.swagger.json | 2 +- flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts | 2 -- flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go | 2 -- .../gen/pb-go/gateway/flyteidl/service/admin.swagger.json | 2 +- .../gen/pb-go/gateway/flyteidl/service/agent.swagger.json | 2 +- .../flyteidl/service/external_plugin_service.swagger.json | 2 +- flyteidl/gen/pb_rust/flyteidl.core.rs | 2 -- flyteidl/index.rst | 8 ++++---- flyteidl/protos/docs/core/core.rst | 2 +- flyteidl/protos/flyteidl/core/tasks.proto | 2 -- 11 files changed, 10 insertions(+), 18 deletions(-) diff --git a/flyteidl/README.md b/flyteidl/README.md index a1be04d742..67685f45b7 100644 --- a/flyteidl/README.md +++ b/flyteidl/README.md @@ -7,7 +7,7 @@ This is one of the core repositories of Flyte. It contains the Specification of * [flyte.org](https://flyte.org) * [Flyte Docs](http://docs.flyte.org) -* [Flyteidl API reference documentation](https://docs.flyte.org/projects/flyteidl/en/stable/index.html) +* [Flyteidl API reference documentation](https://docs.flyte.org/en/latest/reference_flyteidl.html) ## Contributing to Flyteidl diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 7b9045cbe3..64a6af5899 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -7908,7 +7908,7 @@ "properties": { "statement": { "type": "string", - "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nRefer to the templating documentation.\nhttps://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" + "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" }, "dialect": { "$ref": "#/definitions/SqlDialect" diff --git a/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts b/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts index afd4e5f98b..5cc011314c 100644 --- a/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/core/tasks_pb.ts @@ -1180,8 +1180,6 @@ export class Sql extends Message { /** * The actual query to run, the query can have templated parameters. * We use Flyte's Golang templating format for Query templating. - * Refer to the templating documentation. - * https://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py * For example, * insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet * select * diff --git a/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go b/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go index 92a40b8e01..122ddce559 100644 --- a/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/core/tasks.pb.go @@ -1514,8 +1514,6 @@ type Sql struct { // The actual query to run, the query can have templated parameters. // We use Flyte's Golang templating format for Query templating. - // Refer to the templating documentation. - // https://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py // For example, // insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet // select * diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index 7b9045cbe3..64a6af5899 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -7908,7 +7908,7 @@ "properties": { "statement": { "type": "string", - "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nRefer to the templating documentation.\nhttps://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" + "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" }, "dialect": { "$ref": "#/definitions/SqlDialect" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json index 2680d36bda..9a6175929f 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/agent.swagger.json @@ -1624,7 +1624,7 @@ "properties": { "statement": { "type": "string", - "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nRefer to the templating documentation.\nhttps://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" + "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" }, "dialect": { "$ref": "#/definitions/SqlDialect" diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json index cebc48b75b..f488a49c00 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/external_plugin_service.swagger.json @@ -928,7 +928,7 @@ "properties": { "statement": { "type": "string", - "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nRefer to the templating documentation.\nhttps://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" + "title": "The actual query to run, the query can have templated parameters.\nWe use Flyte's Golang templating format for Query templating.\nFor example,\ninsert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet\nselect *\nfrom my_table\nwhere ds = '{{ .Inputs.ds }}'" }, "dialect": { "$ref": "#/definitions/SqlDialect" diff --git a/flyteidl/gen/pb_rust/flyteidl.core.rs b/flyteidl/gen/pb_rust/flyteidl.core.rs index a36add78f2..280140c75d 100644 --- a/flyteidl/gen/pb_rust/flyteidl.core.rs +++ b/flyteidl/gen/pb_rust/flyteidl.core.rs @@ -1729,8 +1729,6 @@ pub struct K8sObjectMetadata { pub struct Sql { /// The actual query to run, the query can have templated parameters. /// We use Flyte's Golang templating format for Query templating. - /// Refer to the templating documentation. - /// /// For example, /// insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet /// select * diff --git a/flyteidl/index.rst b/flyteidl/index.rst index f06f0e0e50..bbe9037b82 100644 --- a/flyteidl/index.rst +++ b/flyteidl/index.rst @@ -17,12 +17,12 @@ This specification is used to generate client stubs for `Flytekit - |book-reader| User Guide - |chalkboard| Tutorials + |plane| Getting Started + |book-reader| User Guide + |chalkboard| Tutorials |project-diagram| Concepts |rocket| Deployment - |book| API Reference + |book| API Reference |hands-helping| Community .. NOTE: the caption text is important for the sphinx theme to correctly render the nav header diff --git a/flyteidl/protos/docs/core/core.rst b/flyteidl/protos/docs/core/core.rst index 43bf4c9c6e..dd3cf71341 100644 --- a/flyteidl/protos/docs/core/core.rst +++ b/flyteidl/protos/docs/core/core.rst @@ -2206,7 +2206,7 @@ Sql represents a generic sql workload with a statement and dialect. :header: "Field", "Type", "Label", "Description" :widths: auto - "statement", ":ref:`ref_string`", "", "The actual query to run, the query can have templated parameters. We use Flyte's Golang templating format for Query templating. Refer to the templating documentation. https://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py For example, insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet select * from my_table where ds = '{{ .Inputs.ds }}'" + "statement", ":ref:`ref_string`", "", "The actual query to run, the query can have templated parameters. We use Flyte's Golang templating format for Query templating. For example, insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet select * from my_table where ds = '{{ .Inputs.ds }}'" "dialect", ":ref:`ref_flyteidl.core.Sql.Dialect`", "", "" diff --git a/flyteidl/protos/flyteidl/core/tasks.proto b/flyteidl/protos/flyteidl/core/tasks.proto index ab96615be7..20a1fa0cbf 100644 --- a/flyteidl/protos/flyteidl/core/tasks.proto +++ b/flyteidl/protos/flyteidl/core/tasks.proto @@ -332,8 +332,6 @@ message K8sObjectMetadata { message Sql { // The actual query to run, the query can have templated parameters. // We use Flyte's Golang templating format for Query templating. - // Refer to the templating documentation. - // https://docs.flyte.org/projects/cookbook/en/latest/auto/integrations/external_services/hive/hive.html#sphx-glr-auto-integrations-external-services-hive-hive-py // For example, // insert overwrite directory '{{ .rawOutputDataPrefix }}' stored as parquet // select * From b710ca445f25651106ffc5ea18f1ccbf867bb55c Mon Sep 17 00:00:00 2001 From: David Espejo <82604841+davidmirror-ops@users.noreply.github.com> Date: Thu, 7 Mar 2024 16:16:11 -0500 Subject: [PATCH 30/76] Fix minio config on helpers.tpl (#5018) * Fix sandbox endpoint Signed-off-by: davidmirror-ops * Make Helm Signed-off-by: davidmirror-ops --------- Signed-off-by: davidmirror-ops Co-authored-by: davidmirror-ops --- charts/flyte-core/templates/_helpers.tpl | 2 +- deployment/sandbox/flyte_helm_generated.yaml | 16 ++++++++-------- .../manifests/complete-agent.yaml | 4 ++-- docker/sandbox-bundled/manifests/complete.yaml | 4 ++-- docker/sandbox-bundled/manifests/dev.yaml | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) 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/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index c398c5fbf8..1959cc5bd8 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 @@ -512,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 @@ -674,7 +674,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 @@ -6684,7 +6684,7 @@ spec: template: metadata: annotations: - configChecksum: "45f0232531c0d1494809cf83387a95b2fc802019ea095de7a24ccd4f8de86ec" + configChecksum: "8702cc3d688d44938e6974b267f70fb01ce7fec4780de86b8f2e65f9446c711" labels: app.kubernetes.io/name: flyteadmin app.kubernetes.io/instance: flyte @@ -6984,7 +6984,7 @@ spec: template: metadata: annotations: - configChecksum: "8feeaa7f7ec6506426db0d3e3cda6bc3ac0049a7eeba49d6cce62b3e1c7c424" + configChecksum: "ccdd0d27618b8053a8ae11046fd2b84b9a397144dd81c7113f398cddf001397" labels: app.kubernetes.io/name: datacatalog app.kubernetes.io/instance: flyte @@ -7075,7 +7075,7 @@ spec: template: metadata: annotations: - configChecksum: "45f0232531c0d1494809cf83387a95b2fc802019ea095de7a24ccd4f8de86ec" + configChecksum: "8702cc3d688d44938e6974b267f70fb01ce7fec4780de86b8f2e65f9446c711" labels: app.kubernetes.io/name: flytescheduler app.kubernetes.io/instance: flyte @@ -7170,7 +7170,7 @@ spec: template: metadata: annotations: - configChecksum: "fa64b9672600e5eeed8ca407828a7490b17dadfe16c273e2aacfb52d9b5b085" + configChecksum: "a82c947246fac99ad98c86bc01cdd99569b2ea11f25d3e1361cd40d145bed87" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -7244,7 +7244,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "fa64b9672600e5eeed8ca407828a7490b17dadfe16c273e2aacfb52d9b5b085" + configChecksum: "a82c947246fac99ad98c86bc01cdd99569b2ea11f25d3e1361cd40d145bed87" spec: securityContext: fsGroup: 65534 diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index bc96ffac8f..5f72d69c20 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: YXFGVndTaXBySjFxWEIxNA== + haSharedSecret: NTRkQThQbW1FNDlVQ1B4Rw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: f5132fa475eb2386265cbda64d4e6d56922b771a5f7f5e6e8e4536a712663e45 + checksum/secret: 7ce58af0efd945f657619718c017f528d7055b8069cab01aed85e29639bd6d6a labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 36aca312f3..cacefc4730 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: QVo4T0pQZmZLcFZmNjIyNQ== + haSharedSecret: c21mSkU1U0c0S0J0Q2lRRg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: f5e2b9fbf28a7d7815a094f72366cac395bd0aacd7890faa07e80ec700770fc5 + checksum/secret: 67f0b60e6520f3ae46a9f396411386d473441e7733c2544f6bface0f3b8475d9 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 80e06fc6a2..5e0017253e 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: dktYanZDU0tsa0hTWlZmWA== + haSharedSecret: YjFqbVE2UE05QnpwMVVVeg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 7956909ef2268e1aad9b4b132d938c8b1a5775321bacfaf61aea7b73cdbcc85e + checksum/secret: ec699a25c688a15358899da82f9fa9bb199fe085f200f00facc09b448ad80369 labels: app: docker-registry release: flyte-sandbox From 992641c5e076e9e5c608a8a50f7fbb0a8cbb9d7c Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Thu, 7 Mar 2024 17:16:53 -0800 Subject: [PATCH 31/76] Fix ephemeral storage validation in the case of pod templates (#5019) * Fix ephemeral storage validation in the case of pod templates Signed-off-by: Eduardo Apolinario * Simplify the code and add a comment. Signed-off-by: Eduardo Apolinario * Use constants in the comparison Signed-off-by: Eduardo Apolinario --------- Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- flyteadmin/pkg/manager/impl/validation/task_validator.go | 6 ++++++ .../pkg/manager/impl/validation/task_validator_test.go | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/flyteadmin/pkg/manager/impl/validation/task_validator.go b/flyteadmin/pkg/manager/impl/validation/task_validator.go index c50e3311b3..02f2dcded0 100644 --- a/flyteadmin/pkg/manager/impl/validation/task_validator.go +++ b/flyteadmin/pkg/manager/impl/validation/task_validator.go @@ -166,6 +166,12 @@ func isWholeNumber(quantity resource.Quantity) bool { func resourceListToQuantity(resources corev1.ResourceList) map[core.Resources_ResourceName]resource.Quantity { var requestedToQuantity = make(map[core.Resources_ResourceName]resource.Quantity) for name, quantity := range resources { + // The name to refer to ephemeral storage defined in k8s (https://github.com/kubernetes/api/blob/05aa4bceed70af2652698a28fb144ee22b2dd2ba/core/v1/types.go#L5988) + // is different from the name defined in Flyte's proto (https://github.com/flyteorg/flyte/blob/fd42f65660069d9c164cda2de579d3a89cac5b0f/flyteidl/protos/flyteidl/core/tasks.proto#L25). + // This is a workaround to handle the conversion. + if name == corev1.ResourceEphemeralStorage { + name = corev1.ResourceName(core.Resources_EPHEMERAL_STORAGE.String()) + } resourceName := core.Resources_ResourceName(core.Resources_ResourceName_value[strings.ToUpper(name.String())]) requestedToQuantity[resourceName] = quantity } diff --git a/flyteadmin/pkg/manager/impl/validation/task_validator_test.go b/flyteadmin/pkg/manager/impl/validation/task_validator_test.go index c82d2e5f58..108a651517 100644 --- a/flyteadmin/pkg/manager/impl/validation/task_validator_test.go +++ b/flyteadmin/pkg/manager/impl/validation/task_validator_test.go @@ -278,6 +278,11 @@ func TestResourceListToQuantity(t *testing.T) { gpuQuantity := gpuResources[core.Resources_CPU] val = gpuQuantity.Value() assert.Equal(t, val, int64(2)) + + ephemeralStorageResources := resourceListToQuantity(corev1.ResourceList{corev1.ResourceEphemeralStorage: resource.MustParse("500Mi")}) + ephemeralStorageQuantity := ephemeralStorageResources[core.Resources_EPHEMERAL_STORAGE] + val = ephemeralStorageQuantity.Value() + assert.Equal(t, val, int64(524288000)) } func TestRequestedResourcesToQuantity(t *testing.T) { From f52164d51338cbbcb2b29c9ecfba1dc461ec5f80 Mon Sep 17 00:00:00 2001 From: "Fabio M. Graetz, Ph.D" Date: Fri, 8 Mar 2024 19:22:37 +0100 Subject: [PATCH 32/76] Fix: Sanitize user identity before injecting into task pod as K8s label (#5023) * Fix: Sanitize user identity before injecting into task pod as K8s label Signed-off-by: Fabio Graetz * Lint Signed-off-by: Fabio Graetz --------- Signed-off-by: Fabio Graetz --- .../nodes/task/k8s/task_exec_context.go | 4 +++- .../nodes/task/k8s/task_exec_context_test.go | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context.go b/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context.go index 17bbce5398..bb987acbc2 100644 --- a/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context.go +++ b/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context.go @@ -5,6 +5,7 @@ import ( pluginsCore "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/utils/secrets" + k8sUtils "github.com/flyteorg/flyte/flytepropeller/pkg/utils" ) const executionIdentityVariable = "execution-identity" @@ -60,7 +61,8 @@ func newTaskExecutionMetadata(tCtx pluginsCore.TaskExecutionMetadata, taskTmpl * id := tCtx.GetSecurityContext().RunAs.ExecutionIdentity if len(id) > 0 { - injectLabels[executionIdentityVariable] = id + sanitizedID := k8sUtils.SanitizeLabelValue(id) + injectLabels[executionIdentityVariable] = sanitizedID } return TaskExecutionMetadata{ diff --git a/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context_test.go b/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context_test.go index bf9ca1eadb..e3c6f10ab6 100644 --- a/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context_test.go +++ b/flytepropeller/pkg/controller/nodes/task/k8s/task_exec_context_test.go @@ -86,6 +86,25 @@ func Test_newTaskExecutionMetadata(t *testing.T) { assert.Equal(t, 2, len(actual.GetLabels())) assert.Equal(t, "test-exec-identity", actual.GetLabels()[executionIdentityVariable]) }) + t.Run("Inject exec identity K8s label sanitation", func(t *testing.T) { + + existingMetadata := &mocks.TaskExecutionMetadata{} + existingAnnotations := map[string]string{} + existingMetadata.OnGetAnnotations().Return(existingAnnotations) + + existingMetadata.OnGetSecurityContext().Return(core.SecurityContext{RunAs: &core.Identity{ExecutionIdentity: "name@company.com"}}) + + existingLabels := map[string]string{ + "existingLabel": "existingLabelValue", + } + existingMetadata.OnGetLabels().Return(existingLabels) + + actual, err := newTaskExecutionMetadata(existingMetadata, &core.TaskTemplate{}) + assert.NoError(t, err) + + assert.Equal(t, 2, len(actual.GetLabels())) + assert.Equal(t, "name-company-com", actual.GetLabels()[executionIdentityVariable]) + }) } func Test_newTaskExecutionContext(t *testing.T) { From 028ff987cb45478e07474953528f947ad6132e48 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:19:03 -0800 Subject: [PATCH 33/76] Hide generated proto stubs by default (#4947) * Add flyteidl/gen to .gitattributes Signed-off-by: Eduardo Apolinario * make generate to show a change Signed-off-by: Eduardo Apolinario * Prepend forward slash to rule Signed-off-by: Eduardo Apolinario * Hide copied swagger.json Signed-off-by: Eduardo Apolinario * Move .gitattributes from flyteidl to root Signed-off-by: Eduardo Apolinario * Revert test attribute change Signed-off-by: Eduardo Apolinario --------- Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- .gitattributes | 4 ++++ flyteidl/.gitattributes | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 flyteidl/.gitattributes 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/flyteidl/.gitattributes b/flyteidl/.gitattributes deleted file mode 100644 index a2236d5f13..0000000000 --- a/flyteidl/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -gen/** linguist-generated=true -protos/**/*.rst linguist-generated=true From d0245d6d0d343382d4b1915cacb43145eb8e6b98 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Fri, 8 Mar 2024 14:00:21 -0800 Subject: [PATCH 34/76] Fix yaml comment in pod template examples (#5024) * Replace character to denote a comment in podtemplate examples Signed-off-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> * Update the other example Signed-off-by: Eduardo Apolinario --------- Signed-off-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- docs/deployment/configuration/general.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/deployment/configuration/general.rst b/docs/deployment/configuration/general.rst index b5278365d2..0ce9d259a4 100644 --- a/docs/deployment/configuration/general.rst +++ b/docs/deployment/configuration/general.rst @@ -241,19 +241,19 @@ The resultant Pod using the above default PodTemplate and K8s Plugin configurati name: example-pod namespace: flytesnacks-development labels: - - foo // maintained initial value - - bar // value appended by k8s plugin configuration + - foo # maintained initial value + - bar # value appended by k8s plugin configuration annotations: - - foo: overridden-value // value overridden by k8s plugin configuration - - bar: initial-value // maintained initial value - - baz: non-overridden-value // value added by k8s plugin configuration + - foo: overridden-value # value overridden by k8s plugin configuration + - bar: initial-value # maintained initial value + - baz: non-overridden-value # value added by k8s plugin configuration spec: containers: - name: ax9kd5xb4p8r45bpdv7v-n0-0 image: ghcr.io/flyteorg/flytecookbook:core-bfee7e549ad749bfb55922e130f4330a0ebc25b0 terminationMessagePath: "/dev/foo" - // remaining container configuration omitted - hostNetwork: true // overridden by the k8s plugin configuration + # remaining container configuration omitted + hostNetwork: true # overridden by the k8s plugin configuration The last step in constructing a Pod is to apply any task-specific configuration. These options follow the same rules as merging the default PodTemplate and K8s @@ -343,7 +343,7 @@ The resultant Pod is as follows: image: a.b.c/image:v1 command: cmd args: [] - // remaining container configuration omitted + # remaining container configuration omitted Notice how options follow the same merging rules, i.e. lists append and maps override. @@ -450,4 +450,4 @@ The resultant pod for that task is as follows: image: a.b.c/image:v1 command: cmd args: [] - // remaining container configuration omitted + # remaining container configuration omitted From 3ff007a69b02b489d77b83856dd92d55b9808616 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Fri, 8 Mar 2024 15:17:24 -0800 Subject: [PATCH 35/76] Fix use of labels and annotations in pod template examples (#5025) Signed-off-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> --- docs/deployment/configuration/general.rst | 66 +++++++++++------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/deployment/configuration/general.rst b/docs/deployment/configuration/general.rst index 0ce9d259a4..0b97f8b8ff 100644 --- a/docs/deployment/configuration/general.rst +++ b/docs/deployment/configuration/general.rst @@ -202,10 +202,10 @@ An example PodTemplate is shown: template: metadata: labels: - - foo + foo: from-pod-template annotations: - - foo: initial-value - - bar: initial-value + foo: initial-value + bar: initial-value spec: containers: - name: default @@ -221,10 +221,10 @@ Pod Labels, Annotations, and enables the host networking. plugins: k8s: default-labels: - - bar + bar: from-default-label default-annotations: - - foo: overridden-value - - baz: non-overridden-value + foo: overridden-value + baz: non-overridden-value enable-host-networking-pod: true To construct a Pod, FlytePropeller initializes a Pod definition using the default @@ -241,12 +241,12 @@ The resultant Pod using the above default PodTemplate and K8s Plugin configurati name: example-pod namespace: flytesnacks-development labels: - - foo # maintained initial value - - bar # value appended by k8s plugin configuration + foo: from-pod-template # maintained initial value + bar: from-default-label # value appended by k8s plugin configuration annotations: - - foo: overridden-value # value overridden by k8s plugin configuration - - bar: initial-value # maintained initial value - - baz: non-overridden-value # value added by k8s plugin configuration + foo: overridden-value # value overridden by k8s plugin configuration + bar: initial-value # maintained initial value + baz: non-overridden-value # value added by k8s plugin configuration spec: containers: - name: ax9kd5xb4p8r45bpdv7v-n0-0 @@ -280,8 +280,8 @@ of the task. For example: template: metadata: annotations: - - annotation_1: initial-value - - bar: initial-value + annotation_1: initial-value + bar: initial-value spec: containers: - name: default @@ -328,12 +328,12 @@ The resultant Pod is as follows: name: example-pod namespace: flytesnacks-development labels: - - label_1: value-1 # from Compile-time value - - label_2: value-2 # from Compile-time value + label_1: value-1 # from Compile-time value + label_2: value-2 # from Compile-time value annotations: - - annotation_1: value-1 # value overridden by Compile-time PodTemplate - - annotation_2: value-2 # from Compile-time PodTemplate - - bar: initial-value # from Runtime PodTemplate + annotation_1: value-1 # value overridden by Compile-time PodTemplate + annotation_2: value-2 # from Compile-time PodTemplate + bar: initial-value # from Runtime PodTemplate spec: containers: - name: default @@ -398,12 +398,12 @@ And a Runtime PodTemplate: template: metadata: labels: - - label_1: value-runtime - - label_2: value-runtime - - label_3: value-runtime + label_1: value-runtime + label_2: value-runtime + label_3: value-runtime annotations: - - foo: value-runtime - - bar: value-runtime + foo: value-runtime + bar: value-runtime spec: containers: - name: default @@ -418,10 +418,10 @@ And the following K8s Plugin Configuration: plugins: k8s: default-labels: - - label_1: value-plugin + label_1: value-plugin default-annotations: - - annotation_1: value-plugin - - baz: value-plugin + annotation_1: value-plugin + baz: value-plugin The resultant pod for that task is as follows: @@ -433,14 +433,14 @@ The resultant pod for that task is as follows: name: example-pod namespace: flytesnacks-development labels: - - label_1: value-plugin - - label_2: value-compile + label_1: value-plugin + label_2: value-compile annotations: - - annotation_1: value-plugin - - annotation_2: value-compile - - foo: value-runtime - - bar: value-runtime - - baz: value-plugin + annotation_1: value-plugin + annotation_2: value-compile + foo: value-runtime + bar: value-runtime + baz: value-plugin spec: containers: - name: default From a49284e94e156f10a1f1b4a91c825cb70aa70ea0 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Fri, 8 Mar 2024 17:11:44 -0800 Subject: [PATCH 36/76] Add gRPC probe for agent (#4990) Signed-off-by: Kevin Su --- charts/flyteagent/README.md | 3 ++- charts/flyteagent/templates/agent/deployment.yaml | 4 ++++ charts/flyteagent/values.yaml | 9 ++++++++- deployment/agent/flyte_agent_helm_generated.yaml | 7 ++++++- docker/sandbox-bundled/manifests/complete-agent.yaml | 11 ++++++++--- docker/sandbox-bundled/manifests/complete.yaml | 4 ++-- docker/sandbox-bundled/manifests/dev.yaml | 4 ++-- 7 files changed, 32 insertions(+), 10 deletions(-) diff --git a/charts/flyteagent/README.md b/charts/flyteagent/README.md index f889c095bd..d862716673 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.7"` | Docker image tag | +| image.tag | string | `"1.10.8b4"` | 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 aee84dc2b2..266ec9c0eb 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.7 # FLYTEAGENT_TAG + tag: 1.10.8b4 # 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/deployment/agent/flyte_agent_helm_generated.yaml b/deployment/agent/flyte_agent_helm_generated.yaml index 46762b4cff..4e78b991ac 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.7" + image: "ghcr.io/flyteorg/flyteagent:1.10.8b4" 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/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 5f72d69c20..60577c5716 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: NTRkQThQbW1FNDlVQ1B4Rw== + haSharedSecret: UVdVTnB4cXBMVXMyRjhGUw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 7ce58af0efd945f657619718c017f528d7055b8069cab01aed85e29639bd6d6a + checksum/secret: 7dd7be244652f0c2d4d5651db7e9d879fb74fb3a4407a80c48cba3dcd7b74e53 labels: app: docker-registry release: flyte-sandbox @@ -1755,12 +1755,17 @@ spec: value: minio - name: FLYTE_AWS_SECRET_ACCESS_KEY value: miniostorage - image: ghcr.io/flyteorg/flyteagent:1.10.7 + image: ghcr.io/flyteorg/flyteagent:1.10.8b4 imagePullPolicy: IfNotPresent name: flyteagent ports: - containerPort: 8000 name: agent-grpc + readinessProbe: + grpc: + port: 8000 + initialDelaySeconds: 1 + periodSeconds: 3 resources: limits: cpu: 500m diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index cacefc4730..f148ebf1c8 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: c21mSkU1U0c0S0J0Q2lRRg== + haSharedSecret: cnBScDd2Y3Y0a2JlcHlzVQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 67f0b60e6520f3ae46a9f396411386d473441e7733c2544f6bface0f3b8475d9 + checksum/secret: 459fe43b90e7be7fce10bc94020ba94037c1a21501b61d4e7121c84251f1b198 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 5e0017253e..84e16dcaba 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: YjFqbVE2UE05QnpwMVVVeg== + haSharedSecret: NlJkVzYyZ1MzZmZIRE1nOA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: ec699a25c688a15358899da82f9fa9bb199fe085f200f00facc09b448ad80369 + checksum/secret: 2e417b7dd337346d064d1cd4edf6b5624d335fce92ccfe22acd20485be450ec9 labels: app: docker-registry release: flyte-sandbox From 6a6855220e6967d06771cd9598e0effacd39884a Mon Sep 17 00:00:00 2001 From: Future-Outlier Date: Sun, 10 Mar 2024 16:53:31 +0800 Subject: [PATCH 37/76] Remove , file in the root directory (#4983) Signed-off-by: Future-Outlier --- , | 0 .../go/tasks/pluginmachinery/internal/webapi/launcher.go | 2 +- flyteplugins/go/tasks/plugins/webapi/agent/plugin.go | 2 +- flytepropeller/events/local_eventsink.go | 3 ++- flytepropeller/pkg/compiler/test/compiler_test.go | 2 +- flytepropeller/pkg/compiler/validators/utils_test.go | 2 +- flytepropeller/pkg/compiler/workflow_compiler_test.go | 2 +- flytepropeller/pkg/controller/nodes/executor.go | 2 +- 8 files changed, 8 insertions(+), 7 deletions(-) delete mode 100644 , diff --git a/, b/, deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go b/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go index 99a3ccdf7a..9482b3df95 100644 --- a/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go +++ b/flyteplugins/go/tasks/pluginmachinery/internal/webapi/launcher.go @@ -2,9 +2,9 @@ package webapi import ( "context" - pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors" "time" + pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/webapi" "github.com/flyteorg/flyte/flytestdlib/cache" diff --git a/flyteplugins/go/tasks/plugins/webapi/agent/plugin.go b/flyteplugins/go/tasks/plugins/webapi/agent/plugin.go index 11ef7871b3..c4decd04ef 100644 --- a/flyteplugins/go/tasks/plugins/webapi/agent/plugin.go +++ b/flyteplugins/go/tasks/plugins/webapi/agent/plugin.go @@ -4,13 +4,13 @@ import ( "context" "encoding/gob" "fmt" - "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service" "time" "golang.org/x/exp/maps" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" flyteIdl "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service" pluginErrors "github.com/flyteorg/flyte/flyteplugins/go/tasks/errors" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery" "github.com/flyteorg/flyte/flyteplugins/go/tasks/pluginmachinery/core" diff --git a/flytepropeller/events/local_eventsink.go b/flytepropeller/events/local_eventsink.go index 39e3ff5cac..fdcd5408a4 100644 --- a/flytepropeller/events/local_eventsink.go +++ b/flytepropeller/events/local_eventsink.go @@ -7,8 +7,9 @@ import ( "os" "sync" - "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" "github.com/golang/protobuf/proto" + + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/event" ) type localSink struct { diff --git a/flytepropeller/pkg/compiler/test/compiler_test.go b/flytepropeller/pkg/compiler/test/compiler_test.go index 115d4bbf3e..ae0322b66b 100644 --- a/flytepropeller/pkg/compiler/test/compiler_test.go +++ b/flytepropeller/pkg/compiler/test/compiler_test.go @@ -4,7 +4,6 @@ import ( "bytes" "encoding/json" "flag" - "github.com/flyteorg/flyte/flytepropeller/pkg/visualize" "io/ioutil" "os" "path/filepath" @@ -27,6 +26,7 @@ import ( "github.com/flyteorg/flyte/flytepropeller/pkg/compiler/common" "github.com/flyteorg/flyte/flytepropeller/pkg/compiler/errors" "github.com/flyteorg/flyte/flytepropeller/pkg/compiler/transformers/k8s" + "github.com/flyteorg/flyte/flytepropeller/pkg/visualize" ) var update = flag.Bool("update", false, "Update .golden files") diff --git a/flytepropeller/pkg/compiler/validators/utils_test.go b/flytepropeller/pkg/compiler/validators/utils_test.go index 29daed99ae..4a37f100dc 100644 --- a/flytepropeller/pkg/compiler/validators/utils_test.go +++ b/flytepropeller/pkg/compiler/validators/utils_test.go @@ -1,9 +1,9 @@ package validators import ( - "github.com/golang/protobuf/proto" "testing" + "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" "github.com/flyteorg/flyte/flyteidl/clients/go/coreutils" diff --git a/flytepropeller/pkg/compiler/workflow_compiler_test.go b/flytepropeller/pkg/compiler/workflow_compiler_test.go index 1e1e99fb02..eaffec3e21 100644 --- a/flytepropeller/pkg/compiler/workflow_compiler_test.go +++ b/flytepropeller/pkg/compiler/workflow_compiler_test.go @@ -2,10 +2,10 @@ package compiler import ( "fmt" - "github.com/golang/protobuf/proto" "strings" "testing" + "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" "k8s.io/apimachinery/pkg/util/sets" diff --git a/flytepropeller/pkg/controller/nodes/executor.go b/flytepropeller/pkg/controller/nodes/executor.go index 0c98aeeb5f..cf8c62cfad 100644 --- a/flytepropeller/pkg/controller/nodes/executor.go +++ b/flytepropeller/pkg/controller/nodes/executor.go @@ -791,7 +791,7 @@ func isTimeoutExpired(queuedAt *metav1.Time, timeout time.Duration) bool { return false } -func (c *nodeExecutor) isEligibleForRetry(nCtx interfaces.NodeExecutionContext, nodeStatus v1alpha1.ExecutableNodeStatus, err *core.ExecutionError) (currentAttempt, maxAttempts uint32, isEligible bool) { +func (c *nodeExecutor) isEligibleForRetry(nCtx interfaces.NodeExecutionContext, nodeStatus v1alpha1.ExecutableNodeStatus, err *core.ExecutionError) (currentAttempt uint32, maxAttempts uint32, isEligible bool) { if config.GetConfig().NodeConfig.IgnoreRetryCause { currentAttempt = nodeStatus.GetAttempts() + 1 } else { From 24e8bc7123ebd7f01f154f24a65e38206680def3 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Sun, 10 Mar 2024 01:18:45 -0800 Subject: [PATCH 38/76] [Housekeeping] Remove sandbox lite (#4996) Signed-off-by: Kevin Su --- .github/workflows/lite-image-manual.yml | 70 ----------- .github/workflows/sandbox.yml | 57 --------- .gitignore | 2 - Dockerfile.sandbox-lite | 115 ------------------ docker/sandbox-bundled/README.md | 11 -- docker/sandbox-lite/flyte-entrypoint-dind.sh | 84 ------------- docker/sandbox-lite/templates/namespace.yaml | 7 -- .../templates/project_resource_quota.yaml | 9 -- 8 files changed, 355 deletions(-) delete mode 100644 .github/workflows/lite-image-manual.yml delete mode 100644 Dockerfile.sandbox-lite delete mode 100644 docker/sandbox-bundled/README.md delete mode 100755 docker/sandbox-lite/flyte-entrypoint-dind.sh delete mode 100644 docker/sandbox-lite/templates/namespace.yaml delete mode 100644 docker/sandbox-lite/templates/project_resource_quota.yaml 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/.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/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/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-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 From aea794fc434c1be1b80d5fb369245a054ef900b1 Mon Sep 17 00:00:00 2001 From: "Ethan Brown (Domino)" <111539728+ddl-ebrown@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:53:26 -0700 Subject: [PATCH 39/76] Remove unnecessary ingress capability checks (#5028) - Kubernetes 1.19 was released in August 2020 and it added support for non-beta ingress types - Kubernetes 1.22 removed the beta ingress type in August 2021 and went out of support in October 2022 - As of March 2024, only Kubernetes 1.26 and later are supported - Therefore, there's no reason to make this check! Signed-off-by: ddl-ebrown --- .../flyte-core/templates/common/ingress.yaml | 183 ------------------ 1 file changed, 183 deletions(-) diff --git a/charts/flyte-core/templates/common/ingress.yaml b/charts/flyte-core/templates/common/ingress.yaml index 69f7c4ae07..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" . }} @@ -171,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 }} @@ -469,11 +290,7 @@ 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 From b0b5dc35a23666c1201ddd63ea496ef2331746c5 Mon Sep 17 00:00:00 2001 From: pryce-turner <31577879+pryce-turner@users.noreply.github.com> Date: Mon, 11 Mar 2024 13:21:49 -0700 Subject: [PATCH 40/76] Nested parallelization (#5022) * Nested parallelization first draft Signed-off-by: pryce-turner * Added screenshots and considerations section Signed-off-by: pryce-turner * Spelling Signed-off-by: pryce-turner * toctree Signed-off-by: pryce-turner * Apply suggestions from code review Adding most suggestions with a few that need to be handled locally! Co-authored-by: Nikki Everett Signed-off-by: pryce-turner <31577879+pryce-turner@users.noreply.github.com> * Merge * Updated screenshot with annotation Signed-off-by: pryce-turner --------- Signed-off-by: pryce-turner Signed-off-by: pryce-turner <31577879+pryce-turner@users.noreply.github.com> Co-authored-by: Nikki Everett --- docs/user_guide/advanced_composition/index.md | 1 + .../nested_parallelization.md | 177 ++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 docs/user_guide/advanced_composition/nested_parallelization.md diff --git a/docs/user_guide/advanced_composition/index.md b/docs/user_guide/advanced_composition/index.md index 26eb8df33c..3d0f14fc83 100644 --- a/docs/user_guide/advanced_composition/index.md +++ b/docs/user_guide/advanced_composition/index.md @@ -16,6 +16,7 @@ chaining_flyte_entities subworkflows dynamic_workflows map_tasks +nested_parallelization eager_workflows decorating_tasks decorating_workflows diff --git a/docs/user_guide/advanced_composition/nested_parallelization.md b/docs/user_guide/advanced_composition/nested_parallelization.md new file mode 100644 index 0000000000..73fd921b2e --- /dev/null +++ b/docs/user_guide/advanced_composition/nested_parallelization.md @@ -0,0 +1,177 @@ +(nested_parallelization)= + +# Nested parallelization + +```{eval-rst} +.. tags:: Advanced +``` + +For exceptionally large or complicated workflows that can't be adequately implemented as dynamic workflows or map tasks, it can be beneficial to have multiple levels of workflow parallelization. + +This is useful for multiple reasons: +- Better code organization +- Better code reuse +- Better testing +- Better debugging +- Better monitoring, since each subworkflow can be run independently and monitored independently +- Better performance and scale, since each subworkflow is executed as a separate workflow and thus can be distributed among different flytepropeller workers and shards. This allows for better parallelism and scale. + +## Nested dynamic workflows + +You can use nested dynamic workflows to break down a large workflow into smaller workflows and then compose them together to form a hierarchy. In this example, a top-level workflow uses two levels of dynamic workflows to process a list through some simple addition tasks and then flatten the list again. + +### Example code + +```python +""" +A core workflow parallelized as six items with a chunk size of two will be structured as follows: + +multi_wf -> level1 -> level2 -> core_wf -> step1 -> step2 + -> core_wf -> step1 -> step2 + level2 -> core_wf -> step1 -> step2 + -> core_wf -> step1 -> step2 + level2 -> core_wf -> step1 -> step2 + -> core_wf -> step1 -> step2 +""" + +import typing +from flytekit import task, workflow, dynamic, LaunchPlan + + +@task +def step1(a: int) -> int: + return a + 1 + + +@task +def step2(a: int) -> int: + return a + 2 + + +@workflow +def core_wf(a: int) -> int: + return step2(a=step1(a=a)) + + +core_wf_lp = LaunchPlan.get_or_create(core_wf) + + +@dynamic +def level2(l: typing.List[int]) -> typing.List[int]: + return [core_wf_lp(a=a) for a in l] + + +@task +def reduce(l: typing.List[typing.List[int]]) -> typing.List[int]: + f = [] + for i in l: + f.extend(i) + return f + + +@dynamic +def level1(l: typing.List[int], chunk: int) -> typing.List[int]: + v = [] + for i in range(0, len(l), chunk): + v.append(level2(l=l[i:i + chunk])) + return reduce(l=v) + + +@workflow +def multi_wf(l: typing.List[int], chunk: int) -> typing.List[int]: + return level1(l=l, chunk=chunk) +``` + + +### Flyte console + +Here is a visual representation of the execution of nested dynamic workflows in the Flyte console: + +:::{figure} https://raw.githubusercontent.com/flyteorg/static-resources/main/flytesnacks/user_guide/nested_parallel_top_level.png?raw=true +:alt: Nested Parallelization UI View +:class: with-shadow +::: + +In each level2 node at the top level, two core workflows are run in parallel: + +:::{figure} https://raw.githubusercontent.com/flyteorg/static-resources/main/flytesnacks/user_guide/nested_parallel_inner_dynamic_anno.png?raw=true +:alt: Inner dynamic workflow +:class: with-shadow +::: + +Finally, in each core workflow, the two tasks are executed in series: + +:::{figure} https://raw.githubusercontent.com/flyteorg/static-resources/main/flytesnacks/user_guide/nested_parallel_subworkflow.png?raw=true +:alt: Core workflow +:class: with-shadow +::: + +## Mixed parallelism + +This example is similar to nested dynamic workflows, but instead of using a dynamic workflow to parallelize a core workflow with serial tasks, we use a core workflow to call a map task, which processes both inputs in parallel. This workflow has one less layer of parallelism, so the outputs won't be the same as those of the nested parallelization example, but it does still demonstrate how you can mix these different approaches to achieve concurrency. + +### Example code + +```python +""" +A core workflow parallelized as six items with a chunk size of two will be structured as follows: + +multi_wf -> level1 -> level2 -> mappable + -> mappable + level2 -> mappable + -> mappable + level2 -> mappable + -> mappable +""" +import typing +from flytekit import task, workflow, dynamic, map_task + + +@task +def mappable(a: int) -> int: + return a + 2 + + +@workflow +def level2(l: typing.List[int]) -> typing.List[int]: + return map_task(mappable)(a=l) + + +@task +def reduce(l: typing.List[typing.List[int]]) -> typing.List[int]: + f = [] + for i in l: + f.extend(i) + return f + + +@dynamic +def level1(l: typing.List[int], chunk: int) -> typing.List[int]: + v = [] + for i in range(0, len(l), chunk): + v.append(level2(l=l[i : i + chunk])) + return reduce(l=v) + + +@workflow +def multi_wf(l: typing.List[int], chunk: int) -> typing.List[int]: + return level1(l=l, chunk=chunk) + +``` + +### Flyte console + +While the top-level dynamic workflow will be exactly the same as the nested dynamic workflows example, the inner map task nodes will be visible as links in the sidebar: + +:::{figure} https://raw.githubusercontent.com/flyteorg/static-resources/main/flytesnacks/user_guide/nested_parallel_inner_map.png?raw=true +:alt: Inner Map Task +:class: with-shadow +::: + +## Design considerations + +While you can nest even further if needed, or incorporate map tasks if your inputs are all the same type, the design of your workflow should be informed by the actual data you're processing. For example, if you have a big library of music from which you'd like to extract the lyrics, the first level could loop through all the albums, and the second level could process each song. + +If you're just processing an enormous list of the same input, it's best to keep your code simple and let the scheduler handle optimizing the execution. Additionally, unless you need dynamic workflow features like mixing and matching inputs and outputs, it's usually most efficient to use a map task, which has the added benefit of keeping the UI clean. + +You can also choose to limit the scale of parallel execution at a few levels. The `max_parallelism` attribute can be applied at the workflow level and will limit the number of parallel tasks being executed. (This is set to 25 by default.) Within map tasks, you can specify a `concurrency` argument, which will limit the number of mapped tasks that can run in parallel at any given time. \ No newline at end of file From 04508c0bcc90f8447dab906a495ea02e14cee925 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Mon, 11 Mar 2024 13:54:21 -0700 Subject: [PATCH 41/76] Enable agent service by default (#4993) Signed-off-by: Kevin Su --- charts/flyte-binary/eks-production.yaml | 1 + charts/flyte-binary/eks-starter.yaml | 1 + charts/flyte-core/README.md | 6 +++--- charts/flyte-core/values-eks.yaml | 1 + charts/flyte-core/values-gcp.yaml | 1 + .../values-keycloak-idp-flyteclients-without-browser.yaml | 1 + charts/flyte-core/values.yaml | 3 +-- deployment/eks/flyte_aws_scheduler_helm_generated.yaml | 5 +++-- deployment/eks/flyte_helm_dataplane_generated.yaml | 5 +++-- deployment/eks/flyte_helm_generated.yaml | 5 +++-- deployment/gcp/flyte_helm_dataplane_generated.yaml | 5 +++-- deployment/gcp/flyte_helm_generated.yaml | 5 +++-- docker/sandbox-bundled/manifests/complete-agent.yaml | 4 ++-- docker/sandbox-bundled/manifests/complete.yaml | 4 ++-- docker/sandbox-bundled/manifests/dev.yaml | 4 ++-- flyteplugins/go/tasks/plugins/webapi/agent/client.go | 3 +++ 16 files changed, 33 insertions(+), 21 deletions(-) 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-core/README.md b/charts/flyte-core/README.md index 5f0e3dcbb5..6b54dc56d3 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -102,9 +102,9 @@ helm install gateway bitnami/contour -n 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). | | 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"` | | 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 32fb5c5827..fbc2016522 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -792,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 diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml index 83c0d249c5..a3f67a2fb8 100644 --- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml +++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml @@ -489,6 +489,7 @@ data: - container - sidecar - k8s-array + - agent-service k8s.yaml: | plugins: k8s: @@ -1267,7 +1268,7 @@ spec: template: metadata: annotations: - configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" + configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1349,7 +1350,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" + configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" spec: securityContext: fsGroup: 65534 diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml index 90d327cb9e..9a73a12ccf 100644 --- a/deployment/eks/flyte_helm_dataplane_generated.yaml +++ b/deployment/eks/flyte_helm_dataplane_generated.yaml @@ -154,6 +154,7 @@ data: - container - sidecar - k8s-array + - agent-service k8s.yaml: | plugins: k8s: @@ -427,7 +428,7 @@ spec: template: metadata: annotations: - configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" + configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -509,7 +510,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" + configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" spec: securityContext: fsGroup: 65534 diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml index 8f34f4f236..8a6787818b 100644 --- a/deployment/eks/flyte_helm_generated.yaml +++ b/deployment/eks/flyte_helm_generated.yaml @@ -520,6 +520,7 @@ data: - container - sidecar - k8s-array + - agent-service k8s.yaml: | plugins: k8s: @@ -1397,7 +1398,7 @@ spec: template: metadata: annotations: - configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" + configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1479,7 +1480,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "6f925c4627a6ae0040ea2073d2f5faca3fbfa82c90d90eae474819f23d52212" + configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" spec: securityContext: fsGroup: 65534 diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml index d19a4d48c4..ee3844680c 100644 --- a/deployment/gcp/flyte_helm_dataplane_generated.yaml +++ b/deployment/gcp/flyte_helm_dataplane_generated.yaml @@ -154,6 +154,7 @@ data: - container - sidecar - k8s-array + - agent-service k8s.yaml: | plugins: k8s: @@ -435,7 +436,7 @@ spec: template: metadata: annotations: - configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" + configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -516,7 +517,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" + configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" spec: securityContext: fsGroup: 65534 diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml index 5b8757459c..3167fb54ad 100644 --- a/deployment/gcp/flyte_helm_generated.yaml +++ b/deployment/gcp/flyte_helm_generated.yaml @@ -533,6 +533,7 @@ data: - container - sidecar - k8s-array + - agent-service k8s.yaml: | plugins: k8s: @@ -1420,7 +1421,7 @@ spec: template: metadata: annotations: - configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" + configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1501,7 +1502,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0-b1 annotations: - configChecksum: "9c6856d58b3168a752486076eccbc6783bbb94d62b47139c6cab6e1fe12174c" + configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" spec: securityContext: fsGroup: 65534 diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 60577c5716..95fa73316a 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: UVdVTnB4cXBMVXMyRjhGUw== + haSharedSecret: ZVNtQlpWSTRkZnFtRVp0cw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 7dd7be244652f0c2d4d5651db7e9d879fb74fb3a4407a80c48cba3dcd7b74e53 + checksum/secret: e540906f7530a7b8f9c9e7488bfe922999294201b1f0f75ab310162ef6441d96 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index f148ebf1c8..5117665b85 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: cnBScDd2Y3Y0a2JlcHlzVQ== + haSharedSecret: VnRRWDlOZXVWcXNmZFRXRQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 459fe43b90e7be7fce10bc94020ba94037c1a21501b61d4e7121c84251f1b198 + checksum/secret: 1a60b7cc9612c65c9a369c55629f6054dfed24c40b064269274d0fbb7c6d0823 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 84e16dcaba..a4ae9c83db 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: NlJkVzYyZ1MzZmZIRE1nOA== + haSharedSecret: dlY1cWxrMFBJOU8yazFyZQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 2e417b7dd337346d064d1cd4edf6b5624d335fce92ccfe22acd20485be450ec9 + checksum/secret: b86db743a29c0ae883fd1fd39fb1a6e81288c8451f3ebac001c7f2f1893d3f2a labels: app: docker-registry release: flyte-sandbox diff --git a/flyteplugins/go/tasks/plugins/webapi/agent/client.go b/flyteplugins/go/tasks/plugins/webapi/agent/client.go index b525acc5c3..9f4409c8e6 100644 --- a/flyteplugins/go/tasks/plugins/webapi/agent/client.go +++ b/flyteplugins/go/tasks/plugins/webapi/agent/client.go @@ -99,6 +99,7 @@ func getFinalContext(ctx context.Context, operation string, agent *Deployment) ( } func initializeAgentRegistry(cs *ClientSet) (Registry, error) { + logger.Infof(context.Background(), "Initializing agent registry") agentRegistry := make(Registry) cfg := GetConfig() var agentDeployments []*Deployment @@ -156,6 +157,8 @@ func initializeAgentRegistry(cs *ClientSet) (Registry, error) { } func initializeClients(ctx context.Context) (*ClientSet, error) { + logger.Infof(ctx, "Initializing agent clients") + asyncAgentClients := make(map[string]service.AsyncAgentServiceClient) syncAgentClients := make(map[string]service.SyncAgentServiceClient) agentMetadataClients := make(map[string]service.AgentMetadataServiceClient) From 05b554326fe7effabbed9b1ceb4af63ded8c85c9 Mon Sep 17 00:00:00 2001 From: Jason Lai Date: Tue, 12 Mar 2024 04:57:55 +0800 Subject: [PATCH 42/76] docs: improve documentation for overwriting existing images (#5030) Signed-off-by: jason.lai --- .../customizing_dependencies/imagespec.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/user_guide/customizing_dependencies/imagespec.md b/docs/user_guide/customizing_dependencies/imagespec.md index 5a9ef93736..12d9295b1e 100644 --- a/docs/user_guide/customizing_dependencies/imagespec.md +++ b/docs/user_guide/customizing_dependencies/imagespec.md @@ -160,3 +160,17 @@ If you only want to build the image without registering the workflow, you can us ``` pyflyte build --remote image_spec.py wf ``` + ++++ + +In some cases, you may want to force an image to rebuild, even if the image spec hasn’t changed. If you want to overwrite an existing image, you can pass the `FLYTE_FORCE_PUSH_IMAGE_SPEC=True` to `pyflyte` command or add `force_push()` to the ImageSpec. + +```bash +FLYTE_FORCE_PUSH_IMAGE_SPEC=True pyflyte run --remote image_spec.py wf +``` + +or + +```python +image = ImageSpec(registry="ghcr.io/flyteorg", packages=["pandas"]).force_push() +``` From bcd81b6840a7751b9e3019fc721d1b043b801251 Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Tue, 12 Mar 2024 05:20:39 +0800 Subject: [PATCH 43/76] Remove outdated kustomize deployment (#5029) * remove kustomize Signed-off-by: Ryan Lo * update docs Signed-off-by: Ryan Lo --------- Signed-off-by: Ryan Lo --- .github/workflows/generate_flyte_manifest.yml | 6 - .github/workflows/tests.yml | 10 - Makefile | 4 - deployment/eks/flyte_generated.yaml | 9526 ---------------- deployment/gcp/flyte_generated.yaml | 9553 ----------------- deployment/sandbox/flyte_generated.yaml | 3965 ------- docs/community/contribute.rst | 2 +- .../configuration/customizable_resources.rst | 2 +- docs/deployment/deployment/index.rst | 3 +- kustomize/README.md | 13 - kustomize/base/README.md | 19 - .../base/addons/cloudsqlproxy/deployment.yaml | 26 - .../addons/cloudsqlproxy/kustomization.yaml | 3 - .../base/addons/cloudsqlproxy/service.yaml | 12 - .../kustomization.yaml | 4 - .../contour_ingress_controller/service.yaml | 14 - kustomize/base/addons/database/database.yaml | 41 - .../base/addons/database/kustomization.yaml | 2 - .../clusterrolebinding.yaml | 12 - .../kubernetes_dashboard/deployment.yaml | 15 - .../kubernetes_dashboard/kustomization.yaml | 7 - .../addons/kubernetes_dashboard/service.yaml | 12 - kustomize/base/addons/redis/deployment.yaml | 59 - .../base/addons/redis/kustomization.yaml | 3 - kustomize/base/addons/redis/service.yaml | 16 - .../base/addons/storage/kustomization.yaml | 2 - kustomize/base/addons/storage/storage.yaml | 74 - .../base/admindeployment/auth_secret.yaml | 6 - .../admindeployment/clustersync/cron.yaml | 35 - .../clustersync/kustomization.yaml | 2 - .../base/admindeployment/deployment.yaml | 157 - .../base/admindeployment/kustomization.yaml | 4 - kustomize/base/admindeployment/service.yaml | 25 - .../adminserviceaccount.yaml | 50 - .../adminserviceaccount/kustomization.yaml | 2 - kustomize/base/console/configmap.yaml | 10 - kustomize/base/console/deployment.yaml | 38 - kustomize/base/console/kustomization.yaml | 4 - kustomize/base/console/service.yaml | 14 - kustomize/base/datacatalog/deployment.yaml | 60 - kustomize/base/datacatalog/kustomization.yaml | 4 - kustomize/base/datacatalog/rbac.yaml | 5 - kustomize/base/datacatalog/service.yaml | 24 - kustomize/base/ingress/ingress.yaml | 193 - kustomize/base/ingress/kustomization.yaml | 5 - kustomize/base/namespace/kustomization.yaml | 2 - kustomize/base/namespace/namespace.yaml | 4 - kustomize/base/operators/README.md | 1 - .../kfoperators/namespace/kustomization.yaml | 2 - .../kfoperators/namespace/namespace.yaml | 4 - .../kfoperators/pytorch/kustomization.yaml | 4 - .../kfoperators/tensorflow/kustomization.yaml | 4 - .../operators/sagemaker/kustomization.yaml | 4 - .../base/operators/spark/deployment.yaml | 51 - .../base/operators/spark/kustomization.yaml | 15 - .../spark/scheduledsparkapplications-crd.yaml | 3762 ------- .../base/operators/spark/spark-operator.yaml | 56 - .../spark/sparkapplications-crd.yaml | 3771 ------- kustomize/base/operators/spark/webhook.yaml | 36 - kustomize/base/pod_webhook/deployment.yaml | 83 - kustomize/base/pod_webhook/kustomization.yaml | 5 - kustomize/base/pod_webhook/rbac.yaml | 42 - kustomize/base/pod_webhook/secret.yaml | 6 - kustomize/base/pod_webhook/service.yaml | 20 - kustomize/base/propeller/auth_secret.yaml | 8 - kustomize/base/propeller/deployment.yaml | 60 - kustomize/base/propeller/kustomization.yaml | 4 - kustomize/base/propeller/rbac.yaml | 89 - .../base/schedulerdeployment/configmap.yaml | 31 - .../base/schedulerdeployment/deployment.yaml | 72 - .../schedulerdeployment/kustomization.yaml | 3 - kustomize/base/single_cluster/README.md | 15 - .../base/single_cluster/complete/README.md | 7 - .../complete/kustomization.yaml | 17 - .../base/single_cluster/headless/README.md | 9 - .../config/admin/cluster_resources.yaml | 19 - .../headless/config/admin/db.yaml | 10 - .../headless/config/admin/domain.yaml | 7 - .../headless/config/admin/server.yaml | 43 - .../config/admin/task_resource_defaults.yaml | 10 - .../aa_namespace.yaml | 7 - .../ab_project-resource-quota.yaml | 10 - .../headless/config/common/logger.yaml | 4 - .../headless/config/common/storage.yaml | 6 - .../headless/config/console/console.yaml | 3 - .../headless/config/datacatalog/db.yaml | 10 - .../headless/config/datacatalog/server.yaml | 6 - .../headless/config/propeller/admin.yaml | 7 - .../headless/config/propeller/catalog.yaml | 4 - .../headless/config/propeller/core.yaml | 36 - .../config/propeller/enabled_plugins.yaml | 8 - .../config/propeller/plugins/copilot.yaml | 6 - .../config/propeller/plugins/k8s.yaml | 7 - .../config/propeller/resource_manager.yaml | 7 - .../headless/kustomization.yaml | 63 - kustomize/base/wf_crd/kustomization.yaml | 2 - kustomize/base/wf_crd/wf_crd.yaml | 28 - kustomize/overlays/README.md | 7 - kustomize/overlays/eks/README.md | 73 - .../overlays/eks/flyte/admin/deployment.yaml | 15 - .../overlays/eks/flyte/admin/service.yaml | 28 - .../eks/flyte/admin/serviceaccount.yaml | 8 - .../overlays/eks/flyte/config/admin/db.yaml | 7 - .../config/admin/task_resource_defaults.yaml | 10 - .../ad_spark-role.yaml | 24 - .../ae_spark-service-account.yaml | 5 - .../af_spark-role-binding.yaml | 14 - .../eks/flyte/config/common/storage.yaml | 17 - .../eks/flyte/config/datacatalog/db.yaml | 7 - .../eks/flyte/config/propeller/core.yaml | 40 - .../config/propeller/enabled_plugins.yaml | 15 - .../propeller/plugins/catalog_cache.yaml | 6 - .../flyte/config/propeller/plugins/k8s.yaml | 8 - .../config/propeller/plugins/qubole.yaml | 3 - .../flyte/config/propeller/plugins/spark.yaml | 20 - .../config/propeller/plugins/task_logs.yaml | 10 - .../overlays/eks/flyte/console/service.yaml | 23 - .../eks/flyte/datacatalog/deployment.yaml | 15 - .../eks/flyte/datacatalog/service.yaml | 15 - .../overlays/eks/flyte/ingress/README.md | 5 - .../overlays/eks/flyte/ingress/ingress.yaml | 157 - .../eks/flyte/ingress/ingress_grpc.yaml | 52 - .../eks/flyte/ingress/kustomization.yaml | 6 - .../overlays/eks/flyte/kustomization.yaml | 62 - .../eks/flyte/propeller/deployment.yaml | 15 - .../overlays/eks/flyte/propeller/service.yaml | 15 - .../eks/flyte/propeller/serviceaccount.yaml | 8 - kustomize/overlays/eks/kustomization.yaml | 51 - kustomize/overlays/gcp/README.md | 95 - .../overlays/gcp/flyte/admin/deployment.yaml | 15 - .../overlays/gcp/flyte/admin/service.yaml | 17 - .../overlays/gcp/flyte/config/admin/db.yaml | 6 - .../config/admin/task_resource_defaults.yaml | 10 - .../ad_spark-role.yaml | 24 - .../ae_spark-service-account.yaml | 5 - .../af_spark-role-binding.yaml | 14 - .../gcp/flyte/config/common/storage.yaml | 19 - .../gcp/flyte/config/datacatalog/db.yaml | 7 - .../gcp/flyte/config/propeller/core.yaml | 40 - .../config/propeller/enabled_plugins.yaml | 15 - .../propeller/plugins/catalog_cache.yaml | 6 - .../flyte/config/propeller/plugins/k8s.yaml | 8 - .../config/propeller/plugins/qubole.yaml | 3 - .../flyte/config/propeller/plugins/spark.yaml | 16 - .../config/propeller/plugins/task_logs.yaml | 10 - .../overlays/gcp/flyte/console/service.yaml | 19 - .../gcp/flyte/datacatalog/deployment.yaml | 15 - .../gcp/flyte/datacatalog/service.yaml | 15 - .../overlays/gcp/flyte/kustomization.yaml | 59 - .../gcp/flyte/propeller/deployment.yaml | 15 - .../overlays/gcp/flyte/propeller/service.yaml | 15 - kustomize/overlays/gcp/kustomization.yaml | 53 - kustomize/overlays/sandbox/README.md | 4 - .../sandbox/flyte/admin/deployment.yaml | 105 - .../sandbox/flyte/config/admin/db.yaml | 6 - .../config/admin/task_resource_defaults.yaml | 10 - .../ad_spark-role.yaml | 24 - .../ae_spark-service-account.yaml | 5 - .../af_spark-role-binding.yaml | 13 - .../sandbox/flyte/config/common/logger.yaml | 3 - .../sandbox/flyte/config/common/storage.yaml | 11 - .../sandbox/flyte/config/datacatalog/db.yaml | 6 - .../config/propeller/enabled_plugins.yaml | 10 - .../flyte/config/propeller/plugins/k8s.yaml | 8 - .../config/propeller/plugins/task_logs.yaml | 4 - .../config/propeller/resource_manager.yaml | 3 - .../overlays/sandbox/flyte/kustomization.yaml | 41 - .../flyte/propeller/webhook-secret.yaml | 10 - .../sandbox/flyte/propeller/webhook.yaml | 18 - kustomize/overlays/sandbox/kustomization.yaml | 55 - .../overlays/sandbox/nodeport-services.yaml | 51 - .../overlays/test/flyte/admin/deployment.yaml | 64 - .../overlays/test/flyte/config/admin/db.yaml | 6 - .../test/flyte/config/common/logger.yaml | 3 - .../test/flyte/config/common/storage.yaml | 11 - .../test/flyte/config/datacatalog/db.yaml | 6 - .../config/propeller/enabled_plugins.yaml | 10 - .../flyte/config/propeller/plugins/k8s.yaml | 8 - .../config/propeller/resource_manager.yaml | 3 - .../overlays/test/flyte/kustomization.yaml | 42 - kustomize/overlays/test/kustomization.yaml | 49 - script/generate_kustomize.sh | 42 - script/release.sh | 6 - 183 files changed, 3 insertions(+), 34409 deletions(-) delete mode 100644 deployment/eks/flyte_generated.yaml delete mode 100644 deployment/gcp/flyte_generated.yaml delete mode 100644 deployment/sandbox/flyte_generated.yaml delete mode 100644 kustomize/README.md delete mode 100644 kustomize/base/README.md delete mode 100644 kustomize/base/addons/cloudsqlproxy/deployment.yaml delete mode 100644 kustomize/base/addons/cloudsqlproxy/kustomization.yaml delete mode 100644 kustomize/base/addons/cloudsqlproxy/service.yaml delete mode 100644 kustomize/base/addons/contour_ingress_controller/kustomization.yaml delete mode 100644 kustomize/base/addons/contour_ingress_controller/service.yaml delete mode 100644 kustomize/base/addons/database/database.yaml delete mode 100644 kustomize/base/addons/database/kustomization.yaml delete mode 100644 kustomize/base/addons/kubernetes_dashboard/clusterrolebinding.yaml delete mode 100644 kustomize/base/addons/kubernetes_dashboard/deployment.yaml delete mode 100644 kustomize/base/addons/kubernetes_dashboard/kustomization.yaml delete mode 100644 kustomize/base/addons/kubernetes_dashboard/service.yaml delete mode 100644 kustomize/base/addons/redis/deployment.yaml delete mode 100644 kustomize/base/addons/redis/kustomization.yaml delete mode 100644 kustomize/base/addons/redis/service.yaml delete mode 100644 kustomize/base/addons/storage/kustomization.yaml delete mode 100644 kustomize/base/addons/storage/storage.yaml delete mode 100644 kustomize/base/admindeployment/auth_secret.yaml delete mode 100644 kustomize/base/admindeployment/clustersync/cron.yaml delete mode 100644 kustomize/base/admindeployment/clustersync/kustomization.yaml delete mode 100644 kustomize/base/admindeployment/deployment.yaml delete mode 100644 kustomize/base/admindeployment/kustomization.yaml delete mode 100644 kustomize/base/admindeployment/service.yaml delete mode 100644 kustomize/base/adminserviceaccount/adminserviceaccount.yaml delete mode 100644 kustomize/base/adminserviceaccount/kustomization.yaml delete mode 100644 kustomize/base/console/configmap.yaml delete mode 100644 kustomize/base/console/deployment.yaml delete mode 100644 kustomize/base/console/kustomization.yaml delete mode 100644 kustomize/base/console/service.yaml delete mode 100644 kustomize/base/datacatalog/deployment.yaml delete mode 100644 kustomize/base/datacatalog/kustomization.yaml delete mode 100644 kustomize/base/datacatalog/rbac.yaml delete mode 100644 kustomize/base/datacatalog/service.yaml delete mode 100644 kustomize/base/ingress/ingress.yaml delete mode 100644 kustomize/base/ingress/kustomization.yaml delete mode 100644 kustomize/base/namespace/kustomization.yaml delete mode 100644 kustomize/base/namespace/namespace.yaml delete mode 100644 kustomize/base/operators/README.md delete mode 100644 kustomize/base/operators/kfoperators/namespace/kustomization.yaml delete mode 100644 kustomize/base/operators/kfoperators/namespace/namespace.yaml delete mode 100644 kustomize/base/operators/kfoperators/pytorch/kustomization.yaml delete mode 100644 kustomize/base/operators/kfoperators/tensorflow/kustomization.yaml delete mode 100644 kustomize/base/operators/sagemaker/kustomization.yaml delete mode 100644 kustomize/base/operators/spark/deployment.yaml delete mode 100644 kustomize/base/operators/spark/kustomization.yaml delete mode 100644 kustomize/base/operators/spark/scheduledsparkapplications-crd.yaml delete mode 100644 kustomize/base/operators/spark/spark-operator.yaml delete mode 100644 kustomize/base/operators/spark/sparkapplications-crd.yaml delete mode 100644 kustomize/base/operators/spark/webhook.yaml delete mode 100644 kustomize/base/pod_webhook/deployment.yaml delete mode 100644 kustomize/base/pod_webhook/kustomization.yaml delete mode 100644 kustomize/base/pod_webhook/rbac.yaml delete mode 100644 kustomize/base/pod_webhook/secret.yaml delete mode 100644 kustomize/base/pod_webhook/service.yaml delete mode 100644 kustomize/base/propeller/auth_secret.yaml delete mode 100644 kustomize/base/propeller/deployment.yaml delete mode 100644 kustomize/base/propeller/kustomization.yaml delete mode 100644 kustomize/base/propeller/rbac.yaml delete mode 100644 kustomize/base/schedulerdeployment/configmap.yaml delete mode 100644 kustomize/base/schedulerdeployment/deployment.yaml delete mode 100644 kustomize/base/schedulerdeployment/kustomization.yaml delete mode 100644 kustomize/base/single_cluster/README.md delete mode 100644 kustomize/base/single_cluster/complete/README.md delete mode 100644 kustomize/base/single_cluster/complete/kustomization.yaml delete mode 100644 kustomize/base/single_cluster/headless/README.md delete mode 100644 kustomize/base/single_cluster/headless/config/admin/cluster_resources.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/admin/db.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/admin/domain.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/admin/server.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/admin/task_resource_defaults.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/clusterresource-templates/aa_namespace.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/clusterresource-templates/ab_project-resource-quota.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/common/logger.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/common/storage.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/console/console.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/datacatalog/db.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/datacatalog/server.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/admin.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/catalog.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/core.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/enabled_plugins.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/plugins/copilot.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/plugins/k8s.yaml delete mode 100644 kustomize/base/single_cluster/headless/config/propeller/resource_manager.yaml delete mode 100644 kustomize/base/single_cluster/headless/kustomization.yaml delete mode 100644 kustomize/base/wf_crd/kustomization.yaml delete mode 100644 kustomize/base/wf_crd/wf_crd.yaml delete mode 100644 kustomize/overlays/README.md delete mode 100644 kustomize/overlays/eks/README.md delete mode 100644 kustomize/overlays/eks/flyte/admin/deployment.yaml delete mode 100644 kustomize/overlays/eks/flyte/admin/service.yaml delete mode 100644 kustomize/overlays/eks/flyte/admin/serviceaccount.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/admin/db.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/admin/task_resource_defaults.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/clusterresource-templates/ad_spark-role.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/clusterresource-templates/ae_spark-service-account.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/clusterresource-templates/af_spark-role-binding.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/common/storage.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/datacatalog/db.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/core.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/enabled_plugins.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/plugins/catalog_cache.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/plugins/k8s.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/plugins/qubole.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/plugins/spark.yaml delete mode 100644 kustomize/overlays/eks/flyte/config/propeller/plugins/task_logs.yaml delete mode 100644 kustomize/overlays/eks/flyte/console/service.yaml delete mode 100644 kustomize/overlays/eks/flyte/datacatalog/deployment.yaml delete mode 100644 kustomize/overlays/eks/flyte/datacatalog/service.yaml delete mode 100644 kustomize/overlays/eks/flyte/ingress/README.md delete mode 100644 kustomize/overlays/eks/flyte/ingress/ingress.yaml delete mode 100644 kustomize/overlays/eks/flyte/ingress/ingress_grpc.yaml delete mode 100644 kustomize/overlays/eks/flyte/ingress/kustomization.yaml delete mode 100644 kustomize/overlays/eks/flyte/kustomization.yaml delete mode 100644 kustomize/overlays/eks/flyte/propeller/deployment.yaml delete mode 100644 kustomize/overlays/eks/flyte/propeller/service.yaml delete mode 100644 kustomize/overlays/eks/flyte/propeller/serviceaccount.yaml delete mode 100644 kustomize/overlays/eks/kustomization.yaml delete mode 100644 kustomize/overlays/gcp/README.md delete mode 100644 kustomize/overlays/gcp/flyte/admin/deployment.yaml delete mode 100644 kustomize/overlays/gcp/flyte/admin/service.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/admin/db.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/admin/task_resource_defaults.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/clusterresource-templates/ad_spark-role.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/clusterresource-templates/ae_spark-service-account.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/clusterresource-templates/af_spark-role-binding.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/common/storage.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/datacatalog/db.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/core.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/enabled_plugins.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/plugins/catalog_cache.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/plugins/k8s.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/plugins/qubole.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/plugins/spark.yaml delete mode 100644 kustomize/overlays/gcp/flyte/config/propeller/plugins/task_logs.yaml delete mode 100644 kustomize/overlays/gcp/flyte/console/service.yaml delete mode 100644 kustomize/overlays/gcp/flyte/datacatalog/deployment.yaml delete mode 100644 kustomize/overlays/gcp/flyte/datacatalog/service.yaml delete mode 100644 kustomize/overlays/gcp/flyte/kustomization.yaml delete mode 100644 kustomize/overlays/gcp/flyte/propeller/deployment.yaml delete mode 100644 kustomize/overlays/gcp/flyte/propeller/service.yaml delete mode 100644 kustomize/overlays/gcp/kustomization.yaml delete mode 100644 kustomize/overlays/sandbox/README.md delete mode 100644 kustomize/overlays/sandbox/flyte/admin/deployment.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/admin/db.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/admin/task_resource_defaults.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ad_spark-role.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ae_spark-service-account.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/clusterresource-templates/af_spark-role-binding.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/common/logger.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/common/storage.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/datacatalog/db.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/propeller/enabled_plugins.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/propeller/plugins/k8s.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/propeller/plugins/task_logs.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/config/propeller/resource_manager.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/kustomization.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/propeller/webhook-secret.yaml delete mode 100644 kustomize/overlays/sandbox/flyte/propeller/webhook.yaml delete mode 100644 kustomize/overlays/sandbox/kustomization.yaml delete mode 100644 kustomize/overlays/sandbox/nodeport-services.yaml delete mode 100644 kustomize/overlays/test/flyte/admin/deployment.yaml delete mode 100644 kustomize/overlays/test/flyte/config/admin/db.yaml delete mode 100644 kustomize/overlays/test/flyte/config/common/logger.yaml delete mode 100644 kustomize/overlays/test/flyte/config/common/storage.yaml delete mode 100644 kustomize/overlays/test/flyte/config/datacatalog/db.yaml delete mode 100644 kustomize/overlays/test/flyte/config/propeller/enabled_plugins.yaml delete mode 100644 kustomize/overlays/test/flyte/config/propeller/plugins/k8s.yaml delete mode 100644 kustomize/overlays/test/flyte/config/propeller/resource_manager.yaml delete mode 100644 kustomize/overlays/test/flyte/kustomization.yaml delete mode 100644 kustomize/overlays/test/kustomization.yaml delete mode 100755 script/generate_kustomize.sh 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/tests.yml b/.github/workflows/tests.yml index 831beda79d..28813360de 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -70,16 +70,6 @@ jobs: 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/Makefile b/Makefile index 64af820787..3f35139289 100644 --- a/Makefile +++ b/Makefile @@ -30,10 +30,6 @@ 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 diff --git a/deployment/eks/flyte_generated.yaml b/deployment/eks/flyte_generated.yaml deleted file mode 100644 index b4ee31f106..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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0-b1 - 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.11.0 - 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.11.0-b1 - 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.11.0-b1 - 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/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/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/docs/community/contribute.rst b/docs/community/contribute.rst index e866be5a2c..993cb6bca5 100644 --- a/docs/community/contribute.rst +++ b/docs/community/contribute.rst @@ -151,7 +151,7 @@ To understand how the below components interact with each other, refer to :ref:` * - `Repo `__ * - **Purpose**: Deployment, Documentation, and Issues - * - **Languages**: Kustomize & RST + * - **Languages**: RST To build the Flyte docs locally you will need the following prerequisites: diff --git a/docs/deployment/configuration/customizable_resources.rst b/docs/deployment/configuration/customizable_resources.rst index 6fb1318ac6..29bb7c8ca9 100644 --- a/docs/deployment/configuration/customizable_resources.rst +++ b/docs/deployment/configuration/customizable_resources.rst @@ -170,7 +170,7 @@ apply. .. note:: The template values, for example, ``projectQuotaCpu`` or ``projectQuotaMemory`` are free-form strings. - Ensure that they match the template placeholders in your `template file `__ + Ensure that they match the template placeholders in your values file (e.g. `values-eks.yaml `__) for your changes to take effect and custom values to be substituted. You can view all custom cluster-resource-attributes by visiting ``protocol://`` diff --git a/docs/deployment/deployment/index.rst b/docs/deployment/deployment/index.rst index eb06d0a6c0..0a44f437ef 100644 --- a/docs/deployment/deployment/index.rst +++ b/docs/deployment/deployment/index.rst @@ -93,8 +93,7 @@ There are three different paths for deploying a Flyte cluster: Helm ==== -Flyte uses `Helm `__ as the K8s release packaging solution, though you may still see some old -`Kustomize `__ artifacts in the `flyte `__ repo. The core Flyte +Flyte uses `Helm `__ as the K8s release packaging solution. The core Flyte team maintains Helm charts that correspond with the latter two deployment paths. .. note:: diff --git a/kustomize/README.md b/kustomize/README.md deleted file mode 100644 index 69a9c10d0c..0000000000 --- a/kustomize/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Install Flyte using Kustomize -Flyte can be deployed to a kubernetes cluster using a generated deployment yaml file. This file is generated using [Kustomize](https://kubectl.docs.kubernetes.io/guides/introduction/kustomize/). -Please refer to Kustomize documentation to see how it works. - -In brief, Kustomize allows composing a deployment yaml using multiple components. In Flyte all the core components are listed under [Base Components](./base). The Base components also consist of -a composed set of components that can be deployed to a [Single Kubernetes cluster](./base/single_cluster). This deployment configures various components using [Flyte Configuration -system](todo). - -The *Single Cluster* configuration on its own is not deployable. But individual [overlays](./overlays) are deployable. - -Refer to -1. [Base Components](./base): If you want to build your own overlay start here -1. [overlays](./overlays): If you want to build on top of an existing overlay start here diff --git a/kustomize/base/README.md b/kustomize/base/README.md deleted file mode 100644 index b0bb224d24..0000000000 --- a/kustomize/base/README.md +++ /dev/null @@ -1,19 +0,0 @@ -[Back to main menu](../) -# Base Components for Flyte -These deployments provide individual deployment units of the Flyte Backend. - -As a user it might be preferable to use the `single_cluster` deployment base to create an overlay on top of, or directly edit on top of one of the existing overlays. - -## To create a new flyte overlay for one K8s cluster - Start here -- [Single Cluster Flyte Deployment configuration](./single_cluster) - -## To create a completely custom overlay refer to components -1. FlyteAdmin [Deployment](./admindeployment) | [ServiceAccount](./adminserviceaccount) -1. [Core Flyte namespace creation](./namespace) -1. [FlytePropeller](./propeller) & its [CRD](./wf_crd) -1. [DataCatalog](./datacatalog) -1. [FlyteConsole](./console) -1. [Overall Ingress for Flyte (optional)](./ingress) -1. [Additional plugin components for Flyte using K8s operators](./operators) - diff --git a/kustomize/base/addons/cloudsqlproxy/deployment.yaml b/kustomize/base/addons/cloudsqlproxy/deployment.yaml deleted file mode 100644 index dda31d1004..0000000000 --- a/kustomize/base/addons/cloudsqlproxy/deployment.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: cloudsqlproxy - namespace: flyte - labels: - app: cloudsqlproxy -spec: - replicas: 1 - selector: - matchLabels: - app: cloudsqlproxy - template: - metadata: - labels: - app: cloudsqlproxy - spec: - containers: - - name: cloudsql-proxy - image: gcr.io/cloudsql-docker/gce-proxy:1.16 - imagePullPolicy: IfNotPresent - # TODO: replace with the GCP project ID and with the region where - # Cloud SQL runs - command: ["/cloud_sql_proxy", "-instances=::flyte=tcp:0.0.0.0:5432"] - ports: - - containerPort: 5432 diff --git a/kustomize/base/addons/cloudsqlproxy/kustomization.yaml b/kustomize/base/addons/cloudsqlproxy/kustomization.yaml deleted file mode 100644 index 6d1374a18e..0000000000 --- a/kustomize/base/addons/cloudsqlproxy/kustomization.yaml +++ /dev/null @@ -1,3 +0,0 @@ -resources: - - deployment.yaml - - service.yaml diff --git a/kustomize/base/addons/cloudsqlproxy/service.yaml b/kustomize/base/addons/cloudsqlproxy/service.yaml deleted file mode 100644 index 68ba5d2213..0000000000 --- a/kustomize/base/addons/cloudsqlproxy/service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: cloudsqlproxy - namespace: flyte -spec: - selector: - app: cloudsqlproxy - ports: - - name: http - protocol: TCP - port: 5432 diff --git a/kustomize/base/addons/contour_ingress_controller/kustomization.yaml b/kustomize/base/addons/contour_ingress_controller/kustomization.yaml deleted file mode 100644 index e75e137804..0000000000 --- a/kustomize/base/addons/contour_ingress_controller/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -resources: -- https://raw.githubusercontent.com/projectcontour/contour/release-1.13/examples/render/contour.yaml -patchesStrategicMerge: -- service.yaml diff --git a/kustomize/base/addons/contour_ingress_controller/service.yaml b/kustomize/base/addons/contour_ingress_controller/service.yaml deleted file mode 100644 index a848798e11..0000000000 --- a/kustomize/base/addons/contour_ingress_controller/service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Service -apiVersion: v1 -kind: Service -metadata: - name: envoy - namespace: projectcontour -spec: - # use NodePort to make sure the service is accessible - type: NodePort - ports: - - port: 80 - name: http - protocol: TCP - nodePort: 30081 diff --git a/kustomize/base/addons/database/database.yaml b/kustomize/base/addons/database/database.yaml deleted file mode 100644 index de17063c4c..0000000000 --- a/kustomize/base/addons/database/database.yaml +++ /dev/null @@ -1,41 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: postgres - namespace: flyte -spec: - selector: - matchLabels: - app: postgres - template: - metadata: - labels: - app: postgres - spec: - volumes: - - name: postgres-storage - emptyDir: {} - containers: - - image: postgres - name: postgres - env: - - name: POSTGRES_HOST_AUTH_METHOD - value: trust - ports: - - containerPort: 5432 - name: postgres - volumeMounts: - - name: postgres-storage - mountPath: /var/lib/postgresql/data ---- -apiVersion: v1 -kind: Service -metadata: - name: postgres - namespace: flyte -spec: - ports: - - port: 5432 - selector: - app: postgres diff --git a/kustomize/base/addons/database/kustomization.yaml b/kustomize/base/addons/database/kustomization.yaml deleted file mode 100644 index ca2ede8d46..0000000000 --- a/kustomize/base/addons/database/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- database.yaml diff --git a/kustomize/base/addons/kubernetes_dashboard/clusterrolebinding.yaml b/kustomize/base/addons/kubernetes_dashboard/clusterrolebinding.yaml deleted file mode 100644 index 76fd3fc503..0000000000 --- a/kustomize/base/addons/kubernetes_dashboard/clusterrolebinding.yaml +++ /dev/null @@ -1,12 +0,0 @@ -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 diff --git a/kustomize/base/addons/kubernetes_dashboard/deployment.yaml b/kustomize/base/addons/kubernetes_dashboard/deployment.yaml deleted file mode 100644 index 49299fec08..0000000000 --- a/kustomize/base/addons/kubernetes_dashboard/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: kubernetes-dashboard - namespace: kubernetes-dashboard -spec: - template: - spec: - containers: - - name: kubernetes-dashboard - args: - - --namespace=kubernetes-dashboard - - --enable-insecure-login - - --enable-skip-login - - --disable-settings-authorizer diff --git a/kustomize/base/addons/kubernetes_dashboard/kustomization.yaml b/kustomize/base/addons/kubernetes_dashboard/kustomization.yaml deleted file mode 100644 index 22384dfe0f..0000000000 --- a/kustomize/base/addons/kubernetes_dashboard/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -resources: - # TODO (jeev): Figure out how to rev this automatically -- https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/alternative.yaml -- clusterrolebinding.yaml -patchesStrategicMerge: -- deployment.yaml -- service.yaml diff --git a/kustomize/base/addons/kubernetes_dashboard/service.yaml b/kustomize/base/addons/kubernetes_dashboard/service.yaml deleted file mode 100644 index c08a9308c8..0000000000 --- a/kustomize/base/addons/kubernetes_dashboard/service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: kubernetes-dashboard - namespace: kubernetes-dashboard -spec: - type: NodePort - ports: - - port: 80 - name: http - protocol: TCP - nodePort: 30082 diff --git a/kustomize/base/addons/redis/deployment.yaml b/kustomize/base/addons/redis/deployment.yaml deleted file mode 100644 index 1f1381dae8..0000000000 --- a/kustomize/base/addons/redis/deployment.yaml +++ /dev/null @@ -1,59 +0,0 @@ -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: redis - 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: - - name: redis-data - emptyDir: {} diff --git a/kustomize/base/addons/redis/kustomization.yaml b/kustomize/base/addons/redis/kustomization.yaml deleted file mode 100644 index a944d005ca..0000000000 --- a/kustomize/base/addons/redis/kustomization.yaml +++ /dev/null @@ -1,3 +0,0 @@ -resources: -- deployment.yaml -- service.yaml diff --git a/kustomize/base/addons/redis/service.yaml b/kustomize/base/addons/redis/service.yaml deleted file mode 100644 index 8c86264ae3..0000000000 --- a/kustomize/base/addons/redis/service.yaml +++ /dev/null @@ -1,16 +0,0 @@ -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 diff --git a/kustomize/base/addons/storage/kustomization.yaml b/kustomize/base/addons/storage/kustomization.yaml deleted file mode 100644 index 9a80610c4e..0000000000 --- a/kustomize/base/addons/storage/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- storage.yaml diff --git a/kustomize/base/addons/storage/storage.yaml b/kustomize/base/addons/storage/storage.yaml deleted file mode 100644 index 6c895bc8ff..0000000000 --- a/kustomize/base/addons/storage/storage.yaml +++ /dev/null @@ -1,74 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: minio - namespace: flyte -spec: - selector: - matchLabels: - app: minio - template: - metadata: - labels: - app: minio - spec: - securityContext: - fsGroup: 1001 - runAsUser: 1001 - fsGroupChangePolicy: "OnRootMismatch" - volumes: - - name: minio-storage - emptyDir: {} - containers: - - image: minio - name: minio - env: - - name: MINIO_ACCESS_KEY - value: minio - - name: MINIO_SECRET_KEY - value: miniostorage - - name: MINIO_DEFAULT_BUCKETS - value: my-s3-bucket - ports: - - containerPort: 9000 - name: minio - - containerPort: 9001 - name: minio-console - volumeMounts: - - name: minio-storage - mountPath: /data ---- -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: networking.k8s.io/v1 -kind: Ingress -metadata: - name: minio - namespace: flyte - annotations: - nginx.ingress.kubernetes.io/ssl-redirect: "false" -spec: - rules: - - http: - paths: - - path: /minio - pathType: ImplementationSpecific - backend: - service: - name: minio - port: - number: 9001 diff --git a/kustomize/base/admindeployment/auth_secret.yaml b/kustomize/base/admindeployment/auth_secret.yaml deleted file mode 100644 index 9a1281d776..0000000000 --- a/kustomize/base/admindeployment/auth_secret.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: flyte-admin-auth - namespace: flyte -type: Opaque diff --git a/kustomize/base/admindeployment/clustersync/cron.yaml b/kustomize/base/admindeployment/clustersync/cron.yaml deleted file mode 100644 index e3fbfdfa69..0000000000 --- a/kustomize/base/admindeployment/clustersync/cron.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: batch/v1beta1 -kind: CronJob -metadata: - name: syncresources - namespace: flyte -spec: - schedule: "*/1 * * * *" - jobTemplate: - spec: - template: - spec: - serviceAccountName: flyteadmin - containers: - - name: sync-cluster-resources - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: ["flyteadmin", "--config", "/etc/flyte/config/*.yaml", "clusterresource", "sync"] - volumeMounts: - - name: resource-templates - mountPath: /etc/flyte/clusterresource/templates - - name: config-volume - mountPath: /etc/flyte/config - - name: db-pass - mountPath: /etc/db - volumes: - - name: resource-templates - configMap: - name: clusterresource-template - - name: config-volume - configMap: - name: flyte-admin-config - - name: db-pass - secret: - secretName: db-pass - restartPolicy: OnFailure diff --git a/kustomize/base/admindeployment/clustersync/kustomization.yaml b/kustomize/base/admindeployment/clustersync/kustomization.yaml deleted file mode 100644 index 1ade31b55b..0000000000 --- a/kustomize/base/admindeployment/clustersync/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- cron.yaml diff --git a/kustomize/base/admindeployment/deployment.yaml b/kustomize/base/admindeployment/deployment.yaml deleted file mode 100644 index 561e449034..0000000000 --- a/kustomize/base/admindeployment/deployment.yaml +++ /dev/null @@ -1,157 +0,0 @@ -# Create the actual deployment -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyteadmin - namespace: flyte - labels: - app: flyteadmin -spec: - replicas: 1 - selector: - matchLabels: - app: flyteadmin - template: - metadata: - labels: - app: flyteadmin - app.kubernetes.io/name: flyteadmin - app.kubernetes.io/version: 0.4.13 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - prometheus.io/path: "/metrics" - spec: - securityContext: - fsGroup: 65534 - runAsUser: 1001 - fsGroupChangePolicy: "Always" - serviceAccountName: flyteadmin - volumes: - - name: shared-data - emptyDir: {} - - emptyDir: {} - name: scratch - - name: config-volume - configMap: - name: flyte-admin-config - - name: resource-templates - configMap: - name: clusterresource-template - - name: db-pass - secret: - secretName: db-pass - - name: auth - secret: - secretName: flyte-admin-auth - initContainers: - - name: run-migrations - image: flyteadmin:v0.6.49 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "migrate", - "run", - ] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: db-pass - mountPath: /etc/db - # Optional, These just seed the project - TODO move them to only - - name: seed-projects - image: flyteadmin:v0.6.49 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "migrate", - "seed-projects", - "flytesnacks", - "flytetester", - "flyteexamples", - ] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: db-pass - mountPath: /etc/db - - name: sync-cluster-resources - image: flyteadmin:v0.6.49 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "clusterresource", - "sync", - ] - volumeMounts: - - name: resource-templates - mountPath: /etc/flyte/clusterresource/templates - - name: config-volume - mountPath: /etc/flyte/config - - name: db-pass - mountPath: /etc/db - - name: generate-secrets - image: flyteadmin:v0.6.49 - 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 --fromPath /etc/scratch/secrets", - ] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: scratch - mountPath: /etc/scratch - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - containers: - - name: flyteadmin - image: flyteadmin:v0.6.49 - imagePullPolicy: IfNotPresent - command: - ["flyteadmin", "--config", "/etc/flyte/config/*.yaml", "serve"] - ports: - - containerPort: 8088 - - containerPort: 8089 - volumeMounts: - - name: shared-data - mountPath: /srv/flyte - - name: config-volume - mountPath: /etc/flyte/config - - name: db-pass - mountPath: /etc/db - - name: auth - mountPath: /etc/secrets/ - - name: redoc - image: docker.io/redocly/redoc - imagePullPolicy: IfNotPresent - ports: - - containerPort: 8087 - resources: - limits: - memory: "200Mi" - cpu: "0.1" - 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" diff --git a/kustomize/base/admindeployment/kustomization.yaml b/kustomize/base/admindeployment/kustomization.yaml deleted file mode 100644 index c47adf129d..0000000000 --- a/kustomize/base/admindeployment/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -resources: - - auth_secret.yaml - - deployment.yaml - - service.yaml diff --git a/kustomize/base/admindeployment/service.yaml b/kustomize/base/admindeployment/service.yaml deleted file mode 100644 index 275f1d2185..0000000000 --- a/kustomize/base/admindeployment/service.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Service -apiVersion: v1 -kind: Service -metadata: - name: flyteadmin - namespace: flyte - annotations: - # This tells contour to use a H2 connection for the port associated - # with the name 'grpc' under spec/ports. - # For more information, refer to - # https://github.com/heptio/contour/blob/master/docs/annotations.md#contour-specific-service-annotations - # # Following this issue - the annotation was updated https://github.com/projectcontour/contour/issues/2092 - projectcontour.io/upstream-protocol.h2c: "grpc" -spec: - selector: - app: flyteadmin - ports: - - name: http - protocol: TCP - port: 80 - targetPort: 8088 - - name: grpc - protocol: TCP - port: 81 - targetPort: 8089 diff --git a/kustomize/base/adminserviceaccount/adminserviceaccount.yaml b/kustomize/base/adminserviceaccount/adminserviceaccount.yaml deleted file mode 100644 index bdaae60df4..0000000000 --- a/kustomize/base/adminserviceaccount/adminserviceaccount.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# ClusterRole for flyteadmin -# https://kubernetes.io/docs/admin/authorization/rbac/ -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: flyteadmin - namespace: flyte -rules: -#Allow Access to all resources under flyte.lyft.com and the core API group: "" - - apiGroups: - - "" - - flyte.lyft.com - - rbac.authorization.k8s.io - resources: - - configmaps - - flyteworkflows - - namespaces - - pods - - resourcequotas - - roles - - rolebindings - - secrets - - services - - serviceaccounts - - spark-role - verbs: - - "*" - ---- -# Create a Service Account for FltyeAdmin -apiVersion: v1 -kind: ServiceAccount -metadata: - name: flyteadmin - 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 diff --git a/kustomize/base/adminserviceaccount/kustomization.yaml b/kustomize/base/adminserviceaccount/kustomization.yaml deleted file mode 100644 index 3d4938e1a1..0000000000 --- a/kustomize/base/adminserviceaccount/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- adminserviceaccount.yaml diff --git a/kustomize/base/console/configmap.yaml b/kustomize/base/console/configmap.yaml deleted file mode 100644 index 0fb42a0c1f..0000000000 --- a/kustomize/base/console/configmap.yaml +++ /dev/null @@ -1,10 +0,0 @@ -kind: ConfigMap -apiVersion: v1 -metadata: - name: flyte-console-config - namespace: flyte -data: - # This determines the base url used for all console links. It must match the route specified in ingress.yaml - BASE_URL: /console - CONFIG_DIR: /etc/flyte/config - diff --git a/kustomize/base/console/deployment.yaml b/kustomize/base/console/deployment.yaml deleted file mode 100644 index 0e9e440534..0000000000 --- a/kustomize/base/console/deployment.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# Create the actual deployment -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyteconsole - namespace: flyte - labels: - app: flyteconsole -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: - securityContext: - runAsUser: 1000 - fsGroupChangePolicy: "Always" - volumes: - - name: shared-data - emptyDir: {} - containers: - - name: flyteconsole - image: flyteconsole:v0.19.0 - # args: [] - ports: - - containerPort: 8080 - volumeMounts: - - name: shared-data - mountPath: /srv/flyte - envFrom: - - configMapRef: - name: flyte-console-config diff --git a/kustomize/base/console/kustomization.yaml b/kustomize/base/console/kustomization.yaml deleted file mode 100644 index 81d586a3cd..0000000000 --- a/kustomize/base/console/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -resources: -- deployment.yaml -- service.yaml -- configmap.yaml diff --git a/kustomize/base/console/service.yaml b/kustomize/base/console/service.yaml deleted file mode 100644 index e6d75ffc2f..0000000000 --- a/kustomize/base/console/service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Service -apiVersion: v1 -kind: Service -metadata: - name: flyteconsole - namespace: flyte -spec: - selector: - app: flyteconsole - ports: - - protocol: TCP - port: 80 - targetPort: 8080 - diff --git a/kustomize/base/datacatalog/deployment.yaml b/kustomize/base/datacatalog/deployment.yaml deleted file mode 100644 index 22b2e37235..0000000000 --- a/kustomize/base/datacatalog/deployment.yaml +++ /dev/null @@ -1,60 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: datacatalog - namespace: flyte - labels: - app: datacatalog -spec: - replicas: 1 - selector: - matchLabels: - app: datacatalog - template: - metadata: - labels: - app: datacatalog - app.kubernetes.io/name: datacatalog - app.kubernetes.io/version: 0.3.0 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - prometheus.io/path: "/metrics" - spec: - securityContext: - fsGroup: 65534 - runAsUser: 1001 - fsGroupChangePolicy: "Always" - serviceAccountName: datacatalog - volumes: - - name: shared-data - emptyDir: {} - - name: config-volume - configMap: - name: datacatalog-config - - name: db-pass - secret: - secretName: db-pass - initContainers: - - name: run-migrations - image: datacatalog:v0.3.0 - imagePullPolicy: IfNotPresent - command: ["datacatalog", "--config", "/etc/datacatalog/config/*.yaml", "migrate", "run"] - volumeMounts: - - name: config-volume - mountPath: /etc/datacatalog/config - - name: db-pass - mountPath: /etc/db - containers: - - name: datacatalog - image: datacatalog:v0.3.0 - imagePullPolicy: IfNotPresent - command: ["datacatalog", "--config", "/etc/datacatalog/config/*.yaml", "serve"] - ports: - - containerPort: 8088 - - containerPort: 8089 - volumeMounts: - - name: config-volume - mountPath: /etc/datacatalog/config - - name: db-pass - mountPath: /etc/db diff --git a/kustomize/base/datacatalog/kustomization.yaml b/kustomize/base/datacatalog/kustomization.yaml deleted file mode 100644 index c38e72a98d..0000000000 --- a/kustomize/base/datacatalog/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -resources: -- rbac.yaml -- deployment.yaml -- service.yaml diff --git a/kustomize/base/datacatalog/rbac.yaml b/kustomize/base/datacatalog/rbac.yaml deleted file mode 100644 index 208fb8d1ef..0000000000 --- a/kustomize/base/datacatalog/rbac.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: datacatalog - namespace: flyte diff --git a/kustomize/base/datacatalog/service.yaml b/kustomize/base/datacatalog/service.yaml deleted file mode 100644 index 11c9b58ea2..0000000000 --- a/kustomize/base/datacatalog/service.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Service -apiVersion: v1 -kind: Service -metadata: - name: datacatalog - namespace: flyte - annotations: - # This tells contour to use a H2 connection for the port associated - # with the name 'grpc' under spec/ports. - # For more information, refer to - # https://github.com/heptio/contour/blob/master/docs/annotations.md#contour-specific-service-annotations - contour.heptio.com/upstream-protocol.h2c: "grpc" -spec: - selector: - app: datacatalog - ports: - - name: http - protocol: TCP - port: 88 - targetPort: 8088 - - name: grpc - protocol: TCP - port: 89 - targetPort: 8089 diff --git a/kustomize/base/ingress/ingress.yaml b/kustomize/base/ingress/ingress.yaml deleted file mode 100644 index 99aec4b323..0000000000 --- a/kustomize/base/ingress/ingress.yaml +++ /dev/null @@ -1,193 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: flytesystem - namespace: flyte - annotations: - nginx.ingress.kubernetes.io/ssl-redirect: "false" - nginx.ingress.kubernetes.io/app-root: /console -spec: - rules: - - http: - paths: - # This is useful only for sandbox mode and should be templatized/removed in non-sandbox environments - - path: /__webpack_hmr - pathType: ImplementationSpecific - backend: - service: - name: flyteconsole - port: - number: 80 - # NOTE: Port 81 in flyteadmin is the GRPC server port for - # FlyteAdmin. - - 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: 81 - # Port 87 in FlyteAdmin maps to the redoc container. - - path: /openapi - pathType: ImplementationSpecific - backend: - service: - name: flyteadmin - port: - number: 87 - # NOTE: If you change this, you must update the BASE_URL value in flyteconsole.yaml - - path: /console - pathType: ImplementationSpecific - backend: - service: - name: flyteconsole - port: - number: 80 - - path: /console/* - pathType: ImplementationSpecific - backend: - service: - name: flyteconsole - 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: 80 - # Port 87 in FlyteAdmin maps to the redoc container. - - path: /openapi/* - pathType: ImplementationSpecific - backend: - service: - name: flyteadmin - port: - number: 87 - - 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 - backend: - service: - name: flyteadmin - port: - number: 80 diff --git a/kustomize/base/ingress/kustomization.yaml b/kustomize/base/ingress/kustomization.yaml deleted file mode 100644 index 14d8f3a54f..0000000000 --- a/kustomize/base/ingress/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: - - ingress.yaml diff --git a/kustomize/base/namespace/kustomization.yaml b/kustomize/base/namespace/kustomization.yaml deleted file mode 100644 index bf20f4df68..0000000000 --- a/kustomize/base/namespace/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- namespace.yaml diff --git a/kustomize/base/namespace/namespace.yaml b/kustomize/base/namespace/namespace.yaml deleted file mode 100644 index ca27d7f885..0000000000 --- a/kustomize/base/namespace/namespace.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: flyte diff --git a/kustomize/base/operators/README.md b/kustomize/base/operators/README.md deleted file mode 100644 index 4f6516eb9d..0000000000 --- a/kustomize/base/operators/README.md +++ /dev/null @@ -1 +0,0 @@ -# Install plugins diff --git a/kustomize/base/operators/kfoperators/namespace/kustomization.yaml b/kustomize/base/operators/kfoperators/namespace/kustomization.yaml deleted file mode 100644 index bf20f4df68..0000000000 --- a/kustomize/base/operators/kfoperators/namespace/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- namespace.yaml diff --git a/kustomize/base/operators/kfoperators/namespace/namespace.yaml b/kustomize/base/operators/kfoperators/namespace/namespace.yaml deleted file mode 100644 index 7a940e4673..0000000000 --- a/kustomize/base/operators/kfoperators/namespace/namespace.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: kubeflow diff --git a/kustomize/base/operators/kfoperators/pytorch/kustomization.yaml b/kustomize/base/operators/kfoperators/pytorch/kustomization.yaml deleted file mode 100644 index 7b00dcfb6e..0000000000 --- a/kustomize/base/operators/kfoperators/pytorch/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -bases: - - ../namespace - - github.com/kubeflow/manifests/pytorch-job/pytorch-job-crds/base?ref=v1.0-branch - - github.com/kubeflow/manifests/pytorch-job/pytorch-operator/base?ref=v1.0-branch diff --git a/kustomize/base/operators/kfoperators/tensorflow/kustomization.yaml b/kustomize/base/operators/kfoperators/tensorflow/kustomization.yaml deleted file mode 100644 index 9d7d7b7def..0000000000 --- a/kustomize/base/operators/kfoperators/tensorflow/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -bases: - - ../namespace - - github.com/kubeflow/manifests/tf-training/tf-job-crds/base?ref=v1.0.0 - - github.com/kubeflow/manifests/tf-training/tf-job-operator/base?ref=v1.0.0 diff --git a/kustomize/base/operators/sagemaker/kustomization.yaml b/kustomize/base/operators/sagemaker/kustomization.yaml deleted file mode 100644 index c9ea0aaaba..0000000000 --- a/kustomize/base/operators/sagemaker/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/v1.2.1/release/rolebased/installer.yaml diff --git a/kustomize/base/operators/spark/deployment.yaml b/kustomize/base/operators/spark/deployment.yaml deleted file mode 100644 index e8195ef1a2..0000000000 --- a/kustomize/base/operators/spark/deployment.yaml +++ /dev/null @@ -1,51 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: sparkoperator - namespace: sparkoperator - labels: - app.kubernetes.io/name: sparkoperator - app.kubernetes.io/version: v2.4.5-v1beta2 -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: sparkoperator - strategy: - type: Recreate - template: - metadata: - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - prometheus.io/path: "/metrics" - labels: - app.kubernetes.io/name: sparkoperator - app.kubernetes.io/version: v2.4.5-v1beta2 - spec: - serviceAccountName: sparkoperator - volumes: - - name: webhook-certs - secret: - secretName: spark-webhook-certs - containers: - - name: sparkoperator-unknown - image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5 - volumeMounts: - - name: webhook-certs - mountPath: /etc/webhook-certs - imagePullPolicy: Always - command: ["/usr/bin/spark-operator"] - ports: - - containerPort: 10254 - - containerPort: 8080 - 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 diff --git a/kustomize/base/operators/spark/kustomization.yaml b/kustomize/base/operators/spark/kustomization.yaml deleted file mode 100644 index cfcdd57ab5..0000000000 --- a/kustomize/base/operators/spark/kustomization.yaml +++ /dev/null @@ -1,15 +0,0 @@ -resources: -- spark-operator.yaml -- sparkapplications-crd.yaml -- scheduledsparkapplications-crd.yaml -- deployment.yaml -- webhook.yaml - -vars: - - name: NAMESPACE - objref: - kind: Deployment - name: sparkoperator - apiVersion: apps/v1 - fieldref: - fieldpath: metadata.namespace diff --git a/kustomize/base/operators/spark/scheduledsparkapplications-crd.yaml b/kustomize/base/operators/spark/scheduledsparkapplications-crd.yaml deleted file mode 100644 index 3bda678787..0000000000 --- a/kustomize/base/operators/spark/scheduledsparkapplications-crd.yaml +++ /dev/null @@ -1,3762 +0,0 @@ - ---- -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: [] diff --git a/kustomize/base/operators/spark/spark-operator.yaml b/kustomize/base/operators/spark/spark-operator.yaml deleted file mode 100644 index 43b481768f..0000000000 --- a/kustomize/base/operators/spark/spark-operator.yaml +++ /dev/null @@ -1,56 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: sparkoperator ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: sparkoperator - namespace: sparkoperator ---- -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/v1 -kind: ClusterRoleBinding -metadata: - name: sparkoperator -subjects: - - kind: ServiceAccount - name: sparkoperator - namespace: sparkoperator -roleRef: - kind: ClusterRole - name: sparkoperator - apiGroup: rbac.authorization.k8s.io diff --git a/kustomize/base/operators/spark/sparkapplications-crd.yaml b/kustomize/base/operators/spark/sparkapplications-crd.yaml deleted file mode 100644 index 895d4d0037..0000000000 --- a/kustomize/base/operators/spark/sparkapplications-crd.yaml +++ /dev/null @@ -1,3771 +0,0 @@ - ---- -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: [] diff --git a/kustomize/base/operators/spark/webhook.yaml b/kustomize/base/operators/spark/webhook.yaml deleted file mode 100644 index d09106c6e7..0000000000 --- a/kustomize/base/operators/spark/webhook.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: sparkoperator-init - namespace: sparkoperator - labels: - app.kubernetes.io/name: sparkoperator - app.kubernetes.io/version: v2.4.5-v1beta2 -spec: - backoffLimit: 3 - template: - metadata: - labels: - app.kubernetes.io/name: sparkoperator - app.kubernetes.io/version: v2.4.5-v1beta2 - spec: - serviceAccountName: sparkoperator - restartPolicy: Never - containers: - - name: main - image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5 - imagePullPolicy: IfNotPresent - command: ["/usr/bin/gencerts.sh","--namespace", "$(NAMESPACE)", "-p"] ---- -kind: Service -apiVersion: v1 -metadata: - name: spark-webhook - namespace: sparkoperator -spec: - ports: - - port: 443 - targetPort: 8080 - name: webhook - selector: - app.kubernetes.io/name: sparkoperator diff --git a/kustomize/base/pod_webhook/deployment.yaml b/kustomize/base/pod_webhook/deployment.yaml deleted file mode 100644 index 4209031b9b..0000000000 --- a/kustomize/base/pod_webhook/deployment.yaml +++ /dev/null @@ -1,83 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyte-pod-webhook - namespace: flyte - labels: - app: flyte-pod-webhook -spec: - selector: - matchLabels: - app: flyte-pod-webhook - template: - metadata: - labels: - app: flyte-pod-webhook - app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: 0.5.13 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - prometheus.io/path: "/metrics" - spec: - securityContext: - fsGroup: 65534 - runAsUser: 1001 - fsGroupChangePolicy: "Always" - serviceAccountName: flyte-pod-webhook - initContainers: - - name: generate-secrets - image: flytepropeller:v0.5.13 - imagePullPolicy: IfNotPresent - command: - - flytepropeller - args: - - webhook - - init-certs - - --config - - /etc/flyte/config/*.yaml - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - containers: - - name: webhook - image: flytepropeller:v0.5.13 - imagePullPolicy: IfNotPresent - command: - - flytepropeller - args: - - webhook - - --config - - /etc/flyte/config/*.yaml - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - readOnly: true - - name: webhook-certs - mountPath: /etc/webhook/certs - readOnly: true - volumes: - - name: config-volume - configMap: - name: flyte-propeller-config - - name: webhook-certs - secret: - secretName: flyte-pod-webhook diff --git a/kustomize/base/pod_webhook/kustomization.yaml b/kustomize/base/pod_webhook/kustomization.yaml deleted file mode 100644 index c1b978c89d..0000000000 --- a/kustomize/base/pod_webhook/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -resources: - - deployment.yaml - - rbac.yaml - - secret.yaml - - service.yaml diff --git a/kustomize/base/pod_webhook/rbac.yaml b/kustomize/base/pod_webhook/rbac.yaml deleted file mode 100644 index 94b3ded0fa..0000000000 --- a/kustomize/base/pod_webhook/rbac.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# Create a ClusterRole for the webhook -# https://kubernetes.io/docs/admin/authorization/rbac/ -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: flyte-pod-webhook - namespace: flyte -rules: - - apiGroups: - - "*" - resources: - - mutatingwebhookconfigurations - - secrets - - pods - - replicasets/finalizers - verbs: - - get - - create - - update - - patch ---- -# Create a Service Account for webhook -apiVersion: v1 -kind: ServiceAccount -metadata: - name: flyte-pod-webhook - namespace: flyte ---- -# Create a binding from Role -> ServiceAccount -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -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 diff --git a/kustomize/base/pod_webhook/secret.yaml b/kustomize/base/pod_webhook/secret.yaml deleted file mode 100644 index b5f37860ce..0000000000 --- a/kustomize/base/pod_webhook/secret.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: flyte-pod-webhook - namespace: flyte -type: Opaque diff --git a/kustomize/base/pod_webhook/service.yaml b/kustomize/base/pod_webhook/service.yaml deleted file mode 100644 index 41d86826d7..0000000000 --- a/kustomize/base/pod_webhook/service.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: flyte-pod-webhook - namespace: flyte - annotations: - # This tells contour to use a H2 connection for the port associated - # with the name 'grpc' under spec/ports. - # For more information, refer to - # https://github.com/heptio/contour/blob/master/docs/annotations.md#contour-specific-service-annotations - # # Following this issue - the annotation was updated https://github.com/projectcontour/contour/issues/2092 - projectcontour.io/upstream-protocol.h2c: "grpc" -spec: - selector: - app: flyte-pod-webhook - ports: - - name: https - protocol: TCP - port: 443 - targetPort: 9443 diff --git a/kustomize/base/propeller/auth_secret.yaml b/kustomize/base/propeller/auth_secret.yaml deleted file mode 100644 index a6b978f605..0000000000 --- a/kustomize/base/propeller/auth_secret.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: flyte-secret-auth - namespace: flyte -type: Opaque -stringData: - client_secret: foobar diff --git a/kustomize/base/propeller/deployment.yaml b/kustomize/base/propeller/deployment.yaml deleted file mode 100644 index 8df9e9ca07..0000000000 --- a/kustomize/base/propeller/deployment.yaml +++ /dev/null @@ -1,60 +0,0 @@ -# Create the actual deployment -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flytepropeller - namespace: flyte - labels: - app: flytepropeller -spec: - selector: - matchLabels: - app: flytepropeller - template: - metadata: - labels: - app: flytepropeller - app.kubernetes.io/name: flytepropeller - app.kubernetes.io/version: 0.7.1 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - prometheus.io/path: "/metrics" - spec: - securityContext: - fsGroup: 65534 - runAsUser: 1001 - fsGroupChangePolicy: "Always" - serviceAccountName: flytepropeller - volumes: - - name: config-volume - configMap: - name: flyte-propeller-config - - name: auth - secret: - secretName: flyte-secret-auth - containers: - - name: flytepropeller - image: flytepropeller:v0.7.1 - command: - - flytepropeller - args: - - --config - - /etc/flyte/config/*.yaml - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - imagePullPolicy: IfNotPresent - ports: - - containerPort: 10254 - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: auth - mountPath: /etc/secrets/ diff --git a/kustomize/base/propeller/kustomization.yaml b/kustomize/base/propeller/kustomization.yaml deleted file mode 100644 index a558adcc2c..0000000000 --- a/kustomize/base/propeller/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -resources: - - auth_secret.yaml - - deployment.yaml - - rbac.yaml diff --git a/kustomize/base/propeller/rbac.yaml b/kustomize/base/propeller/rbac.yaml deleted file mode 100644 index 3e0811ac79..0000000000 --- a/kustomize/base/propeller/rbac.yaml +++ /dev/null @@ -1,89 +0,0 @@ -# Create a ClusterRole for flytepropeller -# https://kubernetes.io/docs/admin/authorization/rbac/ -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: flytepropeller -rules: -#Allow RO access to PODS - - apiGroups: - - "" - resources: - - pods - verbs: - - get - - list - - watch -#Allow Event recording access - - apiGroups: - - "" - resources: - - events - verbs: - - create - - update - - delete - - patch -#Allow Access All plugin objects - - apiGroups: - - "*" - resources: - - "*" - verbs: - - get - - list - - watch - - create - - update - - delete - - patch -#Allow Access to CRD - - apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - get - - list - - watch - - create - - delete - - update -#Allow Access to all resources under flyte.lyft.com - - apiGroups: - - flyte.lyft.com - resources: - - flyteworkflows - - flyteworkflows/finalizers - verbs: - - get - - list - - watch - - create - - update - - delete - - patch - - post - - deletecollection ---- -# Create a Service Account for Flytepropeller -apiVersion: v1 -kind: ServiceAccount -metadata: - name: flytepropeller - namespace: flyte ---- -# Create a binding from Role -> ServiceAccount -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: flytepropeller - namespace: flyte -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: flytepropeller -subjects: -- kind: ServiceAccount - name: flytepropeller - namespace: flyte diff --git a/kustomize/base/schedulerdeployment/configmap.yaml b/kustomize/base/schedulerdeployment/configmap.yaml deleted file mode 100644 index 6a5b445af5..0000000000 --- a/kustomize/base/schedulerdeployment/configmap.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: flyte-scheduler-config - namespace: flyte - labels: - app.kubernetes.io/name: flytescheduler - app.kubernetes.io/instance: flyte - helm.sh/chart: flyte-v0.1.10 - app.kubernetes.io/managed-by: Helm -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 diff --git a/kustomize/base/schedulerdeployment/deployment.yaml b/kustomize/base/schedulerdeployment/deployment.yaml deleted file mode 100644 index e919a76893..0000000000 --- a/kustomize/base/schedulerdeployment/deployment.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# Create the actual deployment -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flytescheduler - namespace: flyte - labels: - app: flytescheduler -spec: - replicas: 1 - selector: - matchLabels: - app: flytescheduler - template: - metadata: - labels: - app: flytescheduler - app.kubernetes.io/name: flytescheduler - app.kubernetes.io/version: 0.3.4 - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - prometheus.io/path: "/metrics" - spec: - serviceAccountName: flyteadmin - volumes: - - name: config-volume - configMap: - name: flyte-scheduler-config - - name: db-pass - secret: - secretName: db-pass - - name: auth - secret: - secretName: flyte-secret-auth - 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 - 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: - - name: auth - mountPath: /etc/secrets/ - - mountPath: /etc/flyte/config - name: config-volume - - name: db-pass - mountPath: /etc/db diff --git a/kustomize/base/schedulerdeployment/kustomization.yaml b/kustomize/base/schedulerdeployment/kustomization.yaml deleted file mode 100644 index 898fc1587d..0000000000 --- a/kustomize/base/schedulerdeployment/kustomization.yaml +++ /dev/null @@ -1,3 +0,0 @@ -resources: - - deployment.yaml - - configmap.yaml diff --git a/kustomize/base/single_cluster/README.md b/kustomize/base/single_cluster/README.md deleted file mode 100644 index 2934642945..0000000000 --- a/kustomize/base/single_cluster/README.md +++ /dev/null @@ -1,15 +0,0 @@ -[Back to Base components menu](../) -# Flyte Single cluster deployment mode -This allows flyte to be deployed in one Kubernetes cluster. -All components are deployed and can be configured to use dependencies based on the environment. - -To understand configuration of dependencies refer to sandbox or any cloud deployments - -Overlays using the single cluster mode -1. [Sandbox Overlay](../../overlays/sandbox) -1. [GCP SingleCluster Overlay](../../overlays/gcp) -1. [EKS SingleCluster Overlay](../../overlays/eks) - -These overlays are based on [Flyte Single Cluster deployment Configuration base](./complete) - -The complete per component configuration for Flyte can be found [here](./headless/config) diff --git a/kustomize/base/single_cluster/complete/README.md b/kustomize/base/single_cluster/complete/README.md deleted file mode 100644 index 052104b66e..0000000000 --- a/kustomize/base/single_cluster/complete/README.md +++ /dev/null @@ -1,7 +0,0 @@ -[Back to Base components menu](../) -# Flyte Single cluster deployment mode -This provides a complete deployment of Flyte onto a single K8s cluster, it is based on [Headless Cluster](../headless). -The configuration for this deployment is also completely managed in the Headless Cluster configuration. - -This overlay just adds to resource - Sync controller and Flyte Console - diff --git a/kustomize/base/single_cluster/complete/kustomization.yaml b/kustomize/base/single_cluster/complete/kustomization.yaml deleted file mode 100644 index 54a1f14d87..0000000000 --- a/kustomize/base/single_cluster/complete/kustomization.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -bases: -- ../headless - -# All the resources that make up the deployment -resources: -# global resources -- ../../admindeployment/clustersync -- ../../console - -# configMapGenerator: -# TODO Flyte Console Configuration -#- name: flyte-console-config -# files: -# - ./config/console.yaml diff --git a/kustomize/base/single_cluster/headless/README.md b/kustomize/base/single_cluster/headless/README.md deleted file mode 100644 index ddc5573197..0000000000 --- a/kustomize/base/single_cluster/headless/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Flyte Headless cluster - -This is a complete single cluster Flyte deployment with 2 missing features -1. FlyteConsole is not installed - No UI -2. Clustersync manager is not installed - No automatic update of projects and tenant specific information - - -## USE Cases -This configuration is useful in running integration / end to end tests diff --git a/kustomize/base/single_cluster/headless/config/admin/cluster_resources.yaml b/kustomize/base/single_cluster/headless/config/admin/cluster_resources.yaml deleted file mode 100644 index bd2f1dc9d6..0000000000 --- a/kustomize/base/single_cluster/headless/config/admin/cluster_resources.yaml +++ /dev/null @@ -1,19 +0,0 @@ -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 diff --git a/kustomize/base/single_cluster/headless/config/admin/db.yaml b/kustomize/base/single_cluster/headless/config/admin/db.yaml deleted file mode 100644 index 5aefbfb435..0000000000 --- a/kustomize/base/single_cluster/headless/config/admin/db.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# This should be replaced with the db endpoint -# This can be a postgres data base in the cloud like AWS Aurora / AWS RDS, Google Cloud SQL, etc -# Or can be a self hosted Postgres in the cluster -database: - port: 5432 - username: postgres - host: postgres - dbname: postgres - options: sslmode=disable - passwordPath: /etc/db/pass.txt diff --git a/kustomize/base/single_cluster/headless/config/admin/domain.yaml b/kustomize/base/single_cluster/headless/config/admin/domain.yaml deleted file mode 100644 index 9df6ef80a9..0000000000 --- a/kustomize/base/single_cluster/headless/config/admin/domain.yaml +++ /dev/null @@ -1,7 +0,0 @@ -domains: - - id: development - name: development - - id: staging - name: staging - - id: production - name: production diff --git a/kustomize/base/single_cluster/headless/config/admin/server.yaml b/kustomize/base/single_cluster/headless/config/admin/server.yaml deleted file mode 100644 index e13f3ad156..0000000000 --- a/kustomize/base/single_cluster/headless/config/admin/server.yaml +++ /dev/null @@ -1,43 +0,0 @@ -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" diff --git a/kustomize/base/single_cluster/headless/config/admin/task_resource_defaults.yaml b/kustomize/base/single_cluster/headless/config/admin/task_resource_defaults.yaml deleted file mode 100644 index f057182fb5..0000000000 --- a/kustomize/base/single_cluster/headless/config/admin/task_resource_defaults.yaml +++ /dev/null @@ -1,10 +0,0 @@ -task_resources: - defaults: - cpu: 100m - memory: 100Mi - storage: 5Mi - limits: - cpu: 2 - memory: 1Gi - storage: 20Mi - gpu: 1 diff --git a/kustomize/base/single_cluster/headless/config/clusterresource-templates/aa_namespace.yaml b/kustomize/base/single_cluster/headless/config/clusterresource-templates/aa_namespace.yaml deleted file mode 100644 index 3075aa9f9e..0000000000 --- a/kustomize/base/single_cluster/headless/config/clusterresource-templates/aa_namespace.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: {{ namespace }} -spec: - finalizers: - - kubernetes diff --git a/kustomize/base/single_cluster/headless/config/clusterresource-templates/ab_project-resource-quota.yaml b/kustomize/base/single_cluster/headless/config/clusterresource-templates/ab_project-resource-quota.yaml deleted file mode 100644 index ddfade3c29..0000000000 --- a/kustomize/base/single_cluster/headless/config/clusterresource-templates/ab_project-resource-quota.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ResourceQuota -metadata: - name: project-quota - namespace: {{ namespace }} -spec: - hard: - limits.cpu: {{ projectQuotaCpu }} - limits.memory: {{ projectQuotaMemory }} - diff --git a/kustomize/base/single_cluster/headless/config/common/logger.yaml b/kustomize/base/single_cluster/headless/config/common/logger.yaml deleted file mode 100644 index 7fc20650ec..0000000000 --- a/kustomize/base/single_cluster/headless/config/common/logger.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# TODO this is used to control the log level -logger: - show-source: true - level: 2 diff --git a/kustomize/base/single_cluster/headless/config/common/storage.yaml b/kustomize/base/single_cluster/headless/config/common/storage.yaml deleted file mode 100644 index 09e6ec6dec..0000000000 --- a/kustomize/base/single_cluster/headless/config/common/storage.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# TODO This should be changed for the right storage option - e.g. -# hosted blob stores like S3, GCS, AFS etc -# k8s blob store like minio -# For all supported options look at https://github.com/lyft/flytestdlib/blob/master/storage/config.go -storage: - type: mem diff --git a/kustomize/base/single_cluster/headless/config/console/console.yaml b/kustomize/base/single_cluster/headless/config/console/console.yaml deleted file mode 100644 index d1c0cc51dc..0000000000 --- a/kustomize/base/single_cluster/headless/config/console/console.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# This determines the base url used for all console links. It must match the route specified in ingress.yaml -BASE_URL: /console -CONFIG_DIR: /etc/flyte/config diff --git a/kustomize/base/single_cluster/headless/config/datacatalog/db.yaml b/kustomize/base/single_cluster/headless/config/datacatalog/db.yaml deleted file mode 100644 index 479475aa94..0000000000 --- a/kustomize/base/single_cluster/headless/config/datacatalog/db.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# This should be replaced with the db endpoint -# This can be a postgres data base in the cloud like AWS Aurora / AWS RDS, Google Cloud SQL, etc -# Or can be a self hosted Postgres in the cluster -database: - port: 5432 - username: postgres - host: postgres - dbname: datacatalog - options: sslmode=disable - passwordPath: /etc/db/pass.txt diff --git a/kustomize/base/single_cluster/headless/config/datacatalog/server.yaml b/kustomize/base/single_cluster/headless/config/datacatalog/server.yaml deleted file mode 100644 index 1cdd80c27f..0000000000 --- a/kustomize/base/single_cluster/headless/config/datacatalog/server.yaml +++ /dev/null @@ -1,6 +0,0 @@ -datacatalog: - storage-prefix: metadata/datacatalog - metrics-scope: "datacatalog" - profiler-port: 10254 -application: - grpcPort: 8089 diff --git a/kustomize/base/single_cluster/headless/config/propeller/admin.yaml b/kustomize/base/single_cluster/headless/config/propeller/admin.yaml deleted file mode 100644 index 55cf01b83b..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/admin.yaml +++ /dev/null @@ -1,7 +0,0 @@ -event: - type: admin - rate: 500 - capacity: 1000 -admin: - endpoint: flyteadmin:81 - insecure: true diff --git a/kustomize/base/single_cluster/headless/config/propeller/catalog.yaml b/kustomize/base/single_cluster/headless/config/propeller/catalog.yaml deleted file mode 100644 index e70e7bd770..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/catalog.yaml +++ /dev/null @@ -1,4 +0,0 @@ -catalog-cache: - endpoint: datacatalog:89 - type: datacatalog - insecure: true diff --git a/kustomize/base/single_cluster/headless/config/propeller/core.yaml b/kustomize/base/single_cluster/headless/config/propeller/core.yaml deleted file mode 100644 index 055e7a8840..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/core.yaml +++ /dev/null @@ -1,36 +0,0 @@ -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 diff --git a/kustomize/base/single_cluster/headless/config/propeller/enabled_plugins.yaml b/kustomize/base/single_cluster/headless/config/propeller/enabled_plugins.yaml deleted file mode 100644 index ebf4892451..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/enabled_plugins.yaml +++ /dev/null @@ -1,8 +0,0 @@ -## -# TODO It is important to enable the plugins that you want to deploy here. -tasks: - task-plugins: - enabled-plugins: - - container - - sidecar - - k8s-array diff --git a/kustomize/base/single_cluster/headless/config/propeller/plugins/copilot.yaml b/kustomize/base/single_cluster/headless/config/propeller/plugins/copilot.yaml deleted file mode 100644 index 31f483ab6d..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/plugins/copilot.yaml +++ /dev/null @@ -1,6 +0,0 @@ -plugins: - k8s: - co-pilot: - name: "flyte-copilot-" - image: "cr.flyte.org/flyteorg/flytecopilot:v0.0.15" - start-timeout: "30s" diff --git a/kustomize/base/single_cluster/headless/config/propeller/plugins/k8s.yaml b/kustomize/base/single_cluster/headless/config/propeller/plugins/k8s.yaml deleted file mode 100644 index 5097741639..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/plugins/k8s.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# TODO set any custom env vars -plugins: - k8s: - default-env-vars: - - SOME_ENV_VARS: "These get passed to all containers" - default-cpus: 100m - default-memory: 100Mi diff --git a/kustomize/base/single_cluster/headless/config/propeller/resource_manager.yaml b/kustomize/base/single_cluster/headless/config/propeller/resource_manager.yaml deleted file mode 100644 index a4601e8f2d..0000000000 --- a/kustomize/base/single_cluster/headless/config/propeller/resource_manager.yaml +++ /dev/null @@ -1,7 +0,0 @@ -propeller: - resourcemanager: - type: redis - resourceMaxQuota: 10000 - redis: - hostPath: redis-resource-manager:6379 - hostKey: mypassword diff --git a/kustomize/base/single_cluster/headless/kustomization.yaml b/kustomize/base/single_cluster/headless/kustomization.yaml deleted file mode 100644 index 8e6067e997..0000000000 --- a/kustomize/base/single_cluster/headless/kustomization.yaml +++ /dev/null @@ -1,63 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -# All the resources that make up the deployment -resources: - # global resources - - ../../namespace - - ../../admindeployment - - ../../schedulerdeployment - - ../../datacatalog - - ../../wf_crd - - ../../pod_webhook - - ../../propeller - - ../../adminserviceaccount - -configMapGenerator: - # the main admin configmap - - name: flyte-admin-config - files: - - ./config/admin/server.yaml - - ./config/admin/domain.yaml - - ./config/admin/db.yaml - - ./config/admin/cluster_resources.yaml - - ./config/admin/task_resource_defaults.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - - # cluster resource templates - - name: clusterresource-template - files: - # Files are read in alphabetical order. To ensure that we create the namespace first, prefix the file name with "aa". - - ./config/clusterresource-templates/aa_namespace.yaml - - ./config/clusterresource-templates/ab_project-resource-quota.yaml - - # Flyte Propeller Configuration - - name: flyte-propeller-config - files: - - ./config/propeller/core.yaml - - ./config/propeller/admin.yaml - - ./config/propeller/catalog.yaml - - ./config/propeller/resource_manager.yaml - - ./config/propeller/enabled_plugins.yaml - - ./config/propeller/plugins/copilot.yaml - - ./config/propeller/plugins/k8s.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - - # TODO Flyte Console Configuration - #- name: flyte-console-config - # files: - # - ./config/console.yaml - - - name: datacatalog-config - files: - - ./config/datacatalog/server.yaml - - ./config/datacatalog/db.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - -secretGenerator: - - name: db-pass - literals: - - pass.txt="awesomesauce" diff --git a/kustomize/base/wf_crd/kustomization.yaml b/kustomize/base/wf_crd/kustomization.yaml deleted file mode 100644 index 6f680eaac2..0000000000 --- a/kustomize/base/wf_crd/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- wf_crd.yaml diff --git a/kustomize/base/wf_crd/wf_crd.yaml b/kustomize/base/wf_crd/wf_crd.yaml deleted file mode 100644 index 3cd3c3eb17..0000000000 --- a/kustomize/base/wf_crd/wf_crd.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - # name must match the spec fields below, and be in the form: . - name: flyteworkflows.flyte.lyft.com -spec: - # group name to use for REST API: /apis// - group: flyte.lyft.com - # either Namespaced or Cluster - names: - # plural name to be used in the URL: /apis/// - plural: flyteworkflows - # singular name to be used as an alias on the CLI and for display - singular: flyteworkflow - # kind is normally the CamelCased singular type. Your resource manifests use this. - kind: FlyteWorkflow - # shortNames allow shorter string to match your resource on the CLI - shortNames: - - fly - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/kustomize/overlays/README.md b/kustomize/overlays/README.md deleted file mode 100644 index 63ed238e9e..0000000000 --- a/kustomize/overlays/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Deploy Flyte using one of the given overlays - -To start a deployment use one of the following overlays as a starting point. If you are just playing around with Flyte, use Sandbox overlay - and preferably the pre-generated yaml - available [here](../../deployment/sandbox/flyte_generated.yaml) - -1. [Sandbox](./sandbox) : A pre-configured overlay to deploy a complete standalone cluster onto a local k8s cluster -1. [GCP](./gcp): An almost configured overlay to deploy a production ready cluster to GCP. Some modifications needed for your environment -1. [EKS](./eks): An almost configured overlay to deploy a production ready cluster to AWS. Some modifications needed for your environment diff --git a/kustomize/overlays/eks/README.md b/kustomize/overlays/eks/README.md deleted file mode 100644 index 8873542337..0000000000 --- a/kustomize/overlays/eks/README.md +++ /dev/null @@ -1,73 +0,0 @@ -[All Overlays](./) -# :construction: Amazon EKS deployment - -This overlay serves as an example to bootstrap Flyte setup on AWS. It is not -designed to work out of the box due to the need of AWS resources. Please follow the instruction -below to further configure. - -_Hint_: searching `TODO:` through this directory would help to understand what needs to be done. - -## Amazon RDS / Amazon Aurora - -A few things are required for this overlay to function: - -* Two databases named as `flyte` and `datacatalog` -* A database user named as `flyte` -* Password of the database user can be added to either to [kustomization.yaml](kustomization.yaml) or you can create a new file and change the secretGenerator tag to use files. (Refer to kustomize documentation) -* Service account(s) associated with `flyteadmin` and `datacatalog` pods (either as GKE cluster - service account or through workload identity) should have `Cloud SQL Editor` role - -## Create S3 bucket -1. Create a S3 bucket named as `flyte` (if other name replace it next) -1. Replace in [config/common/storage.yaml](flyte/config/common/storage.yaml) if using a bucket other than Flyte then replace the bucket name too - -## flyteadmin - -flyteadmin configuration is derived from the [single cluster](../../base/single_cluster) overlay, with only modification to [database configuration db.yaml](flyte/config/admin/db.yaml) - -**Advanced / OPTIONAL** -1. The default CORS setting in flyteAdmin allows cross origin requests. A more secure way would be to allow requests only from the expected domain. To do this, you will have to create a new *server.yaml* -similar to [base/single_cluster/headless/config](../../base/single_cluster/headless/config) under config/admin and then set -`server -> security -> allowedOrigins`. - -## flyteconsole - -[flyteconsole configmap](console/config.yaml) needs to be updated with flyteadmin internal load -balancer IP address or the DNS name associated with it if any. - -flyteconsole is exposed as a service using [internal load balancer](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing). - -## flytepropeller - -flytepropeller configuration is derived from the [single cluster](../../base/single_cluster) overlay, with only modification to the config for performance tuning and logs -For logs configuration Replace `` in [config/propeller/plugins/task_logs.yaml](flyte/config/propeller/plugins/task_logs.yaml) to use CloudWatch - -Some important points - -* Storage configuration is shared with Admin and Catalog. Ideally in production Propeller should have its own configuration with real high cache size. - -* By default, three plugins are enabled: -1. container -2. k8s-array -3. sidecar - -## datacatalog - -datacatalog configuration is derived from the [single cluster](../../base/single_cluster) overlay, with only modification to [database configuration db.yaml](flyte/config/datacatalog/db.yaml) - - -## How to build your overlay -To build your overlay there are 2 options -1. Build it in your own repo Example coming soon :construction: -1. hack it in your clone of Flyte repo in place of EKS overlay. In this case just navigate to the root of the repo and run -```bash -$ make kustomize -``` -If all goes well a new overlay composite should be generated in [/deployment/eks/flyte_generated.yaml](../../../deployment/eks/flyte_generated.yaml) - -## Now ship it - -``` shell -make -kubectl apply -f deployment/gcp/flyte_generated.yaml -``` diff --git a/kustomize/overlays/eks/flyte/admin/deployment.yaml b/kustomize/overlays/eks/flyte/admin/deployment.yaml deleted file mode 100644 index b581a3dba1..0000000000 --- a/kustomize/overlays/eks/flyte/admin/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyteadmin - namespace: flyte -spec: - template: - spec: - containers: - - name: flyteadmin - resources: - limits: - memory: "1Gi" - cpu: "2" - ephemeral-storage: "1Gi" diff --git a/kustomize/overlays/eks/flyte/admin/service.yaml b/kustomize/overlays/eks/flyte/admin/service.yaml deleted file mode 100644 index de61a74fde..0000000000 --- a/kustomize/overlays/eks/flyte/admin/service.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: - service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600" - # TODO add security groups - service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: "sg-...,sg-...,sg-..." - # TODO alter domain - external-dns.alpha.kubernetes.io/hostname: "flyteadmin.subdomain.mydomain.com" - name: flyteadmin - namespace: flyte -spec: - loadBalancerSourceRanges: - # TODO change source ip range if desired - - 0.0.0.0 - ports: - # TODO do multiple ports work for ELB - - name: http - port: 80 - protocol: TCP - targetPort: 8088 - - name: grpc - port: 80 - protocol: TCP - targetPort: 8089 - selector: - app: flyteadmin - type: LoadBalancer diff --git a/kustomize/overlays/eks/flyte/admin/serviceaccount.yaml b/kustomize/overlays/eks/flyte/admin/serviceaccount.yaml deleted file mode 100644 index cf30eaa74a..0000000000 --- a/kustomize/overlays/eks/flyte/admin/serviceaccount.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: flyteadmin - namespace: flyte - annotations: - eks.amazonaws.com/role-arn: "arn:aws:iam::111222333456:role/flyte-operator" - diff --git a/kustomize/overlays/eks/flyte/config/admin/db.yaml b/kustomize/overlays/eks/flyte/config/admin/db.yaml deleted file mode 100644 index d44ef2329d..0000000000 --- a/kustomize/overlays/eks/flyte/config/admin/db.yaml +++ /dev/null @@ -1,7 +0,0 @@ -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 diff --git a/kustomize/overlays/eks/flyte/config/admin/task_resource_defaults.yaml b/kustomize/overlays/eks/flyte/config/admin/task_resource_defaults.yaml deleted file mode 100644 index 06870c232b..0000000000 --- a/kustomize/overlays/eks/flyte/config/admin/task_resource_defaults.yaml +++ /dev/null @@ -1,10 +0,0 @@ -task_resources: - defaults: - cpu: 1000m - memory: 1000Mi - storage: 1000Mi - limits: - cpu: 2 - memory: 8Gi - storage: 2000Mi - gpu: 1 diff --git a/kustomize/overlays/eks/flyte/config/clusterresource-templates/ad_spark-role.yaml b/kustomize/overlays/eks/flyte/config/clusterresource-templates/ad_spark-role.yaml deleted file mode 100644 index 51998e3051..0000000000 --- a/kustomize/overlays/eks/flyte/config/clusterresource-templates/ad_spark-role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -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: - - '*' diff --git a/kustomize/overlays/eks/flyte/config/clusterresource-templates/ae_spark-service-account.yaml b/kustomize/overlays/eks/flyte/config/clusterresource-templates/ae_spark-service-account.yaml deleted file mode 100644 index dddd8d2742..0000000000 --- a/kustomize/overlays/eks/flyte/config/clusterresource-templates/ae_spark-service-account.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: spark - namespace: {{ namespace }} diff --git a/kustomize/overlays/eks/flyte/config/clusterresource-templates/af_spark-role-binding.yaml b/kustomize/overlays/eks/flyte/config/clusterresource-templates/af_spark-role-binding.yaml deleted file mode 100644 index 2e9c8ae765..0000000000 --- a/kustomize/overlays/eks/flyte/config/clusterresource-templates/af_spark-role-binding.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: spark-role-binding - namespace: {{ namespace }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: spark-role -subjects: -- kind: ServiceAccount - name: spark - namespace: {{ namespace }} - diff --git a/kustomize/overlays/eks/flyte/config/common/storage.yaml b/kustomize/overlays/eks/flyte/config/common/storage.yaml deleted file mode 100644 index 39dd393112..0000000000 --- a/kustomize/overlays/eks/flyte/config/common/storage.yaml +++ /dev/null @@ -1,17 +0,0 @@ -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 diff --git a/kustomize/overlays/eks/flyte/config/datacatalog/db.yaml b/kustomize/overlays/eks/flyte/config/datacatalog/db.yaml deleted file mode 100644 index 6be110650d..0000000000 --- a/kustomize/overlays/eks/flyte/config/datacatalog/db.yaml +++ /dev/null @@ -1,7 +0,0 @@ -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 diff --git a/kustomize/overlays/eks/flyte/config/propeller/core.yaml b/kustomize/overlays/eks/flyte/config/propeller/core.yaml deleted file mode 100644 index baa8c6b261..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/core.yaml +++ /dev/null @@ -1,40 +0,0 @@ -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" diff --git a/kustomize/overlays/eks/flyte/config/propeller/enabled_plugins.yaml b/kustomize/overlays/eks/flyte/config/propeller/enabled_plugins.yaml deleted file mode 100644 index 9e4644ac18..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/enabled_plugins.yaml +++ /dev/null @@ -1,15 +0,0 @@ -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 diff --git a/kustomize/overlays/eks/flyte/config/propeller/plugins/catalog_cache.yaml b/kustomize/overlays/eks/flyte/config/propeller/plugins/catalog_cache.yaml deleted file mode 100644 index 3678fbbc89..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/plugins/catalog_cache.yaml +++ /dev/null @@ -1,6 +0,0 @@ -plugins: - catalogCache: - reader: - maxItems: 10000 - writer: - maxItems: 10000 diff --git a/kustomize/overlays/eks/flyte/config/propeller/plugins/k8s.yaml b/kustomize/overlays/eks/flyte/config/propeller/plugins/k8s.yaml deleted file mode 100644 index 8fe068397f..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/plugins/k8s.yaml +++ /dev/null @@ -1,8 +0,0 @@ -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 diff --git a/kustomize/overlays/eks/flyte/config/propeller/plugins/qubole.yaml b/kustomize/overlays/eks/flyte/config/propeller/plugins/qubole.yaml deleted file mode 100644 index ea34d2752b..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/plugins/qubole.yaml +++ /dev/null @@ -1,3 +0,0 @@ -plugins: - qubole: - quboleTokenKey: "FLYTE_QUBOLE_CLIENT_TOKEN" diff --git a/kustomize/overlays/eks/flyte/config/propeller/plugins/spark.yaml b/kustomize/overlays/eks/flyte/config/propeller/plugins/spark.yaml deleted file mode 100644 index 6b514a8c36..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/plugins/spark.yaml +++ /dev/null @@ -1,20 +0,0 @@ -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" diff --git a/kustomize/overlays/eks/flyte/config/propeller/plugins/task_logs.yaml b/kustomize/overlays/eks/flyte/config/propeller/plugins/task_logs.yaml deleted file mode 100644 index 6e46cde9c2..0000000000 --- a/kustomize/overlays/eks/flyte/config/propeller/plugins/task_logs.yaml +++ /dev/null @@ -1,10 +0,0 @@ -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: diff --git a/kustomize/overlays/eks/flyte/console/service.yaml b/kustomize/overlays/eks/flyte/console/service.yaml deleted file mode 100644 index 7dcaed5d8b..0000000000 --- a/kustomize/overlays/eks/flyte/console/service.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: - service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "600" - # TODO add your security groups here - service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: "sg-....,sg-...,sg-..." - # TODO add your external dns here - external-dns.alpha.kubernetes.io/hostname: "flyte.subdomain.mydomain.com" - name: flyteconsole - namespace: flyte -spec: - loadBalancerSourceRanges: - # TODO limit source ranges if you want - - 0.0.0.0 - ports: - - name: http - port: 80 - protocol: TCP - targetPort: 8080 - selector: - app: flyteconsole - type: LoadBalancer diff --git a/kustomize/overlays/eks/flyte/datacatalog/deployment.yaml b/kustomize/overlays/eks/flyte/datacatalog/deployment.yaml deleted file mode 100644 index 1035dac5a0..0000000000 --- a/kustomize/overlays/eks/flyte/datacatalog/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: datacatalog - namespace: flyte -spec: - template: - spec: - containers: - - name: datacatalog - resources: - limits: - memory: "1Gi" - cpu: "2" - ephemeral-storage: "1000Mi" diff --git a/kustomize/overlays/eks/flyte/datacatalog/service.yaml b/kustomize/overlays/eks/flyte/datacatalog/service.yaml deleted file mode 100644 index 70e95295ab..0000000000 --- a/kustomize/overlays/eks/flyte/datacatalog/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: datacatalog-metrics - namespace: flyte - annotations: - cloud.google.com/load-balancer-type: Internal -spec: - selector: - app: datacatalog - type: LoadBalancer - ports: - - name: http-metrics - protocol: TCP - port: 10254 diff --git a/kustomize/overlays/eks/flyte/ingress/README.md b/kustomize/overlays/eks/flyte/ingress/README.md deleted file mode 100644 index 28fa058659..0000000000 --- a/kustomize/overlays/eks/flyte/ingress/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# :construction: Instructions to deploy ALB Ingress controller - -Follow instructions here to install ALB Ingress Controller: https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html - -Replace `alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6` in ingress.yaml and ingress_grpc.yaml with your own SSL cert (that you will create by following ALB Instructions above) diff --git a/kustomize/overlays/eks/flyte/ingress/ingress.yaml b/kustomize/overlays/eks/flyte/ingress/ingress.yaml deleted file mode 100644 index 05b6ba465e..0000000000 --- a/kustomize/overlays/eks/flyte/ingress/ingress.yaml +++ /dev/null @@ -1,157 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: flytesystem - namespace: flyte - annotations: - kubernetes.io/ingress.class: alb - alb.ingress.kubernetes.io/tags: service_instance=production - alb.ingress.kubernetes.io/scheme: internet-facing - alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' - alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}' - - # Instruct ALB Controller to not create multiple load balancers (and hence maintain a single endpoint for both GRPC and Http) - alb.ingress.kubernetes.io/group.name: flytesystem - - # Replace certificate Arn with one deployed to your EKS cluster. Follow instructions in README.md - alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6 - labels: - app: flyteadmin -spec: - rules: - - http: - paths: - - path: /* - pathType: ImplementationSpecific - backend: - service: - name: ssl-redirect - port: - name: use-annotation - - path: /console - pathType: ImplementationSpecific - backend: - service: - name: flyteconsole - port: - number: 80 - - path: /console/* - pathType: ImplementationSpecific - backend: - service: - name: flyteconsole - 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: 80 - # Port 87 in FlyteAdmin maps to the redoc container. - - path: /openapi/* - pathType: ImplementationSpecific - backend: - service: - name: flyteadmin - port: - number: 87 - - 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 - backend: - service: - name: flyteadmin - port: - number: 80 diff --git a/kustomize/overlays/eks/flyte/ingress/ingress_grpc.yaml b/kustomize/overlays/eks/flyte/ingress/ingress_grpc.yaml deleted file mode 100644 index bfc75f6d35..0000000000 --- a/kustomize/overlays/eks/flyte/ingress/ingress_grpc.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -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/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" - alb.ingress.kubernetes.io/group.name: flytesystem - - # Replace certificate Arn with one deployed to your EKS cluster. Follow instructions in README.md - alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-2:111111111111:certificate/e92fefd8-6197-4249-a524-431d611c9af6 - 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/kustomize/overlays/eks/flyte/ingress/kustomization.yaml b/kustomize/overlays/eks/flyte/ingress/kustomization.yaml deleted file mode 100644 index 2cb8f8d97a..0000000000 --- a/kustomize/overlays/eks/flyte/ingress/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: - - ingress.yaml - - ingress_grpc.yaml diff --git a/kustomize/overlays/eks/flyte/kustomization.yaml b/kustomize/overlays/eks/flyte/kustomization.yaml deleted file mode 100644 index cdc206dca1..0000000000 --- a/kustomize/overlays/eks/flyte/kustomization.yaml +++ /dev/null @@ -1,62 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -# Override the namespace -namespace: flyte - -bases: - - ../../../base/single_cluster/complete - - ingress - -resources: - - datacatalog/service.yaml - - propeller/service.yaml - -patchesStrategicMerge: - - admin/deployment.yaml - - admin/service.yaml - - admin/serviceaccount.yaml - - datacatalog/deployment.yaml - - propeller/deployment.yaml - - propeller/serviceaccount.yaml - - console/service.yaml - -# Files are read in alphabetical order. To ensure that we create the namespace first, prefix the file name with "aa". - -configMapGenerator: - - behavior: merge - files: - - ./config/admin/db.yaml - - ./config/admin/task_resource_defaults.yaml - - ./config/common/storage.yaml - name: flyte-admin-config - - behavior: merge - files: - - ./config/clusterresource-templates/ad_spark-role.yaml - - ./config/clusterresource-templates/ae_spark-service-account.yaml - - ./config/clusterresource-templates/af_spark-role-binding.yaml - name: clusterresource-template - - behavior: merge - files: - - ./config/propeller/core.yaml - - ./config/propeller/enabled_plugins.yaml - - ./config/propeller/plugins/catalog_cache.yaml - - ./config/propeller/plugins/k8s.yaml - - ./config/propeller/plugins/qubole.yaml - - ./config/propeller/plugins/spark.yaml - - ./config/propeller/plugins/task_logs.yaml - - ./config/common/storage.yaml - name: flyte-propeller-config - - behavior: merge - files: - - ./config/common/storage.yaml - - ./config/datacatalog/db.yaml - name: datacatalog-config - -########### -# Use this to record the password for the Google CloudSQL Database -secretGenerator: - - name: db-pass - behavior: merge - literals: - - pass.txt="yourpassword" diff --git a/kustomize/overlays/eks/flyte/propeller/deployment.yaml b/kustomize/overlays/eks/flyte/propeller/deployment.yaml deleted file mode 100644 index 9a46601b53..0000000000 --- a/kustomize/overlays/eks/flyte/propeller/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flytepropeller - namespace: flyte -spec: - template: - spec: - containers: - - name: flytepropeller - resources: - limits: - memory: "4Gi" - cpu: "2" - ephemeral-storage: "1Gi" diff --git a/kustomize/overlays/eks/flyte/propeller/service.yaml b/kustomize/overlays/eks/flyte/propeller/service.yaml deleted file mode 100644 index e80a8746e6..0000000000 --- a/kustomize/overlays/eks/flyte/propeller/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: flytepropeller - namespace: flyte - annotations: - cloud.google.com/load-balancer-type: Internal -spec: - type: LoadBalancer - selector: - app: flytepropeller - ports: - - name: http-metrics - protocol: TCP - port: 10254 diff --git a/kustomize/overlays/eks/flyte/propeller/serviceaccount.yaml b/kustomize/overlays/eks/flyte/propeller/serviceaccount.yaml deleted file mode 100644 index 9272749c4b..0000000000 --- a/kustomize/overlays/eks/flyte/propeller/serviceaccount.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: flytepropeller - namespace: flyte - annotations: - # TODO the role to use - eks.amazonaws.com/role-arn: "arn:aws:iam::111222333456:role/flyte-operator" diff --git a/kustomize/overlays/eks/kustomization.yaml b/kustomize/overlays/eks/kustomization.yaml deleted file mode 100644 index b29d932a80..0000000000 --- a/kustomize/overlays/eks/kustomization.yaml +++ /dev/null @@ -1,51 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -bases: - # All the resources that make up the deployment - - flyte - ######## - # Operators to be enabled - ############# - # Dependencies to be configured - # In local we use minio, but in cloud environment use S3 / GCS / AFS / Oracle Blob store etc - # This is used for Resource pooling. On cloud you can use hosted redis (e.g. AWS elasticache) - # Contour is used to create ingress. On cloud service use the default provided ingress controllers or cloud LB's - # Add node ports for ease of use locally - - ../../base/operators/spark - - ../../base/operators/kfoperators/pytorch - # Optional dependency - - ../../base/addons/redis - -# Images that should be used -images: - # FlyteAdmin - - name: flyteadmin # match images with this name - newTag: v1.11.0-b1 # FLYTEADMIN_TAG override the tag - newName: cr.flyte.org/flyteorg/flyteadmin # override the name - # FlyteConsole - - name: flyteconsole # match images with this name - newTag: v1.11.0 # FLYTECONSOLE_TAG the tag - newName: cr.flyte.org/flyteorg/flyteconsole # override the namep - # Flyte DataCatalog - - name: datacatalog # match images with this name - newTag: v1.11.0-b1 # DATACATALOG_TAG override the tag - newName: cr.flyte.org/flyteorg/datacatalog # override the name - # FlytePropeller - - name: flytepropeller # match images with this name - newTag: v1.11.0-b1 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Webhook - - name: webhook # match images with this name - newTag: v1.11.0-b1 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Override postgres image to use alpine based (rather smaller) docker image - - name: postgres - newTag: 13-21.04_beta - newName: ecr.flyte.org/ubuntu/postgres - - name: minio - newTag: 2021.10.13-debian-10-r0 - newName: ecr.flyte.org/bitnami/minio - - name: redis - newTag: 6.2.5-debian-10-r59 - newName: ecr.flyte.org/bitnami/redis diff --git a/kustomize/overlays/gcp/README.md b/kustomize/overlays/gcp/README.md deleted file mode 100644 index 450f73dbfd..0000000000 --- a/kustomize/overlays/gcp/README.md +++ /dev/null @@ -1,95 +0,0 @@ -[All Overlays](./) -# :beta: Google Cloud Platform Overlay - -This overlay serves as an example to bootstrap Flyte setup on Google Cloud Platform (GCP). It is not -designed to work out of the box due to the need of GCP resources. Please follow the instruction -below to further configure. - -_Hint_: searching `TODO:` through this directory would help to understand what needs to be done. - -## Cloud SQL - -[Cloud SQL](https://cloud.google.com/sql) is used as persistence layer. To set it up, please -follow standard GCP documentation. - -A few things are required for this overlay to function: - -* Two databases named as `flyte` and `datacatalog` -* A database user named as `flyte` -* Password of the database user can be added to either to [kustomization.yaml](kustomization.yaml) or you can create a new file and change the secretGenerator tag to use files. (Refer to kustomize documentation) -* Service account(s) associated with `flyteadmin` and `datacatalog` pods (either as GKE cluster - service account or through workload identity) should have `Cloud SQL Editor` role - -To securely access Cloud SQL instance, [Cloud SQL -Proxy](https://cloud.google.com/sql/docs/postgres/connect-admin-proxy) is launched as a pod sitting -in between Flyte and Cloud SQL instance. - -The kustomization files can be found under [cloudsqlproxy](dependencies/cloudsqlproxy/). Please note that one -needs to replace `` and `` accordingly in -[dependencies/cloudsqlproxy/deployment.yaml](cloudsqlproxy/deployment.yaml). - -## Create GCS Storage -1. Create a GCS bucket named as `flyte` in a GCP project. -1. Replace `` in [config/common/storage.yaml](flyte/config/common/storage.yaml) with the GCP project ID and if using a bucket other than Flyte then replace the bucket name too - -## flyteadmin - -flyteadmin configuration is derived from the [single cluster](../../base/single_cluster) overlay, with only modification to [database configuration db.yaml](flyte/config/admin/db.yaml) - -If one has followed [Cloud SQL](#cloud-sql) section, there is nothing to be done for database. - -**Advanced / OPTIONAL** -1. The default CORS setting in flyteAdmin allows cross origin requests. A more secure way would be to allow requests only from the expected domain. To do this, you will have to create a new *server.yaml* -similar to [base/single_cluster/headless/config](../../base/single_cluster/headless/config) under config/admin and then set -`server -> security -> allowedOrigins`. - -1. flyteadmin (including metrics endpoint) is exposed as a service using [internal load balancer](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing). - -## flyteconsole - -[flyteconsole configmap](console/config.yaml) needs to be updated with flyteadmin internal load -balancer IP address or the DNS name associated with it if any. - -flyteconsole is exposed as a service using [internal load balancer](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing). - -## flytepropeller - -flytepropeller configuration is derived from the [single cluster](../../base/single_cluster) overlay, with only modification to the config for performance tuning and logs -For logs configuration Replace `` in [config/propeller/plugins/task_logs.yaml](flyte/config/propeller/plugins/task_logs.yaml) with the GCP project ID - -Some important points - -* Storage configuration is shared with Admin and Catalog. Ideally in production Propeller should have its own configuration with real high cache size. - -* By default, three plugins are enabled: -1. container -2. k8s-array -3. sidecar - -* flytepropeller metrics endpoint is exposed as a service using [internal load balancer](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing). - -## datacatalog - -datacatalog configuration is derived from the [single cluster](../../base/single_cluster) overlay, with only modification to [database configuration db.yaml](flyte/config/datacatalog/db.yaml) - -If one has followed [Cloud SQL](#cloud-sql) section, there is nothing to be done for database. - -datacatalog metrics endpoint is exposed as a service using [internal load -balancer](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing). - - -## How to build your overlay -To build your overlay there are 2 options -1. Build it in your own repo Example coming soon :construction: -1. hack it in your clone of Flyte repo in place of GCP overlay. In this case just navigate to the root of the repo and run -```bash -$ make kustomize -``` -If all goes well a new overlay composite should be generated in [/deployment/gcp/flyte_generated.yaml](../../../deployment/gcp/flyte_generated.yaml) - -## Now ship it - -``` shell -make -kubectl apply -f deployment/gcp/flyte_generated.yaml -``` diff --git a/kustomize/overlays/gcp/flyte/admin/deployment.yaml b/kustomize/overlays/gcp/flyte/admin/deployment.yaml deleted file mode 100644 index b581a3dba1..0000000000 --- a/kustomize/overlays/gcp/flyte/admin/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyteadmin - namespace: flyte -spec: - template: - spec: - containers: - - name: flyteadmin - resources: - limits: - memory: "1Gi" - cpu: "2" - ephemeral-storage: "1Gi" diff --git a/kustomize/overlays/gcp/flyte/admin/service.yaml b/kustomize/overlays/gcp/flyte/admin/service.yaml deleted file mode 100644 index 1af1d10ce8..0000000000 --- a/kustomize/overlays/gcp/flyte/admin/service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: flyteadmin - namespace: flyte - annotations: - cloud.google.com/load-balancer-type: Internal -spec: - type: LoadBalancer - ports: - - name: redoc - protocol: TCP - port: 87 - targetPort: 8087 - - name: http-metrics - protocol: TCP - port: 10254 diff --git a/kustomize/overlays/gcp/flyte/config/admin/db.yaml b/kustomize/overlays/gcp/flyte/config/admin/db.yaml deleted file mode 100644 index 4e2741221d..0000000000 --- a/kustomize/overlays/gcp/flyte/config/admin/db.yaml +++ /dev/null @@ -1,6 +0,0 @@ -database: - port: 5432 - username: flyte - host: cloudsqlproxy - dbname: flyte - passwordPath: /etc/db/pass.txt diff --git a/kustomize/overlays/gcp/flyte/config/admin/task_resource_defaults.yaml b/kustomize/overlays/gcp/flyte/config/admin/task_resource_defaults.yaml deleted file mode 100644 index 06870c232b..0000000000 --- a/kustomize/overlays/gcp/flyte/config/admin/task_resource_defaults.yaml +++ /dev/null @@ -1,10 +0,0 @@ -task_resources: - defaults: - cpu: 1000m - memory: 1000Mi - storage: 1000Mi - limits: - cpu: 2 - memory: 8Gi - storage: 2000Mi - gpu: 1 diff --git a/kustomize/overlays/gcp/flyte/config/clusterresource-templates/ad_spark-role.yaml b/kustomize/overlays/gcp/flyte/config/clusterresource-templates/ad_spark-role.yaml deleted file mode 100644 index 51998e3051..0000000000 --- a/kustomize/overlays/gcp/flyte/config/clusterresource-templates/ad_spark-role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -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: - - '*' diff --git a/kustomize/overlays/gcp/flyte/config/clusterresource-templates/ae_spark-service-account.yaml b/kustomize/overlays/gcp/flyte/config/clusterresource-templates/ae_spark-service-account.yaml deleted file mode 100644 index dddd8d2742..0000000000 --- a/kustomize/overlays/gcp/flyte/config/clusterresource-templates/ae_spark-service-account.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: spark - namespace: {{ namespace }} diff --git a/kustomize/overlays/gcp/flyte/config/clusterresource-templates/af_spark-role-binding.yaml b/kustomize/overlays/gcp/flyte/config/clusterresource-templates/af_spark-role-binding.yaml deleted file mode 100644 index 2e9c8ae765..0000000000 --- a/kustomize/overlays/gcp/flyte/config/clusterresource-templates/af_spark-role-binding.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: spark-role-binding - namespace: {{ namespace }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: spark-role -subjects: -- kind: ServiceAccount - name: spark - namespace: {{ namespace }} - diff --git a/kustomize/overlays/gcp/flyte/config/common/storage.yaml b/kustomize/overlays/gcp/flyte/config/common/storage.yaml deleted file mode 100644 index 6f20d08dcd..0000000000 --- a/kustomize/overlays/gcp/flyte/config/common/storage.yaml +++ /dev/null @@ -1,19 +0,0 @@ -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 diff --git a/kustomize/overlays/gcp/flyte/config/datacatalog/db.yaml b/kustomize/overlays/gcp/flyte/config/datacatalog/db.yaml deleted file mode 100644 index abfb330459..0000000000 --- a/kustomize/overlays/gcp/flyte/config/datacatalog/db.yaml +++ /dev/null @@ -1,7 +0,0 @@ -database: - port: 5432 - username: flyte - host: cloudsqlproxy - dbname: datacatalog - options: "sslmode=disable" - passwordPath: /etc/db/pass.txt diff --git a/kustomize/overlays/gcp/flyte/config/propeller/core.yaml b/kustomize/overlays/gcp/flyte/config/propeller/core.yaml deleted file mode 100644 index b49a5f4188..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/core.yaml +++ /dev/null @@ -1,40 +0,0 @@ -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" diff --git a/kustomize/overlays/gcp/flyte/config/propeller/enabled_plugins.yaml b/kustomize/overlays/gcp/flyte/config/propeller/enabled_plugins.yaml deleted file mode 100644 index 9e4644ac18..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/enabled_plugins.yaml +++ /dev/null @@ -1,15 +0,0 @@ -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 diff --git a/kustomize/overlays/gcp/flyte/config/propeller/plugins/catalog_cache.yaml b/kustomize/overlays/gcp/flyte/config/propeller/plugins/catalog_cache.yaml deleted file mode 100644 index 3678fbbc89..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/plugins/catalog_cache.yaml +++ /dev/null @@ -1,6 +0,0 @@ -plugins: - catalogCache: - reader: - maxItems: 10000 - writer: - maxItems: 10000 diff --git a/kustomize/overlays/gcp/flyte/config/propeller/plugins/k8s.yaml b/kustomize/overlays/gcp/flyte/config/propeller/plugins/k8s.yaml deleted file mode 100644 index 8fe068397f..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/plugins/k8s.yaml +++ /dev/null @@ -1,8 +0,0 @@ -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 diff --git a/kustomize/overlays/gcp/flyte/config/propeller/plugins/qubole.yaml b/kustomize/overlays/gcp/flyte/config/propeller/plugins/qubole.yaml deleted file mode 100644 index ea34d2752b..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/plugins/qubole.yaml +++ /dev/null @@ -1,3 +0,0 @@ -plugins: - qubole: - quboleTokenKey: "FLYTE_QUBOLE_CLIENT_TOKEN" diff --git a/kustomize/overlays/gcp/flyte/config/propeller/plugins/spark.yaml b/kustomize/overlays/gcp/flyte/config/propeller/plugins/spark.yaml deleted file mode 100644 index c1ffb9209a..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/plugins/spark.yaml +++ /dev/null @@ -1,16 +0,0 @@ -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" diff --git a/kustomize/overlays/gcp/flyte/config/propeller/plugins/task_logs.yaml b/kustomize/overlays/gcp/flyte/config/propeller/plugins/task_logs.yaml deleted file mode 100644 index 5a9d0714c5..0000000000 --- a/kustomize/overlays/gcp/flyte/config/propeller/plugins/task_logs.yaml +++ /dev/null @@ -1,10 +0,0 @@ -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 diff --git a/kustomize/overlays/gcp/flyte/console/service.yaml b/kustomize/overlays/gcp/flyte/console/service.yaml deleted file mode 100644 index 2d3ad158aa..0000000000 --- a/kustomize/overlays/gcp/flyte/console/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: - cloud.google.com/load-balancer-type: Internal - name: flyteconsole - namespace: flyte -spec: - selector: - app: flyteconsole - type: LoadBalancer - ports: - - name: redoc - protocol: TCP - port: 87 - targetPort: 8087 - - name: http-metrics - protocol: TCP - port: 10254 diff --git a/kustomize/overlays/gcp/flyte/datacatalog/deployment.yaml b/kustomize/overlays/gcp/flyte/datacatalog/deployment.yaml deleted file mode 100644 index 1035dac5a0..0000000000 --- a/kustomize/overlays/gcp/flyte/datacatalog/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: datacatalog - namespace: flyte -spec: - template: - spec: - containers: - - name: datacatalog - resources: - limits: - memory: "1Gi" - cpu: "2" - ephemeral-storage: "1000Mi" diff --git a/kustomize/overlays/gcp/flyte/datacatalog/service.yaml b/kustomize/overlays/gcp/flyte/datacatalog/service.yaml deleted file mode 100644 index 70e95295ab..0000000000 --- a/kustomize/overlays/gcp/flyte/datacatalog/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: datacatalog-metrics - namespace: flyte - annotations: - cloud.google.com/load-balancer-type: Internal -spec: - selector: - app: datacatalog - type: LoadBalancer - ports: - - name: http-metrics - protocol: TCP - port: 10254 diff --git a/kustomize/overlays/gcp/flyte/kustomization.yaml b/kustomize/overlays/gcp/flyte/kustomization.yaml deleted file mode 100644 index 2e6e7e7cd8..0000000000 --- a/kustomize/overlays/gcp/flyte/kustomization.yaml +++ /dev/null @@ -1,59 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -# Override the namespace -namespace: flyte - -bases: -- ../../../base/single_cluster/complete - -resources: -- datacatalog/service.yaml -- propeller/service.yaml - -patchesStrategicMerge: -- admin/deployment.yaml -- admin/service.yaml -- datacatalog/deployment.yaml -- propeller/deployment.yaml -- console/service.yaml - -# Files are read in alphabetical order. To ensure that we create the namespace first, prefix the file name with "aa". - -configMapGenerator: -- behavior: merge - files: - - ./config/admin/db.yaml - - ./config/admin/task_resource_defaults.yaml - - ./config/common/storage.yaml - name: flyte-admin-config -- behavior: merge - files: - - ./config/clusterresource-templates/ad_spark-role.yaml - - ./config/clusterresource-templates/ae_spark-service-account.yaml - - ./config/clusterresource-templates/af_spark-role-binding.yaml - name: clusterresource-template -- behavior: merge - files: - - ./config/propeller/core.yaml - - ./config/propeller/enabled_plugins.yaml - - ./config/propeller/plugins/catalog_cache.yaml - - ./config/propeller/plugins/k8s.yaml - - ./config/propeller/plugins/qubole.yaml - - ./config/propeller/plugins/spark.yaml - - ./config/propeller/plugins/task_logs.yaml - - ./config/common/storage.yaml - name: flyte-propeller-config -- behavior: merge - files: - - ./config/common/storage.yaml - - ./config/datacatalog/db.yaml - name: datacatalog-config - -########### -# Use this to record the password for the Google CloudSQL Database -secretGenerator: -- name: db-pass - behavior: merge - literals: - - pass.txt="yourpassword" diff --git a/kustomize/overlays/gcp/flyte/propeller/deployment.yaml b/kustomize/overlays/gcp/flyte/propeller/deployment.yaml deleted file mode 100644 index 9a46601b53..0000000000 --- a/kustomize/overlays/gcp/flyte/propeller/deployment.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flytepropeller - namespace: flyte -spec: - template: - spec: - containers: - - name: flytepropeller - resources: - limits: - memory: "4Gi" - cpu: "2" - ephemeral-storage: "1Gi" diff --git a/kustomize/overlays/gcp/flyte/propeller/service.yaml b/kustomize/overlays/gcp/flyte/propeller/service.yaml deleted file mode 100644 index e80a8746e6..0000000000 --- a/kustomize/overlays/gcp/flyte/propeller/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: flytepropeller - namespace: flyte - annotations: - cloud.google.com/load-balancer-type: Internal -spec: - type: LoadBalancer - selector: - app: flytepropeller - ports: - - name: http-metrics - protocol: TCP - port: 10254 diff --git a/kustomize/overlays/gcp/kustomization.yaml b/kustomize/overlays/gcp/kustomization.yaml deleted file mode 100644 index e8dc107ffa..0000000000 --- a/kustomize/overlays/gcp/kustomization.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -bases: - # All the resources that make up the deployment - - flyte - ######## - # Operators to be enabled - ############# - # Dependencies to be configured - # In local we use minio, but in cloud environment use S3 / GCS / AFS / Oracle Blob store etc - # This is used for Resource pooling. On cloud you can use hosted redis (e.g. AWS elasticache) - # Contour is used to create ingress. On cloud service use the default provided ingress controllers or cloud LB's - # Add node ports for ease of use locally - - ../../base/ingress - - ../../base/operators/spark - - ../../base/operators/kfoperators/pytorch - - ../../base/addons/cloudsqlproxy - # Optional dependency - - ../../base/addons/redis - -# Images that should be used -images: - # FlyteAdmin - - name: flyteadmin # match images with this name - newTag: v1.10.7-b2 # FLYTEADMIN_TAG override the tag - newName: cr.flyte.org/flyteorg/flyteadmin # override the name - # FlyteConsole - - name: flyteconsole # match images with this name - newTag: v1.10.2 # FLYTECONSOLE_TAG the tag - newName: cr.flyte.org/flyteorg/flyteconsole # override the namep - # Flyte DataCatalog - - name: datacatalog # match images with this name - newTag: v1.10.7-b2 # DATACATALOG_TAG override the tag - newName: cr.flyte.org/flyteorg/datacatalog # override the name - # FlytePropeller - - name: flytepropeller # match images with this name - newTag: v1.10.7-b2 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Webhook - - name: webhook # match images with this name - newTag: v1.10.7-b2 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Override postgres image to use alpine based (rather smaller) docker image - - name: postgres - newTag: 13-21.04_beta - newName: ecr.flyte.org/ubuntu/postgres - - name: minio - newTag: 2021.10.13-debian-10-r0 - newName: ecr.flyte.org/bitnami/minio - - name: redis - newTag: 6.2.5-debian-10-r59 - newName: ecr.flyte.org/bitnami/redis diff --git a/kustomize/overlays/sandbox/README.md b/kustomize/overlays/sandbox/README.md deleted file mode 100644 index 82dbef46f1..0000000000 --- a/kustomize/overlays/sandbox/README.md +++ /dev/null @@ -1,4 +0,0 @@ -[All overlays](../) -# Flyte Sandbox deployment - Kustomize overlay -This module creates a standalone Flyte cluster with all its dependencies. This is a great starting point for trying out Flyte and experimenting with Flyte. The overlay can be Kustomized and made to -scale higher, but as is is not intended for production use diff --git a/kustomize/overlays/sandbox/flyte/admin/deployment.yaml b/kustomize/overlays/sandbox/flyte/admin/deployment.yaml deleted file mode 100644 index 857439a6dc..0000000000 --- a/kustomize/overlays/sandbox/flyte/admin/deployment.yaml +++ /dev/null @@ -1,105 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyteadmin - namespace: flyte -spec: - template: - spec: - volumes: - - name: resource-templates - configMap: - name: clusterresource-template - initContainers: - - name: check-db-ready - image: postgres:13-21.04_beta - command: [ - "sh", - "-c", - "until pg_isready -h postgres -p 5432; - do echo waiting for database; sleep 2; done;", - ] - securityContext: - runAsUser: 999 - - name: run-migrations - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "migrate", - "run", - ] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: seed-projects - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "migrate", - "seed-projects", - "flytesnacks", - "flyteexamples", - ] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: sync-cluster-resources - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "clusterresource", - "sync", - ] - volumeMounts: - - name: resource-templates - mountPath: /etc/flyte/clusterresource/templates - - name: config-volume - mountPath: /etc/flyte/config - containers: - - name: flyteadmin - resources: - limits: - memory: "200Mi" - cpu: "0.1" - ephemeral-storage: "100Mi" - - name: sync-cluster-resources-goroutine - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: - [ - "flyteadmin", - "--config", - "/etc/flyte/config/*.yaml", - "clusterresource", - "run", - ] - volumeMounts: - - name: resource-templates - mountPath: /etc/flyte/clusterresource/templates - - name: config-volume - mountPath: /etc/flyte/config - ---- -apiVersion: v1 -kind: Service -metadata: - name: flyteadmin - namespace: flyte -spec: - ports: - - name: redoc - protocol: TCP - port: 87 - targetPort: 8087 diff --git a/kustomize/overlays/sandbox/flyte/config/admin/db.yaml b/kustomize/overlays/sandbox/flyte/config/admin/db.yaml deleted file mode 100644 index c71ee6e4bb..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/admin/db.yaml +++ /dev/null @@ -1,6 +0,0 @@ -database: - port: 5432 - username: postgres - host: postgres - dbname: postgres - options: sslmode=disable diff --git a/kustomize/overlays/sandbox/flyte/config/admin/task_resource_defaults.yaml b/kustomize/overlays/sandbox/flyte/config/admin/task_resource_defaults.yaml deleted file mode 100644 index f3fd770e44..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/admin/task_resource_defaults.yaml +++ /dev/null @@ -1,10 +0,0 @@ -task_resources: - defaults: - cpu: 100m - memory: 200Mi - storage: 5Mi - limits: - cpu: 2 - memory: 1Gi - storage: 20Mi - gpu: 1 diff --git a/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ad_spark-role.yaml b/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ad_spark-role.yaml deleted file mode 100644 index 51998e3051..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ad_spark-role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -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: - - '*' diff --git a/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ae_spark-service-account.yaml b/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ae_spark-service-account.yaml deleted file mode 100644 index dddd8d2742..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/ae_spark-service-account.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: spark - namespace: {{ namespace }} diff --git a/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/af_spark-role-binding.yaml b/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/af_spark-role-binding.yaml deleted file mode 100644 index 6fa4f5cb8a..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/clusterresource-templates/af_spark-role-binding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: spark-role-binding - namespace: {{ namespace }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: spark-role -subjects: -- kind: ServiceAccount - name: spark - namespace: {{ namespace }} diff --git a/kustomize/overlays/sandbox/flyte/config/common/logger.yaml b/kustomize/overlays/sandbox/flyte/config/common/logger.yaml deleted file mode 100644 index a6854ed6ce..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/common/logger.yaml +++ /dev/null @@ -1,3 +0,0 @@ -logger: - show-source: true - level: 2 diff --git a/kustomize/overlays/sandbox/flyte/config/common/storage.yaml b/kustomize/overlays/sandbox/flyte/config/common/storage.yaml deleted file mode 100644 index 16e6f52755..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/common/storage.yaml +++ /dev/null @@ -1,11 +0,0 @@ -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" - diff --git a/kustomize/overlays/sandbox/flyte/config/datacatalog/db.yaml b/kustomize/overlays/sandbox/flyte/config/datacatalog/db.yaml deleted file mode 100644 index 76ba812d63..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/datacatalog/db.yaml +++ /dev/null @@ -1,6 +0,0 @@ -database: - port: 5432 - username: postgres - host: postgres - dbname: datacatalog - options: sslmode=disable diff --git a/kustomize/overlays/sandbox/flyte/config/propeller/enabled_plugins.yaml b/kustomize/overlays/sandbox/flyte/config/propeller/enabled_plugins.yaml deleted file mode 100644 index 0978255017..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/propeller/enabled_plugins.yaml +++ /dev/null @@ -1,10 +0,0 @@ -tasks: - task-plugins: - enabled-plugins: - - container - - sidecar - - k8s-array - default-for-task-types: - container: container - sidecar: sidecar - container_array: k8s-array diff --git a/kustomize/overlays/sandbox/flyte/config/propeller/plugins/k8s.yaml b/kustomize/overlays/sandbox/flyte/config/propeller/plugins/k8s.yaml deleted file mode 100644 index 9f06f53fdb..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/propeller/plugins/k8s.yaml +++ /dev/null @@ -1,8 +0,0 @@ -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 diff --git a/kustomize/overlays/sandbox/flyte/config/propeller/plugins/task_logs.yaml b/kustomize/overlays/sandbox/flyte/config/propeller/plugins/task_logs.yaml deleted file mode 100644 index 2768f8c95d..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/propeller/plugins/task_logs.yaml +++ /dev/null @@ -1,4 +0,0 @@ -plugins: - logs: - kubernetes-enabled: true - kubernetes-template-uri: "http://localhost:30082/#/log/{{ .namespace }}/{{ .podName }}/pod?namespace={{ .namespace }}" diff --git a/kustomize/overlays/sandbox/flyte/config/propeller/resource_manager.yaml b/kustomize/overlays/sandbox/flyte/config/propeller/resource_manager.yaml deleted file mode 100644 index e08575c90b..0000000000 --- a/kustomize/overlays/sandbox/flyte/config/propeller/resource_manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -propeller: - resourcemanager: - type: noop diff --git a/kustomize/overlays/sandbox/flyte/kustomization.yaml b/kustomize/overlays/sandbox/flyte/kustomization.yaml deleted file mode 100644 index 94eb948fa2..0000000000 --- a/kustomize/overlays/sandbox/flyte/kustomization.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -# Override the namespace -namespace: flyte - -bases: - - ../../../base/single_cluster/complete - -resources: - - propeller/webhook-secret.yaml - -patchesStrategicMerge: - - admin/deployment.yaml - - propeller/webhook.yaml - -configMapGenerator: - - behavior: merge - files: - - ./config/admin/db.yaml - - ./config/admin/task_resource_defaults.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - name: flyte-admin-config - - - behavior: merge - files: - - ./config/propeller/enabled_plugins.yaml - - ./config/propeller/resource_manager.yaml - - ./config/propeller/plugins/k8s.yaml - - ./config/propeller/plugins/task_logs.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - name: flyte-propeller-config - - - behavior: merge - files: - - ./config/common/storage.yaml - - ./config/common/logger.yaml - - ./config/datacatalog/db.yaml - name: datacatalog-config diff --git a/kustomize/overlays/sandbox/flyte/propeller/webhook-secret.yaml b/kustomize/overlays/sandbox/flyte/propeller/webhook-secret.yaml deleted file mode 100644 index 4029be3716..0000000000 --- a/kustomize/overlays/sandbox/flyte/propeller/webhook-secret.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -data: - password: bXl1c2Vy - user_secret: bXlzZWNyZXQ= - username: bXl1c2Vy -kind: Secret -metadata: - name: user-info - namespace: flyte -type: Opaque diff --git a/kustomize/overlays/sandbox/flyte/propeller/webhook.yaml b/kustomize/overlays/sandbox/flyte/propeller/webhook.yaml deleted file mode 100644 index a659e88141..0000000000 --- a/kustomize/overlays/sandbox/flyte/propeller/webhook.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyte-pod-webhook - namespace: flyte -spec: - template: - spec: - containers: - - name: webhook - volumeMounts: - - name: sample-secrets - mountPath: /etc/secrets/user-info - readOnly: true - volumes: - - name: sample-secrets - secret: - secretName: user-info diff --git a/kustomize/overlays/sandbox/kustomization.yaml b/kustomize/overlays/sandbox/kustomization.yaml deleted file mode 100644 index e03f19ed1b..0000000000 --- a/kustomize/overlays/sandbox/kustomization.yaml +++ /dev/null @@ -1,55 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -bases: - # All the resources that make up the deployment - - flyte - ######## - # Operators to be enabled - ############# - # Dependencies to be configured - # In local we use minio, but in cloud environment use S3 / GCS / AFS / Oracle Blob store etc - # This is used for Resource pooling. On cloud you can use hosted redis (e.g. AWS elasticache) - # Contour is used to create ingress. On cloud service use the default provided ingress controllers or cloud LB's - # Add node ports for ease of use locally - - ../../base/ingress - - ../../base/addons/database - - ../../base/addons/kubernetes_dashboard - - ../../base/addons/storage - - ../../base/addons/contour_ingress_controller - -resources: - - nodeport-services.yaml - -# Images that should be used -images: - # FlyteAdmin - - name: flyteadmin # match images with this name - newTag: v1.1.118 # FLYTEADMIN_TAG override the tag - newName: cr.flyte.org/flyteorg/flyteadmin # override the name - # FlyteConsole - - name: flyteconsole # match images with this name - newTag: v1.9.2 # FLYTECONSOLE_TAG the tag - newName: cr.flyte.org/flyteorg/flyteconsole # override the namep - # Flyte DataCatalog - - name: datacatalog # match images with this name - newTag: v1.0.51 # DATACATALOG_TAG override the tag - newName: cr.flyte.org/flyteorg/datacatalog # override the name - # FlytePropeller - - name: flytepropeller # match images with this name - newTag: v1.1.116 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Webhook - - name: webhook # match images with this name - newTag: v1.1.116 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Override postgres image to use alpine based (rather smaller) docker image - - name: postgres - newTag: 13-21.04_beta - newName: ecr.flyte.org/ubuntu/postgres - - name: minio - newTag: 2021.10.13-debian-10-r0 - newName: ecr.flyte.org/bitnami/minio - - name: redis - newTag: 6.2.5-debian-10-r59 - newName: ecr.flyte.org/bitnami/redis diff --git a/kustomize/overlays/sandbox/nodeport-services.yaml b/kustomize/overlays/sandbox/nodeport-services.yaml deleted file mode 100644 index 6439a773fc..0000000000 --- a/kustomize/overlays/sandbox/nodeport-services.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# For docker-desktop at least, the range of valid ports is 30000-32767, which is why we're constrained to these -# odd port numbers. Since the base ingress runs on 30081, the K8s dashboard runs on 30082, these just continue from there. -# These nodeports are exposed to save contributors the trouble of port forwarding when running locally. - -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: - 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: -#labels: -#k8s-app: kubernetes-dashboard -#name: dashboard-direct -#namespace: flyte -#spec: -#ports: -#- nodePort: 30082 -#port: 8443 -#protocol: TCP -#selector: -#k8s-app: kubernetes-dashboard -#type: NodePort diff --git a/kustomize/overlays/test/flyte/admin/deployment.yaml b/kustomize/overlays/test/flyte/admin/deployment.yaml deleted file mode 100644 index d0a5abfacf..0000000000 --- a/kustomize/overlays/test/flyte/admin/deployment.yaml +++ /dev/null @@ -1,64 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: flyteadmin - namespace: flyte -spec: - template: - spec: - volumes: - - name: resource-templates - configMap: - name: clusterresource-template - initContainers: - - name: check-db-ready - image: postgres:10.1 - command: ['sh', '-c', - 'until pg_isready -h postgres -p 5432; - do echo waiting for database; sleep 2; done;'] - securityContext: - runAsUser: 999 - - name: run-migrations - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: ["flyteadmin", "--config", "/etc/flyte/config/*.yaml", - "migrate", "run"] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: seed-projects - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: ["flyteadmin", "--config", "/etc/flyte/config/*.yaml", - "migrate", "seed-projects", "flytetester", "flytesnacks"] - volumeMounts: - - name: config-volume - mountPath: /etc/flyte/config - - name: sync-cluster-resources - image: flyteadmin:v0.4.13 - imagePullPolicy: IfNotPresent - command: ["flyteadmin", "--config", "/etc/flyte/config/*.yaml", "clusterresource", "sync"] - volumeMounts: - - name: resource-templates - mountPath: /etc/flyte/clusterresource/templates - - name: config-volume - mountPath: /etc/flyte/config - containers: - - name: flyteadmin - resources: - limits: - memory: "200Mi" - cpu: "0.1" - ephemeral-storage: "100Mi" ---- -apiVersion: v1 -kind: Service -metadata: - name: flyteadmin - namespace: flyte -spec: - ports: - - name: redoc - protocol: TCP - port: 87 - targetPort: 8087 diff --git a/kustomize/overlays/test/flyte/config/admin/db.yaml b/kustomize/overlays/test/flyte/config/admin/db.yaml deleted file mode 100644 index c71ee6e4bb..0000000000 --- a/kustomize/overlays/test/flyte/config/admin/db.yaml +++ /dev/null @@ -1,6 +0,0 @@ -database: - port: 5432 - username: postgres - host: postgres - dbname: postgres - options: sslmode=disable diff --git a/kustomize/overlays/test/flyte/config/common/logger.yaml b/kustomize/overlays/test/flyte/config/common/logger.yaml deleted file mode 100644 index a6854ed6ce..0000000000 --- a/kustomize/overlays/test/flyte/config/common/logger.yaml +++ /dev/null @@ -1,3 +0,0 @@ -logger: - show-source: true - level: 2 diff --git a/kustomize/overlays/test/flyte/config/common/storage.yaml b/kustomize/overlays/test/flyte/config/common/storage.yaml deleted file mode 100644 index 16e6f52755..0000000000 --- a/kustomize/overlays/test/flyte/config/common/storage.yaml +++ /dev/null @@ -1,11 +0,0 @@ -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" - diff --git a/kustomize/overlays/test/flyte/config/datacatalog/db.yaml b/kustomize/overlays/test/flyte/config/datacatalog/db.yaml deleted file mode 100644 index 76ba812d63..0000000000 --- a/kustomize/overlays/test/flyte/config/datacatalog/db.yaml +++ /dev/null @@ -1,6 +0,0 @@ -database: - port: 5432 - username: postgres - host: postgres - dbname: datacatalog - options: sslmode=disable diff --git a/kustomize/overlays/test/flyte/config/propeller/enabled_plugins.yaml b/kustomize/overlays/test/flyte/config/propeller/enabled_plugins.yaml deleted file mode 100644 index 0978255017..0000000000 --- a/kustomize/overlays/test/flyte/config/propeller/enabled_plugins.yaml +++ /dev/null @@ -1,10 +0,0 @@ -tasks: - task-plugins: - enabled-plugins: - - container - - sidecar - - k8s-array - default-for-task-types: - container: container - sidecar: sidecar - container_array: k8s-array diff --git a/kustomize/overlays/test/flyte/config/propeller/plugins/k8s.yaml b/kustomize/overlays/test/flyte/config/propeller/plugins/k8s.yaml deleted file mode 100644 index 8fe068397f..0000000000 --- a/kustomize/overlays/test/flyte/config/propeller/plugins/k8s.yaml +++ /dev/null @@ -1,8 +0,0 @@ -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 diff --git a/kustomize/overlays/test/flyte/config/propeller/resource_manager.yaml b/kustomize/overlays/test/flyte/config/propeller/resource_manager.yaml deleted file mode 100644 index e08575c90b..0000000000 --- a/kustomize/overlays/test/flyte/config/propeller/resource_manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -propeller: - resourcemanager: - type: noop diff --git a/kustomize/overlays/test/flyte/kustomization.yaml b/kustomize/overlays/test/flyte/kustomization.yaml deleted file mode 100644 index 3bdbb899cf..0000000000 --- a/kustomize/overlays/test/flyte/kustomization.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -# Override the namespace -namespace: flyte - -bases: -- ../../../base/single_cluster/headless - -patchesStrategicMerge: -- admin/deployment.yaml - -configMapGenerator: -# the main admin configmap -- name: flyte-admin-config - behavior: merge - files: - - ./config/admin/db.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - -# Flyte Propeller Configuration -- name: flyte-propeller-config - behavior: merge - files: - - ./config/propeller/enabled_plugins.yaml - - ./config/propeller/resource_manager.yaml - - ./config/propeller/plugins/k8s.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml - -# TODO Flyte Console Configuration -#- name: flyte-console-config -# files: -# - ./config/console.yaml - -- name: datacatalog-config - behavior: merge - files: - - ./config/datacatalog/db.yaml - - ./config/common/storage.yaml - - ./config/common/logger.yaml diff --git a/kustomize/overlays/test/kustomization.yaml b/kustomize/overlays/test/kustomization.yaml deleted file mode 100644 index b7511f8909..0000000000 --- a/kustomize/overlays/test/kustomization.yaml +++ /dev/null @@ -1,49 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -bases: - # All the resources that make up the deployment - - flyte - ######## - # Operators to be enabled - ############# - # Dependencies to be configured - # In local we use minio, but in cloud environment use S3 / GCS / AFS / Oracle Blob store etc - # This is used for Resource pooling. On cloud you can use hosted redis (e.g. AWS elasticache) - # Contour is used to create ingress. On cloud service use the default provided ingress controllers or cloud LB's - # Add node ports for ease of use locally - - ../../base/addons/database - - ../../base/addons/storage - -# Images that should be used -images: - # FlyteAdmin - - name: flyteadmin # match images with this name - newTag: v1.1.118 # FLYTEADMIN_TAG override the tag - newName: cr.flyte.org/flyteorg/flyteadmin # override the name - # FlyteConsole - - name: flyteconsole # match images with this name - newTag: v1.9.2 # FLYTECONSOLE_TAG the tag - newName: cr.flyte.org/flyteorg/flyteconsole # override the namep - # Flyte DataCatalog - - name: datacatalog # match images with this name - newTag: v1.0.51 # DATACATALOG_TAG override the tag - newName: cr.flyte.org/flyteorg/datacatalog # override the name - # FlytePropeller - - name: flytepropeller # match images with this name - newTag: v1.1.116 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Webhook - - name: webhook # match images with this name - newTag: v1.1.116 # FLYTEPROPELLER_TAG override the tag - newName: cr.flyte.org/flyteorg/flytepropeller # override the name - # Override postgres image to use alpine based (rather smaller) docker image - - name: postgres - newTag: 13-21.04_beta - newName: ecr.flyte.org/ubuntu/postgres - - name: minio - newTag: 2021.10.13-debian-10-r0 - newName: ecr.flyte.org/bitnami/minio - - name: redis - newTag: 6.2.5-debian-10-r59 - newName: ecr.flyte.org/bitnami/redis diff --git a/script/generate_kustomize.sh b/script/generate_kustomize.sh deleted file mode 100755 index 81a1142e00..0000000000 --- a/script/generate_kustomize.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -echo "Installing Kustomize" -KUSTOMIZE=_bin/kustomize -KUSTOMIZE_VERSION=${KUSTOMIZE_VERSION:-3.8.1} - -if [ -f ${KUSTOMIZE} ]; then - rm ${KUSTOMIZE} -fi -mkdir -p _bin; cd _bin -curl -s "https://raw.githubusercontent.com/\ -kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash -s ${KUSTOMIZE_VERSION} -cd - - -# All the overlays to be built -DEPLOYMENT=${1:-sandbox test eks gcp} - -KUSTOMIZE_OVERLAYS_ROOT=kustomize/overlays - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" - -for deployment in ${DEPLOYMENT}; do - ${KUSTOMIZE} build ${KUSTOMIZE_OVERLAYS_ROOT}/${deployment} > ${DIR}/../deployment/${deployment}/flyte_generated.yaml -done - -# This section is used by GitHub workflow to ensure that the generation step was run -if [ -n "$DELTA_CHECK" ]; then - DIRTY=$(git status --porcelain) - if [ -n "$DIRTY" ]; then - echo "FAILED: kustomize code updated without committing generated code." - echo "Ensure make kustomize has run and all changes are committed." - DIFF=$(git diff) - echo "diff detected: $DIFF" - DIFF=$(git diff --name-only) - echo "files different: $DIFF" - exit 1 - else - echo "SUCCESS: Generated code is up to date." - fi -fi diff --git a/script/release.sh b/script/release.sh index 1f3d763fee..45d31f53b9 100755 --- a/script/release.sh +++ b/script/release.sh @@ -5,12 +5,6 @@ set -ex FLYTEKIT_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flytekit/releases/latest" | jq -r .tag_name | sed 's/^v//') FLYTECONSOLE_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flyteconsole/releases/latest" | jq -r .tag_name) -# bump latest release of flyte component in kustomize -grep -rlZ "newTag:[^P]*# FLYTEADMIN_TAG" ./kustomize/overlays | xargs -I {} sed -i "s/newTag:[^P]*# FLYTEADMIN_TAG/newTag: ${VERSION} # FLYTEADMIN_TAG/g" {} -grep -rlZ "newTag:[^P]*# DATACATALOG_TAG" ./kustomize/overlays | xargs -I {} sed -i "s/newTag:[^P]*# DATACATALOG_TAG/newTag: ${VERSION} # DATACATALOG_TAG/g" {} -grep -rlZ "newTag:[^P]*# FLYTECONSOLE_TAG" ./kustomize/overlays | xargs -I {} sed -i "s/newTag:[^P]*# FLYTECONSOLE_TAG/newTag: ${FLYTECONSOLE_TAG} # FLYTECONSOLE_TAG/g" {} -grep -rlZ "newTag:[^P]*# FLYTEPROPELLER_TAG" ./kustomize/overlays | xargs -I {} sed -i "s/newTag:[^P]*# FLYTEPROPELLER_TAG/newTag: ${VERSION} # FLYTEPROPELLER_TAG/g" {} - # bump latest release of flyte component in helm sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte/values.yaml sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte-core/values.yaml From 1d2e305f2faf266a126f484bfefeb8f38aebdfb1 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Mon, 11 Mar 2024 17:27:47 -0700 Subject: [PATCH 44/76] Add extra header to signed url (#4971) Signed-off-by: Kevin Su --- datacatalog/go.mod | 2 +- datacatalog/go.sum | 4 +- flyteadmin/dataproxy/service.go | 32 +- flyteadmin/go.mod | 2 +- flyteadmin/go.sum | 4 +- .../implementations/noop_remote_url_test.go | 4 + flytecopilot/go.mod | 2 +- flytecopilot/go.sum | 4 +- .../pb-es/flyteidl/service/dataproxy_pb.ts | 18 + .../pb-go/flyteidl/service/dataproxy.pb.go | 399 ++++++++++-------- .../flyteidl/service/dataproxy.swagger.json | 11 + flyteidl/gen/pb-js/flyteidl.d.ts | 12 + flyteidl/gen/pb-js/flyteidl.js | 48 ++- .../flyteidl/service/dataproxy_pb2.py | 48 ++- .../flyteidl/service/dataproxy_pb2.pyi | 19 +- flyteidl/gen/pb_rust/flyteidl.service.rs | 8 + flyteidl/go.mod | 2 +- flyteidl/go.sum | 4 +- .../protos/flyteidl/service/dataproxy.proto | 9 +- flyteplugins/go.mod | 2 +- flyteplugins/go.sum | 4 +- .../ioutils/remote_file_output_reader_test.go | 11 +- .../plugins/array/k8s/management_test.go | 13 +- flytepropeller/go.mod | 2 +- flytepropeller/go.sum | 4 +- .../nodes/dynamic/dynamic_workflow_test.go | 4 + .../pkg/controller/nodes/executor_test.go | 4 + flytestdlib/go.mod | 2 +- flytestdlib/go.sum | 4 +- flytestdlib/storage/mem_store.go | 11 +- flytestdlib/storage/storage.go | 9 +- flytestdlib/storage/stow_store.go | 42 +- flytestdlib/storage/stow_store_test.go | 4 +- go.mod | 2 +- go.sum | 4 +- 35 files changed, 484 insertions(+), 270 deletions(-) diff --git a/datacatalog/go.mod b/datacatalog/go.mod index 4116c4cc7f..e8fafef6ab 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.9 // 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..111ed2cb56 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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/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/flyteadmin/dataproxy/service.go b/flyteadmin/dataproxy/service.go index 3d657c6958..5bb7a16632 100644 --- a/flyteadmin/dataproxy/service.go +++ b/flyteadmin/dataproxy/service.go @@ -49,11 +49,13 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp // If it doesn't exist, then proceed as normal. if len(req.Project) == 0 || len(req.Domain) == 0 { + logger.Infof(ctx, "project and domain are required parameters. Project [%v]. Domain [%v]", req.Project, req.Domain) return nil, errors.NewFlyteAdminErrorf(codes.InvalidArgument, "project and domain are required parameters") } // At least one of the hash or manually given prefix must be provided. if len(req.FilenameRoot) == 0 && len(req.ContentMd5) == 0 { + logger.Infof(ctx, "content_md5 or filename_root is a required parameter. FilenameRoot [%v], ContentMD5 [%v]", req.FilenameRoot, req.ContentMd5) return nil, errors.NewFlyteAdminErrorf(codes.InvalidArgument, "content_md5 or filename_root is a required parameter") } @@ -63,10 +65,12 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp knownLocation, err := createStorageLocation(ctx, s.dataStore, s.cfg.Upload, req.Project, req.Domain, req.FilenameRoot, req.Filename) if err != nil { + logger.Errorf(ctx, "failed to create storage location. Error %v", err) return nil, errors.NewFlyteAdminErrorf(codes.Internal, "failed to create storage location, Error: %v", err) } metadata, err := s.dataStore.Head(ctx, knownLocation) if err != nil { + logger.Errorf(ctx, "failed to check if file exists at location [%s], Error: %v", knownLocation.String(), err) return nil, errors.NewFlyteAdminErrorf(codes.Internal, "failed to check if file exists at location [%s], Error: %v", knownLocation.String(), err) } if metadata.Exists() { @@ -76,12 +80,18 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp if len(req.ContentMd5) == 0 { return nil, errors.NewFlyteAdminErrorf(codes.AlreadyExists, "file already exists at location [%v], specify a matching hash if you wish to rewrite", knownLocation) } - // Re-encode the hash 3-ways to support matching, hex, base32 and base64 - hexDigest := hex.EncodeToString(req.ContentMd5) - base32Digest := base32.StdEncoding.EncodeToString(req.ContentMd5) base64Digest := base64.StdEncoding.EncodeToString(req.ContentMd5) - if hexDigest != metadata.Etag() && base32Digest != metadata.Etag() && base64Digest != metadata.Etag() { - logger.Debugf(ctx, "File already exists at location [%v] but hashes do not match", knownLocation) + if len(metadata.ContentMD5()) == 0 { + // For backward compatibility, dataproxy assumes that the Etag exists if ContentMD5 is not in the metadata. + // Data proxy won't allow people to overwrite the file if both the Etag and the ContentMD5 do not exist. + hexDigest := hex.EncodeToString(req.ContentMd5) + base32Digest := base32.StdEncoding.EncodeToString(req.ContentMd5) + if hexDigest != metadata.Etag() && base32Digest != metadata.Etag() && base64Digest != metadata.Etag() { + logger.Errorf(ctx, "File already exists at location [%v] but hashes do not match", knownLocation) + return nil, errors.NewFlyteAdminErrorf(codes.AlreadyExists, "file already exists at location [%v], specify a matching hash if you wish to rewrite", knownLocation) + } + } else if base64Digest != metadata.ContentMD5() { + logger.Errorf(ctx, "File already exists at location [%v] but hashes do not match", knownLocation) return nil, errors.NewFlyteAdminErrorf(codes.AlreadyExists, "file already exists at location [%v], specify a matching hash if you wish to rewrite", knownLocation) } logger.Debugf(ctx, "File already exists at location [%v] but allowing rewrite", knownLocation) @@ -105,7 +115,7 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp req.Filename = rand.String(s.cfg.Upload.DefaultFileNameLength) } - md5 := base64.StdEncoding.EncodeToString(req.ContentMd5) + base64digestMD5 := base64.StdEncoding.EncodeToString(req.ContentMd5) var prefix string if len(req.FilenameRoot) > 0 { @@ -117,16 +127,19 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp storagePath, err := createStorageLocation(ctx, s.dataStore, s.cfg.Upload, req.Project, req.Domain, prefix, req.Filename) if err != nil { + logger.Errorf(ctx, "failed to create shardedStorageLocation. Error %v", err) return nil, errors.NewFlyteAdminErrorf(codes.Internal, "failed to create shardedStorageLocation, Error: %v", err) } resp, err := s.dataStore.CreateSignedURL(ctx, storagePath, storage.SignedURLProperties{ - Scope: stow.ClientMethodPut, - ExpiresIn: req.ExpiresIn.AsDuration(), - ContentMD5: md5, + Scope: stow.ClientMethodPut, + ExpiresIn: req.ExpiresIn.AsDuration(), + ContentMD5: base64digestMD5, + AddContentMD5Metadata: req.AddContentMd5Metadata, }) if err != nil { + logger.Errorf(ctx, "failed to create signed url. Error:", err) return nil, errors.NewFlyteAdminErrorf(codes.Internal, "failed to create a signed url. Error: %v", err) } @@ -134,6 +147,7 @@ func (s Service) CreateUploadLocation(ctx context.Context, req *service.CreateUp SignedUrl: resp.URL.String(), NativeUrl: storagePath.String(), ExpiresAt: timestamppb.New(time.Now().Add(req.ExpiresIn.AsDuration())), + Headers: resp.RequiredRequestHeaders, }, nil } diff --git a/flyteadmin/go.mod b/flyteadmin/go.mod index badc2a3c88..d029aec96b 100644 --- a/flyteadmin/go.mod +++ b/flyteadmin/go.mod @@ -17,7 +17,7 @@ require ( github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytepropeller v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 - github.com/flyteorg/stow v0.3.8 + github.com/flyteorg/stow v0.3.9 github.com/ghodss/yaml v1.0.0 github.com/go-gormigrate/gormigrate/v2 v2.1.1 github.com/golang-jwt/jwt/v4 v4.5.0 diff --git a/flyteadmin/go.sum b/flyteadmin/go.sum index eb2eb48329..1b78514db8 100644 --- a/flyteadmin/go.sum +++ b/flyteadmin/go.sum @@ -237,8 +237,8 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/go.mod h1:fArjMpsYJNWkp/hyDKKdbcv07gxbuLmKFcb7YT1aSOM= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= diff --git a/flyteadmin/pkg/data/implementations/noop_remote_url_test.go b/flyteadmin/pkg/data/implementations/noop_remote_url_test.go index 0c05c2a391..965dc9eeb2 100644 --- a/flyteadmin/pkg/data/implementations/noop_remote_url_test.go +++ b/flyteadmin/pkg/data/implementations/noop_remote_url_test.go @@ -14,6 +14,10 @@ const noopFileSize = int64(1256) type MockMetadata struct{} +func (m MockMetadata) ContentMD5() string { + return "" +} + func (m MockMetadata) Exists() bool { return true } diff --git a/flytecopilot/go.mod b/flytecopilot/go.mod index 254e636513..52c7b25e79 100644 --- a/flytecopilot/go.mod +++ b/flytecopilot/go.mod @@ -39,7 +39,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.9 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect diff --git a/flytecopilot/go.sum b/flytecopilot/go.sum index 076bd774a8..b43c64842d 100644 --- a/flytecopilot/go.sum +++ b/flytecopilot/go.sum @@ -103,8 +103,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/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/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts b/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts index 2b4cf829ab..8ce9d57435 100644 --- a/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts @@ -60,6 +60,13 @@ export class CreateUploadLocationResponse extends Message headers = 4; + */ + headers: { [key: string]: string } = {}; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -71,6 +78,7 @@ export class CreateUploadLocationResponse extends Message): CreateUploadLocationResponse { @@ -152,6 +160,15 @@ export class CreateUploadLocationRequest extends Message) { super(); proto3.util.initPartial(data, this); @@ -166,6 +183,7 @@ export class CreateUploadLocationRequest extends Message): CreateUploadLocationRequest { diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go index 3acf2559cf..802d4080b4 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go @@ -86,6 +86,8 @@ type CreateUploadLocationResponse struct { NativeUrl string `protobuf:"bytes,2,opt,name=native_url,json=nativeUrl,proto3" json:"native_url,omitempty"` // ExpiresAt defines when will the signed URL expires. ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // Data proxy generates these headers for client, and they have to add these headers to the request when uploading the file. + Headers map[string]string `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CreateUploadLocationResponse) Reset() { @@ -141,6 +143,13 @@ func (x *CreateUploadLocationResponse) GetExpiresAt() *timestamppb.Timestamp { return nil } +func (x *CreateUploadLocationResponse) GetHeaders() map[string]string { + if x != nil { + return x.Headers + } + return nil +} + // CreateUploadLocationRequest specified request for the CreateUploadLocation API. // The implementation in data proxy service will create the s3 location with some server side configured prefixes, // and then: @@ -173,6 +182,10 @@ type CreateUploadLocationRequest struct { // in data proxy config. This option is useful when uploading multiple files. // +optional FilenameRoot string `protobuf:"bytes,6,opt,name=filename_root,json=filenameRoot,proto3" json:"filename_root,omitempty"` + // If true, the data proxy will add content_md5 to the metadata to the signed URL and + // it will force clients to add this metadata to the object. + // This make sure dataproxy is backward compatible with the old flytekit. + AddContentMd5Metadata bool `protobuf:"varint,7,opt,name=add_content_md5_metadata,json=addContentMd5Metadata,proto3" json:"add_content_md5_metadata,omitempty"` } func (x *CreateUploadLocationRequest) Reset() { @@ -249,6 +262,13 @@ func (x *CreateUploadLocationRequest) GetFilenameRoot() string { return "" } +func (x *CreateUploadLocationRequest) GetAddContentMd5Metadata() bool { + if x != nil { + return x.AddContentMd5Metadata + } + return false +} + // CreateDownloadLocationRequest specified request for the CreateDownloadLocation API. // // Deprecated: Marked as deprecated in flyteidl/service/dataproxy.proto. @@ -762,7 +782,7 @@ var file_flyteidl_service_dataproxy_proto_rawDesc = []byte{ 0x72, 0x65, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, + 0x6f, 0x22, 0xaa, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, @@ -771,163 +791,176 @@ var file_flyteidl_service_dataproxy_proto_rawDesc = []byte{ 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0xeb, 0x01, 0x0a, 0x1b, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x49, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, - 0x64, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x4d, 0x64, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x7c, 0x0a, 0x1d, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x49, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x7e, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x41, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, + 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x55, 0x0a, 0x07, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x49, 0x6e, 0x12, 0x54, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x52, - 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x73, 0x22, 0x69, - 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x2d, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x0a, - 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x70, 0x72, - 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x55, 0x52, 0x4c, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, - 0x52, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x2a, 0x43, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, - 0x0a, 0x12, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x44, 0x45, 0x43, 0x4b, 0x10, 0x01, 0x32, 0x84, 0x07, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xf0, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, - 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x12, 0xa9, - 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x01, 0x92, - 0x41, 0x7f, 0x1a, 0x7d, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, - 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, + 0x02, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x64, 0x35, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x18, + 0x61, 0x64, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x64, 0x35, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, + 0x61, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x64, 0x35, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7c, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, + 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x3a, + 0x02, 0x18, 0x01, 0x22, 0x7e, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, + 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x3a, + 0x02, 0x18, 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, + 0x12, 0x54, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x21, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, + 0x72, 0x6c, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, + 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, + 0x75, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, + 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x65, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x73, 0x22, 0x69, 0x0a, 0x0d, 0x50, 0x72, + 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x2d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x55, 0x72, 0x6c, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, + 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, + 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x43, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, + 0x17, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x52, + 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x4b, + 0x10, 0x01, 0x32, 0x84, 0x07, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xf0, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x79, 0x92, 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xea, 0x01, 0x0a, 0x12, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, - 0x6b, 0x12, 0x2b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, - 0x4c, 0x1a, 0x4a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x12, 0xa9, 0x02, 0x0a, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x01, 0x92, 0x41, 0x7f, 0x1a, 0x7d, + 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x50, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, + 0x64, 0x2e, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x64, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, - 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x42, 0xc6, 0x01, - 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, - 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x53, 0x58, 0xaa, 0x02, 0x10, - 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0xca, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0xe2, 0x02, 0x1c, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x11, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x75, 0x72, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xea, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x2b, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x4c, 0x1a, 0x4a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, + 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, + 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6c, + 0x69, 0x6e, 0x6b, 0x12, 0x64, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x42, 0xc6, 0x01, 0x0a, 0x14, 0x63, 0x6f, + 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x42, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, + 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x53, 0x58, 0xaa, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xca, 0x02, 0x10, 0x46, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xe2, + 0x02, 0x1c, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x11, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -943,7 +976,7 @@ func file_flyteidl_service_dataproxy_proto_rawDescGZIP() []byte { } var file_flyteidl_service_dataproxy_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_flyteidl_service_dataproxy_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_flyteidl_service_dataproxy_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_flyteidl_service_dataproxy_proto_goTypes = []interface{}{ (ArtifactType)(0), // 0: flyteidl.service.ArtifactType (*CreateUploadLocationResponse)(nil), // 1: flyteidl.service.CreateUploadLocationResponse @@ -955,39 +988,41 @@ var file_flyteidl_service_dataproxy_proto_goTypes = []interface{}{ (*PreSignedURLs)(nil), // 7: flyteidl.service.PreSignedURLs (*GetDataRequest)(nil), // 8: flyteidl.service.GetDataRequest (*GetDataResponse)(nil), // 9: flyteidl.service.GetDataResponse - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 11: google.protobuf.Duration - (*core.NodeExecutionIdentifier)(nil), // 12: flyteidl.core.NodeExecutionIdentifier - (*core.LiteralMap)(nil), // 13: flyteidl.core.LiteralMap - (*core.Literal)(nil), // 14: flyteidl.core.Literal + nil, // 10: flyteidl.service.CreateUploadLocationResponse.HeadersEntry + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 12: google.protobuf.Duration + (*core.NodeExecutionIdentifier)(nil), // 13: flyteidl.core.NodeExecutionIdentifier + (*core.LiteralMap)(nil), // 14: flyteidl.core.LiteralMap + (*core.Literal)(nil), // 15: flyteidl.core.Literal } var file_flyteidl_service_dataproxy_proto_depIdxs = []int32{ - 10, // 0: flyteidl.service.CreateUploadLocationResponse.expires_at:type_name -> google.protobuf.Timestamp - 11, // 1: flyteidl.service.CreateUploadLocationRequest.expires_in:type_name -> google.protobuf.Duration - 11, // 2: flyteidl.service.CreateDownloadLocationRequest.expires_in:type_name -> google.protobuf.Duration - 10, // 3: flyteidl.service.CreateDownloadLocationResponse.expires_at:type_name -> google.protobuf.Timestamp - 0, // 4: flyteidl.service.CreateDownloadLinkRequest.artifact_type:type_name -> flyteidl.service.ArtifactType - 11, // 5: flyteidl.service.CreateDownloadLinkRequest.expires_in:type_name -> google.protobuf.Duration - 12, // 6: flyteidl.service.CreateDownloadLinkRequest.node_execution_id:type_name -> flyteidl.core.NodeExecutionIdentifier - 10, // 7: flyteidl.service.CreateDownloadLinkResponse.expires_at:type_name -> google.protobuf.Timestamp - 7, // 8: flyteidl.service.CreateDownloadLinkResponse.pre_signed_urls:type_name -> flyteidl.service.PreSignedURLs - 10, // 9: flyteidl.service.PreSignedURLs.expires_at:type_name -> google.protobuf.Timestamp - 13, // 10: flyteidl.service.GetDataResponse.literal_map:type_name -> flyteidl.core.LiteralMap - 7, // 11: flyteidl.service.GetDataResponse.pre_signed_urls:type_name -> flyteidl.service.PreSignedURLs - 14, // 12: flyteidl.service.GetDataResponse.literal:type_name -> flyteidl.core.Literal - 2, // 13: flyteidl.service.DataProxyService.CreateUploadLocation:input_type -> flyteidl.service.CreateUploadLocationRequest - 3, // 14: flyteidl.service.DataProxyService.CreateDownloadLocation:input_type -> flyteidl.service.CreateDownloadLocationRequest - 5, // 15: flyteidl.service.DataProxyService.CreateDownloadLink:input_type -> flyteidl.service.CreateDownloadLinkRequest - 8, // 16: flyteidl.service.DataProxyService.GetData:input_type -> flyteidl.service.GetDataRequest - 1, // 17: flyteidl.service.DataProxyService.CreateUploadLocation:output_type -> flyteidl.service.CreateUploadLocationResponse - 4, // 18: flyteidl.service.DataProxyService.CreateDownloadLocation:output_type -> flyteidl.service.CreateDownloadLocationResponse - 6, // 19: flyteidl.service.DataProxyService.CreateDownloadLink:output_type -> flyteidl.service.CreateDownloadLinkResponse - 9, // 20: flyteidl.service.DataProxyService.GetData:output_type -> flyteidl.service.GetDataResponse - 17, // [17:21] is the sub-list for method output_type - 13, // [13:17] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 11, // 0: flyteidl.service.CreateUploadLocationResponse.expires_at:type_name -> google.protobuf.Timestamp + 10, // 1: flyteidl.service.CreateUploadLocationResponse.headers:type_name -> flyteidl.service.CreateUploadLocationResponse.HeadersEntry + 12, // 2: flyteidl.service.CreateUploadLocationRequest.expires_in:type_name -> google.protobuf.Duration + 12, // 3: flyteidl.service.CreateDownloadLocationRequest.expires_in:type_name -> google.protobuf.Duration + 11, // 4: flyteidl.service.CreateDownloadLocationResponse.expires_at:type_name -> google.protobuf.Timestamp + 0, // 5: flyteidl.service.CreateDownloadLinkRequest.artifact_type:type_name -> flyteidl.service.ArtifactType + 12, // 6: flyteidl.service.CreateDownloadLinkRequest.expires_in:type_name -> google.protobuf.Duration + 13, // 7: flyteidl.service.CreateDownloadLinkRequest.node_execution_id:type_name -> flyteidl.core.NodeExecutionIdentifier + 11, // 8: flyteidl.service.CreateDownloadLinkResponse.expires_at:type_name -> google.protobuf.Timestamp + 7, // 9: flyteidl.service.CreateDownloadLinkResponse.pre_signed_urls:type_name -> flyteidl.service.PreSignedURLs + 11, // 10: flyteidl.service.PreSignedURLs.expires_at:type_name -> google.protobuf.Timestamp + 14, // 11: flyteidl.service.GetDataResponse.literal_map:type_name -> flyteidl.core.LiteralMap + 7, // 12: flyteidl.service.GetDataResponse.pre_signed_urls:type_name -> flyteidl.service.PreSignedURLs + 15, // 13: flyteidl.service.GetDataResponse.literal:type_name -> flyteidl.core.Literal + 2, // 14: flyteidl.service.DataProxyService.CreateUploadLocation:input_type -> flyteidl.service.CreateUploadLocationRequest + 3, // 15: flyteidl.service.DataProxyService.CreateDownloadLocation:input_type -> flyteidl.service.CreateDownloadLocationRequest + 5, // 16: flyteidl.service.DataProxyService.CreateDownloadLink:input_type -> flyteidl.service.CreateDownloadLinkRequest + 8, // 17: flyteidl.service.DataProxyService.GetData:input_type -> flyteidl.service.GetDataRequest + 1, // 18: flyteidl.service.DataProxyService.CreateUploadLocation:output_type -> flyteidl.service.CreateUploadLocationResponse + 4, // 19: flyteidl.service.DataProxyService.CreateDownloadLocation:output_type -> flyteidl.service.CreateDownloadLocationResponse + 6, // 20: flyteidl.service.DataProxyService.CreateDownloadLink:output_type -> flyteidl.service.CreateDownloadLinkResponse + 9, // 21: flyteidl.service.DataProxyService.GetData:output_type -> flyteidl.service.GetDataResponse + 18, // [18:22] is the sub-list for method output_type + 14, // [14:18] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_flyteidl_service_dataproxy_proto_init() } @@ -1119,7 +1154,7 @@ func file_flyteidl_service_dataproxy_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flyteidl_service_dataproxy_proto_rawDesc, NumEnums: 1, - NumMessages: 9, + NumMessages: 10, NumExtensions: 0, NumServices: 1, }, diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json index e23e22df70..b26138d8b7 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json @@ -748,6 +748,10 @@ "filename_root": { "type": "string", "title": "If present, data proxy will use this string in lieu of the md5 hash in the path. When the filename is also included\nthis makes the upload location deterministic. The native url will still be prefixed by the upload location prefix\nin data proxy config. This option is useful when uploading multiple files.\n+optional" + }, + "add_content_md5_metadata": { + "type": "boolean", + "description": "If true, the data proxy will add content_md5 to the metadata to the signed URL and\nit will force clients to add this metadata to the object.\nThis make sure dataproxy is backward compatible with the old flytekit." } }, "description": "CreateUploadLocationRequest specified request for the CreateUploadLocation API.\nThe implementation in data proxy service will create the s3 location with some server side configured prefixes,\nand then:\n - project/domain/(a deterministic str representation of the content_md5)/filename (if present); OR\n - project/domain/filename_root (if present)/filename (if present)." @@ -767,6 +771,13 @@ "type": "string", "format": "date-time", "description": "ExpiresAt defines when will the signed URL expires." + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Data proxy generates these headers for client, and they have to add these headers to the request when uploading the file." } } }, diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 5cc6b36eeb..8c01d5f284 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -22747,6 +22747,9 @@ export namespace flyteidl { /** CreateUploadLocationResponse expiresAt */ expiresAt?: (google.protobuf.ITimestamp|null); + + /** CreateUploadLocationResponse headers */ + headers?: ({ [k: string]: string }|null); } /** Represents a CreateUploadLocationResponse. */ @@ -22767,6 +22770,9 @@ export namespace flyteidl { /** CreateUploadLocationResponse expiresAt. */ public expiresAt?: (google.protobuf.ITimestamp|null); + /** CreateUploadLocationResponse headers. */ + public headers: { [k: string]: string }; + /** * Creates a new CreateUploadLocationResponse instance using the specified properties. * @param [properties] Properties to set @@ -22820,6 +22826,9 @@ export namespace flyteidl { /** CreateUploadLocationRequest filenameRoot */ filenameRoot?: (string|null); + + /** CreateUploadLocationRequest addContentMd5Metadata */ + addContentMd5Metadata?: (boolean|null); } /** Represents a CreateUploadLocationRequest. */ @@ -22849,6 +22858,9 @@ export namespace flyteidl { /** CreateUploadLocationRequest filenameRoot. */ public filenameRoot: string; + /** CreateUploadLocationRequest addContentMd5Metadata. */ + public addContentMd5Metadata: boolean; + /** * Creates a new CreateUploadLocationRequest instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 3400b971b3..fffe330902 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -53330,6 +53330,7 @@ * @property {string|null} [signedUrl] CreateUploadLocationResponse signedUrl * @property {string|null} [nativeUrl] CreateUploadLocationResponse nativeUrl * @property {google.protobuf.ITimestamp|null} [expiresAt] CreateUploadLocationResponse expiresAt + * @property {Object.|null} [headers] CreateUploadLocationResponse headers */ /** @@ -53341,6 +53342,7 @@ * @param {flyteidl.service.ICreateUploadLocationResponse=} [properties] Properties to set */ function CreateUploadLocationResponse(properties) { + this.headers = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -53371,6 +53373,14 @@ */ CreateUploadLocationResponse.prototype.expiresAt = null; + /** + * CreateUploadLocationResponse headers. + * @member {Object.} headers + * @memberof flyteidl.service.CreateUploadLocationResponse + * @instance + */ + CreateUploadLocationResponse.prototype.headers = $util.emptyObject; + /** * Creates a new CreateUploadLocationResponse instance using the specified properties. * @function create @@ -53401,6 +53411,9 @@ writer.uint32(/* id 2, wireType 2 =*/18).string(message.nativeUrl); if (message.expiresAt != null && message.hasOwnProperty("expiresAt")) $root.google.protobuf.Timestamp.encode(message.expiresAt, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.headers != null && message.hasOwnProperty("headers")) + for (var keys = Object.keys(message.headers), i = 0; i < keys.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.headers[keys[i]]).ldelim(); return writer; }; @@ -53418,7 +53431,7 @@ CreateUploadLocationResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.service.CreateUploadLocationResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.service.CreateUploadLocationResponse(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -53431,6 +53444,14 @@ case 3: message.expiresAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; + case 4: + reader.skip().pos++; + if (message.headers === $util.emptyObject) + message.headers = {}; + key = reader.string(); + reader.pos++; + message.headers[key] = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -53461,6 +53482,14 @@ if (error) return "expiresAt." + error; } + if (message.headers != null && message.hasOwnProperty("headers")) { + if (!$util.isObject(message.headers)) + return "headers: object expected"; + var key = Object.keys(message.headers); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.headers[key[i]])) + return "headers: string{k:string} expected"; + } return null; }; @@ -53479,6 +53508,7 @@ * @property {google.protobuf.IDuration|null} [expiresIn] CreateUploadLocationRequest expiresIn * @property {Uint8Array|null} [contentMd5] CreateUploadLocationRequest contentMd5 * @property {string|null} [filenameRoot] CreateUploadLocationRequest filenameRoot + * @property {boolean|null} [addContentMd5Metadata] CreateUploadLocationRequest addContentMd5Metadata */ /** @@ -53544,6 +53574,14 @@ */ CreateUploadLocationRequest.prototype.filenameRoot = ""; + /** + * CreateUploadLocationRequest addContentMd5Metadata. + * @member {boolean} addContentMd5Metadata + * @memberof flyteidl.service.CreateUploadLocationRequest + * @instance + */ + CreateUploadLocationRequest.prototype.addContentMd5Metadata = false; + /** * Creates a new CreateUploadLocationRequest instance using the specified properties. * @function create @@ -53580,6 +53618,8 @@ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.contentMd5); if (message.filenameRoot != null && message.hasOwnProperty("filenameRoot")) writer.uint32(/* id 6, wireType 2 =*/50).string(message.filenameRoot); + if (message.addContentMd5Metadata != null && message.hasOwnProperty("addContentMd5Metadata")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.addContentMd5Metadata); return writer; }; @@ -53619,6 +53659,9 @@ case 6: message.filenameRoot = reader.string(); break; + case 7: + message.addContentMd5Metadata = reader.bool(); + break; default: reader.skipType(tag & 7); break; @@ -53658,6 +53701,9 @@ if (message.filenameRoot != null && message.hasOwnProperty("filenameRoot")) if (!$util.isString(message.filenameRoot)) return "filenameRoot: string expected"; + if (message.addContentMd5Metadata != null && message.hasOwnProperty("addContentMd5Metadata")) + if (typeof message.addContentMd5Metadata !== "boolean") + return "addContentMd5Metadata: boolean expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py index feced8c21e..f4c25e43ae 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py @@ -19,7 +19,7 @@ from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\x97\x01\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"\xeb\x01\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"\xc7\x01\n\x1a\x43reateDownloadLinkResponse\x12!\n\nsigned_url\x18\x01 \x03(\tB\x02\x18\x01R\tsignedUrl\x12=\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01R\texpiresAt\x12G\n\x0fpre_signed_urls\x18\x03 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsR\rpreSignedUrls\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"-\n\x0eGetDataRequest\x12\x1b\n\tflyte_url\x18\x01 \x01(\tR\x08\x66lyteUrl\"\xd6\x01\n\x0fGetDataResponse\x12<\n\x0bliteral_map\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\nliteralMap\x12I\n\x0fpre_signed_urls\x18\x02 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsH\x00R\rpreSignedUrls\x12\x32\n\x07literal\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.LiteralH\x00R\x07literalB\x06\n\x04\x64\x61ta*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\x84\x07\n\x10\x44\x61taProxyService\x12\xf0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\"y\x92\x41M\x1aKCreates a write-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa9\x02\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\"\xab\x01\x88\x02\x01\x92\x41\x7f\x1a}Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\xea\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"y\x92\x41L\x1aJCreates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_link\x12\x64\n\x07GetData\x12 .flyteidl.service.GetDataRequest\x1a!.flyteidl.service.GetDataResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/dataB\xc6\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\xaa\x02\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12U\n\x07headers\x18\x04 \x03(\x0b\x32;.flyteidl.service.CreateUploadLocationResponse.HeadersEntryR\x07headers\x1a:\n\x0cHeadersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x02\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\x12\x37\n\x18\x61\x64\x64_content_md5_metadata\x18\x07 \x01(\x08R\x15\x61\x64\x64\x43ontentMd5Metadata\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"\xc7\x01\n\x1a\x43reateDownloadLinkResponse\x12!\n\nsigned_url\x18\x01 \x03(\tB\x02\x18\x01R\tsignedUrl\x12=\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01R\texpiresAt\x12G\n\x0fpre_signed_urls\x18\x03 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsR\rpreSignedUrls\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"-\n\x0eGetDataRequest\x12\x1b\n\tflyte_url\x18\x01 \x01(\tR\x08\x66lyteUrl\"\xd6\x01\n\x0fGetDataResponse\x12<\n\x0bliteral_map\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\nliteralMap\x12I\n\x0fpre_signed_urls\x18\x02 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsH\x00R\rpreSignedUrls\x12\x32\n\x07literal\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.LiteralH\x00R\x07literalB\x06\n\x04\x64\x61ta*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\x84\x07\n\x10\x44\x61taProxyService\x12\xf0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\"y\x92\x41M\x1aKCreates a write-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa9\x02\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\"\xab\x01\x88\x02\x01\x92\x41\x7f\x1a}Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\xea\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"y\x92\x41L\x1aJCreates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_link\x12\x64\n\x07GetData\x12 .flyteidl.service.GetDataRequest\x1a!.flyteidl.service.GetDataResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/dataB\xc6\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -28,6 +28,8 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\016DataproxyProtoP\001Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' + _CREATEUPLOADLOCATIONRESPONSE_HEADERSENTRY._options = None + _CREATEUPLOADLOCATIONRESPONSE_HEADERSENTRY._serialized_options = b'8\001' _CREATEDOWNLOADLOCATIONREQUEST._options = None _CREATEDOWNLOADLOCATIONREQUEST._serialized_options = b'\030\001' _CREATEDOWNLOADLOCATIONRESPONSE._options = None @@ -44,26 +46,28 @@ _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._serialized_options = b'\222AL\032JCreates a read-only http location that is accessible for tasks at runtime.\202\323\344\223\002$:\001*\"\037/api/v1/dataproxy/artifact_link' _DATAPROXYSERVICE.methods_by_name['GetData']._options = None _DATAPROXYSERVICE.methods_by_name['GetData']._serialized_options = b'\202\323\344\223\002\016\022\014/api/v1/data' - _globals['_ARTIFACTTYPE']._serialized_start=1731 - _globals['_ARTIFACTTYPE']._serialized_end=1798 + _globals['_ARTIFACTTYPE']._serialized_start=1935 + _globals['_ARTIFACTTYPE']._serialized_end=2002 _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_start=260 - _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_end=411 - _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=414 - _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=649 - _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=651 - _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=775 - _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=777 - _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=903 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=906 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1156 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1159 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1358 - _globals['_PRESIGNEDURLS']._serialized_start=1360 - _globals['_PRESIGNEDURLS']._serialized_end=1465 - _globals['_GETDATAREQUEST']._serialized_start=1467 - _globals['_GETDATAREQUEST']._serialized_end=1512 - _globals['_GETDATARESPONSE']._serialized_start=1515 - _globals['_GETDATARESPONSE']._serialized_end=1729 - _globals['_DATAPROXYSERVICE']._serialized_start=1801 - _globals['_DATAPROXYSERVICE']._serialized_end=2701 + _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_end=558 + _globals['_CREATEUPLOADLOCATIONRESPONSE_HEADERSENTRY']._serialized_start=500 + _globals['_CREATEUPLOADLOCATIONRESPONSE_HEADERSENTRY']._serialized_end=558 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=561 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=853 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=855 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=979 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=981 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=1107 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=1110 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1360 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1363 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1562 + _globals['_PRESIGNEDURLS']._serialized_start=1564 + _globals['_PRESIGNEDURLS']._serialized_end=1669 + _globals['_GETDATAREQUEST']._serialized_start=1671 + _globals['_GETDATAREQUEST']._serialized_end=1716 + _globals['_GETDATARESPONSE']._serialized_start=1719 + _globals['_GETDATARESPONSE']._serialized_end=1933 + _globals['_DATAPROXYSERVICE']._serialized_start=2005 + _globals['_DATAPROXYSERVICE']._serialized_end=2905 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi index 40245087ab..50c2bf3c5e 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi @@ -20,30 +20,41 @@ ARTIFACT_TYPE_UNDEFINED: ArtifactType ARTIFACT_TYPE_DECK: ArtifactType class CreateUploadLocationResponse(_message.Message): - __slots__ = ["signed_url", "native_url", "expires_at"] + __slots__ = ["signed_url", "native_url", "expires_at", "headers"] + class HeadersEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... SIGNED_URL_FIELD_NUMBER: _ClassVar[int] NATIVE_URL_FIELD_NUMBER: _ClassVar[int] EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + HEADERS_FIELD_NUMBER: _ClassVar[int] signed_url: str native_url: str expires_at: _timestamp_pb2.Timestamp - def __init__(self, signed_url: _Optional[str] = ..., native_url: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + headers: _containers.ScalarMap[str, str] + def __init__(self, signed_url: _Optional[str] = ..., native_url: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., headers: _Optional[_Mapping[str, str]] = ...) -> None: ... class CreateUploadLocationRequest(_message.Message): - __slots__ = ["project", "domain", "filename", "expires_in", "content_md5", "filename_root"] + __slots__ = ["project", "domain", "filename", "expires_in", "content_md5", "filename_root", "add_content_md5_metadata"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] FILENAME_FIELD_NUMBER: _ClassVar[int] EXPIRES_IN_FIELD_NUMBER: _ClassVar[int] CONTENT_MD5_FIELD_NUMBER: _ClassVar[int] FILENAME_ROOT_FIELD_NUMBER: _ClassVar[int] + ADD_CONTENT_MD5_METADATA_FIELD_NUMBER: _ClassVar[int] project: str domain: str filename: str expires_in: _duration_pb2.Duration content_md5: bytes filename_root: str - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., filename: _Optional[str] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., content_md5: _Optional[bytes] = ..., filename_root: _Optional[str] = ...) -> None: ... + add_content_md5_metadata: bool + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., filename: _Optional[str] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., content_md5: _Optional[bytes] = ..., filename_root: _Optional[str] = ..., add_content_md5_metadata: bool = ...) -> None: ... class CreateDownloadLocationRequest(_message.Message): __slots__ = ["native_url", "expires_in"] diff --git a/flyteidl/gen/pb_rust/flyteidl.service.rs b/flyteidl/gen/pb_rust/flyteidl.service.rs index c427170333..e53abba678 100644 --- a/flyteidl/gen/pb_rust/flyteidl.service.rs +++ b/flyteidl/gen/pb_rust/flyteidl.service.rs @@ -85,6 +85,9 @@ pub struct CreateUploadLocationResponse { /// ExpiresAt defines when will the signed URL expires. #[prost(message, optional, tag="3")] pub expires_at: ::core::option::Option<::prost_types::Timestamp>, + /// Data proxy generates these headers for client, and they have to add these headers to the request when uploading the file. + #[prost(map="string, string", tag="4")] + pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, } /// CreateUploadLocationRequest specified request for the CreateUploadLocation API. /// The implementation in data proxy service will create the s3 location with some server side configured prefixes, @@ -122,6 +125,11 @@ pub struct CreateUploadLocationRequest { /// +optional #[prost(string, tag="6")] pub filename_root: ::prost::alloc::string::String, + /// If true, the data proxy will add content_md5 to the metadata to the signed URL and + /// it will force clients to add this metadata to the object. + /// This make sure dataproxy is backward compatible with the old flytekit. + #[prost(bool, tag="7")] + pub add_content_md5_metadata: bool, } /// CreateDownloadLocationRequest specified request for the CreateDownloadLocation API. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/flyteidl/go.mod b/flyteidl/go.mod index dcc6b2ccaf..29ec7f9164 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -45,7 +45,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.9 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect diff --git a/flyteidl/go.sum b/flyteidl/go.sum index 0fa41c0004..0b4fde0b1d 100644 --- a/flyteidl/go.sum +++ b/flyteidl/go.sum @@ -105,8 +105,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/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/flyteidl/protos/flyteidl/service/dataproxy.proto b/flyteidl/protos/flyteidl/service/dataproxy.proto index 622910f645..b24c794cc8 100644 --- a/flyteidl/protos/flyteidl/service/dataproxy.proto +++ b/flyteidl/protos/flyteidl/service/dataproxy.proto @@ -20,6 +20,9 @@ message CreateUploadLocationResponse { // ExpiresAt defines when will the signed URL expires. google.protobuf.Timestamp expires_at = 3; + + // Data proxy generates these headers for client, and they have to add these headers to the request when uploading the file. + map headers = 4; } // CreateUploadLocationRequest specified request for the CreateUploadLocation API. @@ -55,6 +58,11 @@ message CreateUploadLocationRequest { // in data proxy config. This option is useful when uploading multiple files. // +optional string filename_root = 6; + + // If true, the data proxy will add content_md5 to the metadata to the signed URL and + // it will force clients to add this metadata to the object. + // This make sure dataproxy is backward compatible with the old flytekit. + bool add_content_md5_metadata = 7; } // CreateDownloadLocationRequest specified request for the CreateDownloadLocation API. @@ -67,7 +75,6 @@ message CreateDownloadLocationRequest { // exceeds the platform allowed max. // +optional. The default value comes from a global config. google.protobuf.Duration expires_in = 2; - } message CreateDownloadLocationResponse { diff --git a/flyteplugins/go.mod b/flyteplugins/go.mod index 4b9e7d5f47..db98207f71 100644 --- a/flyteplugins/go.mod +++ b/flyteplugins/go.mod @@ -64,7 +64,7 @@ require ( github.com/evanphx/json-patch v5.6.0+incompatible // 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.9 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/flyteplugins/go.sum b/flyteplugins/go.sum index 89e2a0ee49..4616432441 100644 --- a/flyteplugins/go.sum +++ b/flyteplugins/go.sum @@ -138,8 +138,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/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/flyteplugins/go/tasks/pluginmachinery/ioutils/remote_file_output_reader_test.go b/flyteplugins/go/tasks/pluginmachinery/ioutils/remote_file_output_reader_test.go index 0e7ae179d9..251a3adc55 100644 --- a/flyteplugins/go/tasks/pluginmachinery/ioutils/remote_file_output_reader_test.go +++ b/flyteplugins/go/tasks/pluginmachinery/ioutils/remote_file_output_reader_test.go @@ -14,9 +14,14 @@ import ( ) type MemoryMetadata struct { - exists bool - size int64 - etag string + exists bool + size int64 + etag string + contentMD5 string +} + +func (m MemoryMetadata) ContentMD5() string { + return m.contentMD5 } func (m MemoryMetadata) Size() int64 { diff --git a/flyteplugins/go/tasks/plugins/array/k8s/management_test.go b/flyteplugins/go/tasks/plugins/array/k8s/management_test.go index 0eaed65467..c5d52efda7 100644 --- a/flyteplugins/go/tasks/plugins/array/k8s/management_test.go +++ b/flyteplugins/go/tasks/plugins/array/k8s/management_test.go @@ -27,9 +27,10 @@ import ( ) type metadata struct { - exists bool - size int64 - etag string + exists bool + size int64 + etag string + contentMD5 string } func (m metadata) Exists() bool { @@ -44,6 +45,10 @@ func (m metadata) Etag() string { return m.etag } +func (m metadata) ContentMD5() string { + return m.contentMD5 +} + func createSampleContainerTask() *core2.Container { return &core2.Container{ Command: []string{"cmd"}, @@ -127,7 +132,7 @@ func getMockTaskExecutionContext(ctx context.Context, parallelism int) *mocks.Ta matchedBy := mock.MatchedBy(func(s storage.DataReference) bool { return true }) - composedProtobufStore.On("Head", mock.Anything, matchedBy).Return(metadata{true, 0, ""}, nil) + composedProtobufStore.On("Head", mock.Anything, matchedBy).Return(metadata{true, 0, "", ""}, nil) dataStore := &storage.DataStore{ ComposedProtobufStore: composedProtobufStore, ReferenceConstructor: &storage.URLPathConstructor{}, diff --git a/flytepropeller/go.mod b/flytepropeller/go.mod index a3be11827c..f42e61897e 100644 --- a/flytepropeller/go.mod +++ b/flytepropeller/go.mod @@ -72,7 +72,7 @@ require ( github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/flyteorg/stow v0.3.8 // indirect + github.com/flyteorg/stow v0.3.9 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect diff --git a/flytepropeller/go.sum b/flytepropeller/go.sum index 04f1dc08f3..93880b2b31 100644 --- a/flytepropeller/go.sum +++ b/flytepropeller/go.sum @@ -144,8 +144,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/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/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go b/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go index 3c016fe6bf..4011ffb956 100644 --- a/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go +++ b/flytepropeller/pkg/controller/nodes/dynamic/dynamic_workflow_test.go @@ -584,6 +584,10 @@ func Test_dynamicNodeHandler_buildContextualDynamicWorkflow_withLaunchPlans(t *t type existsMetadata struct{} +func (e existsMetadata) ContentMD5() string { + return "" +} + func (e existsMetadata) Exists() bool { return false } diff --git a/flytepropeller/pkg/controller/nodes/executor_test.go b/flytepropeller/pkg/controller/nodes/executor_test.go index 2bc552bab0..237928a937 100644 --- a/flytepropeller/pkg/controller/nodes/executor_test.go +++ b/flytepropeller/pkg/controller/nodes/executor_test.go @@ -2541,6 +2541,10 @@ func init() { type existsMetadata struct{} +func (e existsMetadata) ContentMD5() string { + return "" +} + func (e existsMetadata) Exists() bool { return false } diff --git a/flytestdlib/go.mod b/flytestdlib/go.mod index 947fbe4b5c..314e9ad050 100644 --- a/flytestdlib/go.mod +++ b/flytestdlib/go.mod @@ -9,7 +9,7 @@ require ( github.com/ernesto-jimenez/gogen v0.0.0-20180125220232-d7d4131e6607 github.com/fatih/color v1.13.0 github.com/fatih/structtag v1.2.0 - github.com/flyteorg/stow v0.3.8 + github.com/flyteorg/stow v0.3.9 github.com/fsnotify/fsnotify v1.6.0 github.com/ghodss/yaml v1.0.0 github.com/go-gormigrate/gormigrate/v2 v2.1.1 diff --git a/flytestdlib/go.sum b/flytestdlib/go.sum index baacaca1e5..6d6cb15567 100644 --- a/flytestdlib/go.sum +++ b/flytestdlib/go.sum @@ -115,8 +115,8 @@ github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/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/flytestdlib/storage/mem_store.go b/flytestdlib/storage/mem_store.go index abe4de12cd..a95a0a49ca 100644 --- a/flytestdlib/storage/mem_store.go +++ b/flytestdlib/storage/mem_store.go @@ -19,9 +19,10 @@ type InMemoryStore struct { } type MemoryMetadata struct { - exists bool - size int64 - etag string + exists bool + size int64 + etag string + contentMD5 string } func (m MemoryMetadata) Size() int64 { @@ -36,6 +37,10 @@ func (m MemoryMetadata) Etag() string { return m.etag } +func (m MemoryMetadata) ContentMD5() string { + return m.contentMD5 +} + func (s *InMemoryStore) Head(ctx context.Context, reference DataReference) (Metadata, error) { data, found := s.cache[reference] var hash [md5.Size]byte diff --git a/flytestdlib/storage/storage.go b/flytestdlib/storage/storage.go index a022ce3e62..3e84cb7acb 100644 --- a/flytestdlib/storage/storage.go +++ b/flytestdlib/storage/storage.go @@ -34,6 +34,10 @@ type Metadata interface { Exists() bool Size() int64 Etag() string + // ContentMD5 retrieves the value of a special metadata tag added by the system that + // contains the MD5 of the uploaded file. If there is no metadata attached + // or that `FlyteContentMD5` key isn't set, ContentMD5 will return empty. + ContentMD5() string } // DataStore is a simplified interface for accessing and storing data in one of the Cloud stores. @@ -52,10 +56,13 @@ type SignedURLProperties struct { ExpiresIn time.Duration // ContentMD5 defines the expected hash of the generated file. It's strongly recommended setting it. ContentMD5 string + // AddContentMD5Metadata Add ContentMD5 to the metadata of signed URL if true. + AddContentMD5Metadata bool } type SignedURLResponse struct { - URL url.URL + URL url.URL + RequiredRequestHeaders map[string]string } //go:generate mockery -name RawStore -case=underscore diff --git a/flytestdlib/storage/stow_store.go b/flytestdlib/storage/stow_store.go index 701604d437..092ac1bbed 100644 --- a/flytestdlib/storage/stow_store.go +++ b/flytestdlib/storage/stow_store.go @@ -6,6 +6,7 @@ import ( "io" "net/url" "strconv" + "strings" "sync" "time" @@ -27,9 +28,8 @@ import ( "github.com/flyteorg/stow/swift" ) -const ( - FailureTypeLabel contextutils.Key = "failure_type" -) +const FailureTypeLabel contextutils.Key = "failure_type" +const FlyteContentMD5 = "flyteContentMD5" var fQNFn = map[string]func(string) DataReference{ s3.Kind: func(bucket string) DataReference { @@ -104,9 +104,10 @@ type stowMetrics struct { // StowMetadata that will be returned type StowMetadata struct { - exists bool - size int64 - etag string + exists bool + size int64 + etag string + contentMD5 string } func (s StowMetadata) Size() int64 { @@ -121,6 +122,10 @@ func (s StowMetadata) Etag() string { return s.etag } +func (s StowMetadata) ContentMD5() string { + return s.contentMD5 +} + // Implements DataStore to talk to stow location store. type StowStore struct { copyImpl @@ -221,12 +226,19 @@ func (s *StowStore) Head(ctx context.Context, reference DataReference) (Metadata // Err will be caught below } else if etag, err := item.ETag(); err != nil { // Err will be caught below + } else if metadata, err := item.Metadata(); err != nil { + // Err will be caught below } else { t.Stop() + contentMD5, ok := metadata[strings.ToLower(FlyteContentMD5)].(string) + if !ok { + logger.Warningf(ctx, "Failed to cast contentMD5 [%v] to string", contentMD5) + } return StowMetadata{ - exists: true, - size: size, - etag: etag, + exists: true, + size: size, + etag: etag, + contentMD5: contentMD5, }, nil } } @@ -345,22 +357,24 @@ func (s *StowStore) CreateSignedURL(ctx context.Context, reference DataReference return SignedURLResponse{}, err } - urlStr, err := c.PreSignRequest(ctx, properties.Scope, key, stow.PresignRequestParams{ - ExpiresIn: properties.ExpiresIn, - ContentMD5: properties.ContentMD5, + res, err := c.PreSignRequest(ctx, properties.Scope, key, stow.PresignRequestParams{ + ExpiresIn: properties.ExpiresIn, + ContentMD5: properties.ContentMD5, + AddContentMD5Metadata: properties.AddContentMD5Metadata, }) if err != nil { return SignedURLResponse{}, err } - urlVal, err := url.Parse(urlStr) + urlVal, err := url.Parse(res.Url) if err != nil { return SignedURLResponse{}, err } return SignedURLResponse{ - URL: *urlVal, + URL: *urlVal, + RequiredRequestHeaders: res.RequiredRequestHeaders, }, nil } diff --git a/flytestdlib/storage/stow_store_test.go b/flytestdlib/storage/stow_store_test.go index d888977c57..99678eb8ad 100644 --- a/flytestdlib/storage/stow_store_test.go +++ b/flytestdlib/storage/stow_store_test.go @@ -53,8 +53,8 @@ type mockStowContainer struct { // CreateSignedURL creates a signed url with the provided properties. func (m mockStowContainer) PreSignRequest(_ context.Context, _ stow.ClientMethod, s string, - _ stow.PresignRequestParams) (url string, err error) { - return s, nil + _ stow.PresignRequestParams) (response stow.PresignResponse, err error) { + return stow.PresignResponse{Url: s}, nil } func (m mockStowContainer) ID() string { diff --git a/go.mod b/go.mod index 0280ec305c..85bd1e0bd8 100644 --- a/go.mod +++ b/go.mod @@ -66,7 +66,7 @@ require ( github.com/felixge/httpsnoop v1.0.3 // indirect github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000 // indirect github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 // indirect - github.com/flyteorg/stow v0.3.8 // indirect + github.com/flyteorg/stow v0.3.9 // 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/go.sum b/go.sum index d3fdd20bd8..cb808f26da 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= +github.com/flyteorg/stow v0.3.9/go.mod h1:fArjMpsYJNWkp/hyDKKdbcv07gxbuLmKFcb7YT1aSOM= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= From 68a34159b94ef4c82a5fa1199bbee142d04614e9 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:08:34 -0700 Subject: [PATCH 45/76] Pin flyteconsole version in release process (#5037) Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- script/release.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/script/release.sh b/script/release.sh index 45d31f53b9..c6773e3040 100755 --- a/script/release.sh +++ b/script/release.sh @@ -3,7 +3,10 @@ set -ex FLYTEKIT_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flytekit/releases/latest" | jq -r .tag_name | sed 's/^v//') -FLYTECONSOLE_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flyteconsole/releases/latest" | jq -r .tag_name) +# The flyteconsole revamp is not released yet (we need "schedules" to be present before we can release it). In the meantime +# we are using the latest release (v1.10.3) as the tag for flyteconsole. +# FLYTECONSOLE_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flyteconsole/releases/latest" | jq -r .tag_name) +FLYTECONSOLE_TAG=v1.10.3 # bump latest release of flyte component in helm sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte/values.yaml From 92e45a0c8f15ee8e53e250ed327b6d77182a796e Mon Sep 17 00:00:00 2001 From: Flyte Bot Date: Mon, 11 Mar 2024 20:41:41 -0700 Subject: [PATCH 46/76] Update Flyte components (#5039) * Update Flyte Components Signed-off-by: Flyte-Bot * Add changelog and bump version in conf.py to 1.11.0 Signed-off-by: Eduardo Apolinario * Mention the removal of `kustomize` Signed-off-by: Eduardo Apolinario * Set flyteagent version back to 1.10.8b4 Signed-off-by: Eduardo Apolinario --------- Signed-off-by: Flyte-Bot Signed-off-by: Eduardo Apolinario Co-authored-by: eapolinario --- CHANGELOG/CHANGELOG-v1.11.0.md | 32 +++++++++++++++++ charts/flyte-binary/README.md | 2 +- charts/flyte-binary/values.yaml | 2 +- charts/flyte-core/README.md | 14 ++++---- charts/flyte-core/values.yaml | 12 +++---- charts/flyte/README.md | 18 +++++----- charts/flyte/values.yaml | 12 +++---- .../flyte_aws_scheduler_helm_generated.yaml | 32 ++++++++--------- .../flyte_helm_controlplane_generated.yaml | 22 ++++++------ .../eks/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/eks/flyte_helm_generated.yaml | 36 +++++++++---------- .../flyte_helm_controlplane_generated.yaml | 22 ++++++------ .../gcp/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/gcp/flyte_helm_generated.yaml | 36 +++++++++---------- .../flyte_sandbox_binary_helm_generated.yaml | 4 +-- deployment/sandbox/flyte_helm_generated.yaml | 36 +++++++++---------- .../manifests/complete-agent.yaml | 8 ++--- .../sandbox-bundled/manifests/complete.yaml | 8 ++--- docker/sandbox-bundled/manifests/dev.yaml | 4 +-- docs/conf.py | 2 +- 20 files changed, 181 insertions(+), 149 deletions(-) create mode 100644 CHANGELOG/CHANGELOG-v1.11.0.md 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/charts/flyte-binary/README.md b/charts/flyte-binary/README.md index 78c301f2b3..fcd66f3186 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.11.0-b1"` | | +| configuration.co-pilot.image.tag | string | `"v1.11.0"` | | | 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/values.yaml b/charts/flyte-binary/values.yaml index 61bb73e72d..e84b1c54f4 100644 --- a/charts/flyte-binary/values.yaml +++ b/charts/flyte-binary/values.yaml @@ -159,7 +159,7 @@ configuration: # repository CoPilot sidecar image repository repository: cr.flyte.org/flyteorg/flytecopilot # FLYTECOPILOT_IMAGE # tag CoPilot sidecar image tag - tag: v1.11.0-b1 # FLYTECOPILOT_TAG + tag: v1.11.0 # FLYTECOPILOT_TAG # agentService Flyte Agent configuration agentService: defaultAgent: diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index 6b54dc56d3..5a18f902cb 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -95,8 +95,8 @@ 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.11.0-b1","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration | -| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1","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","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration | +| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0","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). | @@ -130,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.11.0-b1"` | Docker image tag | +| datacatalog.image.tag | string | `"v1.11.0"` | 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 | @@ -165,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.11.0-b1"` | | +| flyteadmin.image.tag | string | `"v1.11.0"` | | | flyteadmin.initialProjects | list | `["flytesnacks","flytetester","flyteexamples"]` | Initial projects to create | | flyteadmin.nodeSelector | object | `{}` | nodeSelector for Flyteadmin deployment | | flyteadmin.podAnnotations | object | `{}` | Annotations for Flyteadmin pods | @@ -202,7 +202,7 @@ helm install gateway bitnami/contour -n flyte | 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.11.0"` | | +| 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 | @@ -226,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.11.0-b1"` | | +| flytepropeller.image.tag | string | `"v1.11.0"` | | | flytepropeller.manager | bool | `false` | | | flytepropeller.nodeSelector | object | `{}` | nodeSelector for Flytepropeller deployment | | flytepropeller.podAnnotations | object | `{}` | Annotations for Flytepropeller pods | @@ -256,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.11.0-b1"` | Docker image tag | +| flytescheduler.image.tag | string | `"v1.11.0"` | 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 | diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml index fbc2016522..0319b3baca 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -16,7 +16,7 @@ flyteadmin: image: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE - tag: v1.11.0-b1 # FLYTEADMIN_TAG + tag: v1.11.0 # FLYTEADMIN_TAG pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables # @@ -142,7 +142,7 @@ flytescheduler: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.11.0-b1 # FLYTESCHEDULER_TAG + tag: v1.11.0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -208,7 +208,7 @@ datacatalog: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.11.0-b1 # DATACATALOG_TAG + tag: v1.11.0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -296,7 +296,7 @@ flytepropeller: image: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE - tag: v1.11.0-b1 # FLYTEPROPELLER_TAG + tag: v1.11.0 # FLYTEPROPELLER_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment resources: @@ -379,7 +379,7 @@ flyteconsole: image: # -- Docker image for Flyteconsole deployment repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE - tag: v1.11.0 # FLYTECONSOLE_TAG + tag: v1.10.3 # FLYTECONSOLE_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flyteconsole deployment resources: @@ -731,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.11.0-b1 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/charts/flyte/README.md b/charts/flyte/README.md index f2ac67bdc2..b1f00aa4e8 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -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.11.0-b1","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.11.0-b1"},"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-b1"},"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.11.0"},"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-b1"},"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-b1"},"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","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.11.0"},"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"},"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"},"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"},"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.11.0-b1","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","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.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.11.0-b1","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-b1","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","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","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 | @@ -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.11.0-b1"` | Docker image tag | +| flyte.datacatalog.image.tag | string | `"v1.11.0"` | 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.11.0-b1"` | Docker image tag | +| flyte.flyteadmin.image.tag | string | `"v1.11.0"` | 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.11.0"` | 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.11.0-b1"` | Docker image tag | +| flyte.flytepropeller.image.tag | string | `"v1.11.0"` | 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.11.0-b1"` | Docker image tag | +| flyte.flytescheduler.image.tag | string | `"v1.11.0"` | 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 50a1fc5402..f0d2f7c75a 100755 --- a/charts/flyte/values.yaml +++ b/charts/flyte/values.yaml @@ -16,7 +16,7 @@ flyte: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE # -- Docker image tag - tag: v1.11.0-b1 # FLYTEADMIN_TAG + tag: v1.11.0 # FLYTEADMIN_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables @@ -84,7 +84,7 @@ flyte: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.11.0-b1 # FLYTESCHEDULER_TAG + tag: v1.11.0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -129,7 +129,7 @@ flyte: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.11.0-b1 # DATACATALOG_TAG + tag: v1.11.0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -178,7 +178,7 @@ flyte: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE # -- Docker image tag - tag: v1.11.0-b1 # FLYTEPROPELLER_TAG + tag: v1.11.0 # FLYTEPROPELLER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment @@ -223,7 +223,7 @@ flyte: # -- Docker image for Flyteconsole deployment repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE # -- Docker image tag - tag: v1.11.0 # FLYTECONSOLE_TAG + tag: v1.10.3 # FLYTECONSOLE_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flyteconsole deployment @@ -471,7 +471,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.11.0-b1 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml index a3f67a2fb8..a5b9e0081f 100644 --- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml +++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml @@ -429,7 +429,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -869,7 +869,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -890,7 +890,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -908,7 +908,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -925,7 +925,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -952,7 +952,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1057,7 +1057,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1113,7 +1113,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -1187,7 +1187,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1205,7 +1205,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1268,7 +1268,7 @@ spec: template: metadata: annotations: - configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" + configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1294,7 +1294,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1348,9 +1348,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b1 + app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" + configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" spec: securityContext: fsGroup: 65534 @@ -1362,7 +1362,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1389,7 +1389,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_helm_controlplane_generated.yaml b/deployment/eks/flyte_helm_controlplane_generated.yaml index b60694f947..9e813c4275 100644 --- a/deployment/eks/flyte_helm_controlplane_generated.yaml +++ b/deployment/eks/flyte_helm_controlplane_generated.yaml @@ -574,7 +574,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -595,7 +595,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -613,7 +613,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -630,7 +630,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -657,7 +657,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -762,7 +762,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -818,7 +818,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -892,7 +892,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -910,7 +910,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -993,7 +993,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1013,7 +1013,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml index 9a73a12ccf..865b72da24 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.11.0-b1 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -428,7 +428,7 @@ spec: template: metadata: annotations: - configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" + configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -454,7 +454,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -508,9 +508,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b1 + app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" + configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" spec: securityContext: fsGroup: 65534 @@ -522,7 +522,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -549,7 +549,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml index 8a6787818b..bb0b5e966c 100644 --- a/deployment/eks/flyte_helm_generated.yaml +++ b/deployment/eks/flyte_helm_generated.yaml @@ -460,7 +460,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -900,7 +900,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -921,7 +921,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -939,7 +939,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -956,7 +956,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -983,7 +983,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1088,7 +1088,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1144,7 +1144,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -1218,7 +1218,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1236,7 +1236,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1319,7 +1319,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1339,7 +1339,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1398,7 +1398,7 @@ spec: template: metadata: annotations: - configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" + configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1424,7 +1424,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1478,9 +1478,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b1 + app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "e03c74684e3570657bfe4736b326b2c14061258946ad20677b3186b9657f455" + configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" spec: securityContext: fsGroup: 65534 @@ -1492,7 +1492,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1519,7 +1519,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_controlplane_generated.yaml b/deployment/gcp/flyte_helm_controlplane_generated.yaml index 7e0b58b832..281fcf87a1 100644 --- a/deployment/gcp/flyte_helm_controlplane_generated.yaml +++ b/deployment/gcp/flyte_helm_controlplane_generated.yaml @@ -589,7 +589,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -610,7 +610,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -628,7 +628,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -645,7 +645,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -672,7 +672,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -777,7 +777,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -833,7 +833,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -907,7 +907,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -925,7 +925,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1008,7 +1008,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1028,7 +1028,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml index ee3844680c..a0349f78c4 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.11.0-b1 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -436,7 +436,7 @@ spec: template: metadata: annotations: - configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" + configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -461,7 +461,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -515,9 +515,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b1 + app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" + configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" spec: securityContext: fsGroup: 65534 @@ -529,7 +529,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -556,7 +556,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml index 3167fb54ad..165712c85d 100644 --- a/deployment/gcp/flyte_helm_generated.yaml +++ b/deployment/gcp/flyte_helm_generated.yaml @@ -473,7 +473,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -923,7 +923,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -944,7 +944,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -962,7 +962,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -979,7 +979,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -1006,7 +1006,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1111,7 +1111,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1167,7 +1167,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -1241,7 +1241,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1259,7 +1259,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1342,7 +1342,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1362,7 +1362,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1421,7 +1421,7 @@ spec: template: metadata: annotations: - configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" + configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1446,7 +1446,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1500,9 +1500,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b1 + app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "9bc27a186f548894dceed907e428e5ff148a7bc709218fa0d828cade4598f1f" + configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" spec: securityContext: fsGroup: 65534 @@ -1514,7 +1514,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1541,7 +1541,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml b/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml index 1aeec5ee6d..b3b130b3a0 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.11.0-b1" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0" k8s-array: logs: config: @@ -358,7 +358,7 @@ spec: app.kubernetes.io/instance: flyte app.kubernetes.io/component: flyte-binary annotations: - checksum/configuration: 9c864736e7d08baebc6de026def33e542b35097dd158017c89f85d7672401b92 + checksum/configuration: 8d7f2229ae4d345e158f32f67615656d9a8d7590cef80a4c1b6f8eb333fcd896 checksum/configuration-secret: d5d93f4e67780b21593dc3799f0f6682aab0765e708e4020939975d14d44f929 checksum/cluster-resource-templates: 7dfa59f3d447e9c099b8f8ffad3af466fecbc9cf9f8c97295d9634254a55d4ae spec: diff --git a/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index 1959cc5bd8..9d032a0735 100644 --- a/deployment/sandbox/flyte_helm_generated.yaml +++ b/deployment/sandbox/flyte_helm_generated.yaml @@ -585,7 +585,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -6705,7 +6705,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -6725,7 +6725,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -6742,7 +6742,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -6758,7 +6758,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -6785,7 +6785,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -6880,7 +6880,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -6933,7 +6933,7 @@ spec: seLinuxOptions: type: spc_t containers: - - image: "cr.flyte.org/flyteorg/flyteconsole:v1.11.0" + - image: "cr.flyte.org/flyteorg/flyteconsole:v1.10.3" imagePullPolicy: "IfNotPresent" name: flyteconsole envFrom: @@ -7005,7 +7005,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -7022,7 +7022,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -7095,7 +7095,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -7114,7 +7114,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -7170,7 +7170,7 @@ spec: template: metadata: annotations: - configChecksum: "a82c947246fac99ad98c86bc01cdd99569b2ea11f25d3e1361cd40d145bed87" + configChecksum: "ecefcb1d6df38b32a9ec77d91de63cd40da935a3239b70a5bb0396435878c80" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -7195,7 +7195,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -7242,9 +7242,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0-b1 + app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "a82c947246fac99ad98c86bc01cdd99569b2ea11f25d3e1361cd40d145bed87" + configChecksum: "ecefcb1d6df38b32a9ec77d91de63cd40da935a3239b70a5bb0396435878c80" spec: securityContext: fsGroup: 65534 @@ -7256,7 +7256,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -7283,7 +7283,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 95fa73316a..d918d083fe 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -468,7 +468,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0" k8s-array: logs: config: @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: ZVNtQlpWSTRkZnFtRVp0cw== + haSharedSecret: bFdEdjRZTHJpYjZlVjJFUA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1246,7 +1246,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: 286b381aca83e796ac69572dba6d2071241be79d4f00f3c2af55415a95157efd + checksum/configuration: 2aaf6d07c01e76a5e97b2c5aa1e581ee7e2e9929d3690e71eceb6b0bdfb7b646 checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: e540906f7530a7b8f9c9e7488bfe922999294201b1f0f75ab310162ef6441d96 + checksum/secret: 4e48fca207a5d670db85e2a3c006dc4299ca542f111df37bc4657732e90f7fbb labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 5117665b85..4abc06f27a 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -457,7 +457,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b1" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0" k8s-array: logs: config: @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: VnRRWDlOZXVWcXNmZFRXRQ== + haSharedSecret: VFF5OW9ocFA1SFBaeEhFTQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1194,7 +1194,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: 1362bc266b00c161aac0a24f7db312b9d6b9e68d7d8d8859ec8e171b9dc3e2bd + checksum/configuration: cd9caceec9bd91bdf1eedb10aee289a53786fc70df8c3f4951881abb9f937c49 checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 1a60b7cc9612c65c9a369c55629f6054dfed24c40b064269274d0fbb7c6d0823 + checksum/secret: 58164ccf22adab677f5be0934c63dfffcaf63125d1b61f4e3257ad6abbad5344 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index a4ae9c83db..10ddf16bbf 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: dlY1cWxrMFBJOU8yazFyZQ== + haSharedSecret: RXV5Y25YMloxdnhxOHhkRg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: b86db743a29c0ae883fd1fd39fb1a6e81288c8451f3ebac001c7f2f1893d3f2a + checksum/secret: d950e08274c6c5752cbe3ec4acd93372e7ab1ef4e745f94ee13c9b617bc4d04c labels: app: docker-registry release: flyte-sandbox diff --git a/docs/conf.py b/docs/conf.py index 6d20ecf4b9..cca6cc266a 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.11.0-b1" +release = "1.11.0" # -- General configuration --------------------------------------------------- From db1182142e473836f47fa3a8b376a10fc6ef8386 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Mon, 11 Mar 2024 23:59:08 -0700 Subject: [PATCH 47/76] bump stow (#5041) Signed-off-by: Kevin Su --- datacatalog/go.mod | 2 +- datacatalog/go.sum | 4 ++-- flyteadmin/go.mod | 2 +- flyteadmin/go.sum | 4 ++-- flytecopilot/go.mod | 2 +- flytecopilot/go.sum | 4 ++-- flyteidl/go.mod | 2 +- flyteidl/go.sum | 4 ++-- flyteplugins/go.mod | 2 +- flyteplugins/go.sum | 4 ++-- flytepropeller/go.mod | 2 +- flytepropeller/go.sum | 4 ++-- flytestdlib/go.mod | 2 +- flytestdlib/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- 16 files changed, 24 insertions(+), 24 deletions(-) diff --git a/datacatalog/go.mod b/datacatalog/go.mod index e8fafef6ab..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.9 // 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 111ed2cb56..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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/flyteadmin/go.mod b/flyteadmin/go.mod index d029aec96b..58ebd90a84 100644 --- a/flyteadmin/go.mod +++ b/flyteadmin/go.mod @@ -17,7 +17,7 @@ require ( github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytepropeller v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 - github.com/flyteorg/stow v0.3.9 + github.com/flyteorg/stow v0.3.10 github.com/ghodss/yaml v1.0.0 github.com/go-gormigrate/gormigrate/v2 v2.1.1 github.com/golang-jwt/jwt/v4 v4.5.0 diff --git a/flyteadmin/go.sum b/flyteadmin/go.sum index 1b78514db8..fa9c065e82 100644 --- a/flyteadmin/go.sum +++ b/flyteadmin/go.sum @@ -237,8 +237,8 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flyteorg/stow v0.3.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= diff --git a/flytecopilot/go.mod b/flytecopilot/go.mod index 52c7b25e79..de6c77795c 100644 --- a/flytecopilot/go.mod +++ b/flytecopilot/go.mod @@ -39,7 +39,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.9 // indirect + github.com/flyteorg/stow v0.3.10 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect diff --git a/flytecopilot/go.sum b/flytecopilot/go.sum index b43c64842d..061cd63e87 100644 --- a/flytecopilot/go.sum +++ b/flytecopilot/go.sum @@ -103,8 +103,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/flyteidl/go.mod b/flyteidl/go.mod index 29ec7f9164..2187b2aeab 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -45,7 +45,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.9 // indirect + github.com/flyteorg/stow v0.3.10 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect diff --git a/flyteidl/go.sum b/flyteidl/go.sum index 0b4fde0b1d..5b4cf356d3 100644 --- a/flyteidl/go.sum +++ b/flyteidl/go.sum @@ -105,8 +105,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/flyteplugins/go.mod b/flyteplugins/go.mod index db98207f71..be1331697b 100644 --- a/flyteplugins/go.mod +++ b/flyteplugins/go.mod @@ -64,7 +64,7 @@ require ( github.com/evanphx/json-patch v5.6.0+incompatible // 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.9 // 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-logr/logr v1.2.4 // indirect diff --git a/flyteplugins/go.sum b/flyteplugins/go.sum index 4616432441..662b36b87e 100644 --- a/flyteplugins/go.sum +++ b/flyteplugins/go.sum @@ -138,8 +138,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/flytepropeller/go.mod b/flytepropeller/go.mod index f42e61897e..f541398b58 100644 --- a/flytepropeller/go.mod +++ b/flytepropeller/go.mod @@ -72,7 +72,7 @@ require ( github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/flyteorg/stow v0.3.9 // indirect + github.com/flyteorg/stow v0.3.10 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect diff --git a/flytepropeller/go.sum b/flytepropeller/go.sum index 93880b2b31..b929dc11b5 100644 --- a/flytepropeller/go.sum +++ b/flytepropeller/go.sum @@ -144,8 +144,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.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/flytestdlib/go.mod b/flytestdlib/go.mod index 314e9ad050..d275261dc8 100644 --- a/flytestdlib/go.mod +++ b/flytestdlib/go.mod @@ -9,7 +9,7 @@ require ( github.com/ernesto-jimenez/gogen v0.0.0-20180125220232-d7d4131e6607 github.com/fatih/color v1.13.0 github.com/fatih/structtag v1.2.0 - github.com/flyteorg/stow v0.3.9 + github.com/flyteorg/stow v0.3.10 github.com/fsnotify/fsnotify v1.6.0 github.com/ghodss/yaml v1.0.0 github.com/go-gormigrate/gormigrate/v2 v2.1.1 diff --git a/flytestdlib/go.sum b/flytestdlib/go.sum index 6d6cb15567..ee195ca9fc 100644 --- a/flytestdlib/go.sum +++ b/flytestdlib/go.sum @@ -115,8 +115,8 @@ github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/flyteorg/stow v0.3.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/go.mod b/go.mod index 85bd1e0bd8..37e95136ea 100644 --- a/go.mod +++ b/go.mod @@ -66,7 +66,7 @@ require ( github.com/felixge/httpsnoop v1.0.3 // indirect github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000 // indirect github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 // indirect - github.com/flyteorg/stow v0.3.9 // 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/go.sum b/go.sum index cb808f26da..8048229f18 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flyteorg/stow v0.3.9 h1:oA9tKMSvdCBnTnVpx8vncwrjRf8h/w8Ks9c4VGm2Img= -github.com/flyteorg/stow v0.3.9/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/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= From e07084c16e7dce06c0c88978d0994a2b6fa5a5a7 Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Wed, 13 Mar 2024 04:15:25 +0800 Subject: [PATCH 48/76] Remove kustomize link in secrets.md doc (#5043) Signed-off-by: Ryan Lo --- docs/user_guide/productionizing/secrets.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/user_guide/productionizing/secrets.md b/docs/user_guide/productionizing/secrets.md index dba145c483..d631594cc7 100644 --- a/docs/user_guide/productionizing/secrets.md +++ b/docs/user_guide/productionizing/secrets.md @@ -372,8 +372,6 @@ The following secret managers are available at the time of writing: - [AWS Secret Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html): `flyte-pod-webhook` will add the AWS Secret Manager sidecar container to a task Pod which will mount the secret. - [Vault Agent Injector](https://developer.hashicorp.com/vault/tutorials/getting-started/getting-started-first-secret#write-a-secret) : `flyte-pod-webhook` will annotate the task Pod with the respective Vault annotations that trigger an existing Vault Agent Injector to retrieve the specified secret Key from a vault path defined as secret Group. -You can configure the additional secret manager by defining `secretManagerType` to be either 'K8s', 'AWS' or 'Vault' in -the [core config](https://github.com/flyteorg/flyte/blob/master/kustomize/base/single_cluster/headless/config/propeller/core.yaml#L34) of the Flytepropeller. When using the K8s secret manager plugin, which is enabled by default, the secrets need to be available in the same namespace as the task execution (for example `flytesnacks-development`). K8s secrets can be mounted as either files or injected as environment variables into the task pod, From 44914b138002a54770ee61fc202ee518e2960f39 Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Wed, 13 Mar 2024 12:56:17 +0800 Subject: [PATCH 49/76] CI workflow for helm charts and manifests (#5027) Signed-off-by: Ryan Lo --- .github/workflows/validate-helm-charts.yaml | 84 +++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/validate-helm-charts.yaml diff --git a/.github/workflows/validate-helm-charts.yaml b/.github/workflows/validate-helm-charts.yaml new file mode 100644 index 0000000000..dc55ad980c --- /dev/null +++ b/.github/workflows/validate-helm-charts.yaml @@ -0,0 +1,84 @@ +name: Validate helm charts & manifests + +on: + pull_request: + branches: + - master + paths: + - 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 + + - 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 }} + + - name: Create KinD cluster + if: steps.charts-changed.outputs.changed == 'true' + uses: helm/kind-action@v1 + + - name: Run chart-testing (install) + if: steps.charts-changed.outputs.changed == 'true' + run: ct install --target-branch ${{ github.event.repository.default_branch }} + + 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 From d5784e58226b756719d1f079affe021c85d4646c Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Thu, 14 Mar 2024 15:16:16 -0700 Subject: [PATCH 50/76] Update spark-on-k8s-operator address in helm charts (#5057) Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- charts/flyte-deps/Chart.yaml | 2 +- charts/flyte-deps/README.md | 2 +- charts/flyte/Chart.yaml | 2 +- charts/flyte/README.md | 2 +- docker/sandbox-bundled/manifests/complete-agent.yaml | 4 ++-- docker/sandbox-bundled/manifests/complete.yaml | 4 ++-- docker/sandbox-bundled/manifests/dev.yaml | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/charts/flyte-deps/Chart.yaml b/charts/flyte-deps/Chart.yaml index fbd72a0bc2..ea84c798e7 100644 --- a/charts/flyte-deps/Chart.yaml +++ b/charts/flyte-deps/Chart.yaml @@ -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/Chart.yaml b/charts/flyte/Chart.yaml index 0fcfb6679b..daed727185 100644 --- a/charts/flyte/Chart.yaml +++ b/charts/flyte/Chart.yaml @@ -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 b1f00aa4e8..5ead2db730 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 diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index d918d083fe..50a2722e8a 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: bFdEdjRZTHJpYjZlVjJFUA== + haSharedSecret: VTg5RFBvY205cXRtcEVFbw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 4e48fca207a5d670db85e2a3c006dc4299ca542f111df37bc4657732e90f7fbb + checksum/secret: b8339a7b42c1e04b994b517d4ddd749074787df4a0eaef9e1aa2181988aea2d7 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 4abc06f27a..73f262a684 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: VFF5OW9ocFA1SFBaeEhFTQ== + haSharedSecret: ZTNEUmhqY1VsWDBXNFowTg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 58164ccf22adab677f5be0934c63dfffcaf63125d1b61f4e3257ad6abbad5344 + checksum/secret: cedf489b22e27428631c5c365e58bfd51cf8465bf04d07a74462677278017b80 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 10ddf16bbf..ae3bcbf29a 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: RXV5Y25YMloxdnhxOHhkRg== + haSharedSecret: bkV2U2JzN0o2TXNVcHJTMg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: d950e08274c6c5752cbe3ec4acd93372e7ab1ef4e745f94ee13c9b617bc4d04c + checksum/secret: 2f2e4b3f4abc8a670a75900bd0c7987fb3afa6b2a287fdf7292fbeb755c00c12 labels: app: docker-registry release: flyte-sandbox From 0b1253bf40e79393078861255cc858f06b22a19e Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Fri, 15 Mar 2024 06:53:45 +0800 Subject: [PATCH 51/76] Fix wrong syntax for path filtering in validate-helm-charts.yaml (#5056) Signed-off-by: Ryan Lo Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- .github/workflows/validate-helm-charts.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/validate-helm-charts.yaml b/.github/workflows/validate-helm-charts.yaml index dc55ad980c..36247b43da 100644 --- a/.github/workflows/validate-helm-charts.yaml +++ b/.github/workflows/validate-helm-charts.yaml @@ -5,8 +5,9 @@ on: branches: - master paths: - - deployment - - docker/sandbox-bundled/manifests + - "charts/**" + - "deployment/**" + - "docker/sandbox-bundled/manifests/**" jobs: lint-and-test-charts: From 642b08c31781aa828f9b11feff50f65e08b4946e Mon Sep 17 00:00:00 2001 From: WenChih Lo Date: Fri, 15 Mar 2024 07:28:00 +0800 Subject: [PATCH 52/76] fix missing branch (#5054) Signed-off-by: Ryan Lo --- charts/flyte-core/templates/flytescheduler/deployment.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/charts/flyte-core/templates/flytescheduler/deployment.yaml b/charts/flyte-core/templates/flytescheduler/deployment.yaml index aa22a13e09..14db8c48a7 100755 --- a/charts/flyte-core/templates/flytescheduler/deployment.yaml +++ b/charts/flyte-core/templates/flytescheduler/deployment.yaml @@ -48,8 +48,10 @@ spec: 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: From 3100c1214b7a44d97269c515ee3d996dd5ead3b2 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Thu, 14 Mar 2024 17:01:46 -0700 Subject: [PATCH 53/76] Match flytekit versions used to register and run functional tests (#5059) * wip - test Signed-off-by: Eduardo Apolinario * Use latest flytekit to register tests Signed-off-by: Eduardo Apolinario * Use python 3.12 to run tests Signed-off-by: Eduardo Apolinario * Force versions of flytekit and image to match Signed-off-by: Eduardo Apolinario * Use awk Signed-off-by: Eduardo Apolinario * Checkout specific flytesnacks ref Signed-off-by: Eduardo Apolinario --------- Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- .github/workflows/single-binary.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 From 04dc245013164880cd34bd485b73799c79a95c4f Mon Sep 17 00:00:00 2001 From: Troy Chiu <114708546+troychiu@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:26:18 -0700 Subject: [PATCH 54/76] integration test config (#5058) Signed-off-by: troychiu --- .../script/integration/k8s/integration.yaml | 3 +++ flyteadmin/tests/bootstrap.go | 23 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/flyteadmin/script/integration/k8s/integration.yaml b/flyteadmin/script/integration/k8s/integration.yaml index 4fae0bab27..5e57935316 100644 --- a/flyteadmin/script/integration/k8s/integration.yaml +++ b/flyteadmin/script/integration/k8s/integration.yaml @@ -417,6 +417,9 @@ spec: - name: flyteadmin image: flyteadmin:test imagePullPolicy: IfNotPresent + env: + - name: USE_INTEGRATION_TEST_CONFIG + value: "True" securityContext: privileged: true readinessProbe: diff --git a/flyteadmin/tests/bootstrap.go b/flyteadmin/tests/bootstrap.go index 9fd3b27026..aa1808282d 100644 --- a/flyteadmin/tests/bootstrap.go +++ b/flyteadmin/tests/bootstrap.go @@ -6,6 +6,7 @@ package tests import ( "context" "fmt" + "os" "gorm.io/gorm" @@ -19,9 +20,19 @@ const insertExecutionQueryStr = `INSERT INTO "executions" ` + `("execution_project","execution_domain","execution_name","phase","launch_plan_id","workflow_id") ` + `VALUES ('%s', '%s', '%s', '%s', '%d', '%d')` +const integrationTestConfigEnvVar = "USE_INTEGRATION_TEST_CONFIG" + var adminScope = promutils.NewScope("flyteadmin") func getDbConfig() *database.DbConfig { + if os.Getenv(integrationTestConfigEnvVar) == "True" { + return getIntegrationDbConfig() + } else { + return getSandboxDbConfig() + } +} + +func getIntegrationDbConfig() *database.DbConfig { return &database.DbConfig{ Postgres: database.PostgresConfig{ Host: "postgres", @@ -32,13 +43,15 @@ func getDbConfig() *database.DbConfig { } } -func getLocalDbConfig() *database.DbConfig { +// Run `flytectl demo start` to start the sandbox +func getSandboxDbConfig() *database.DbConfig { return &database.DbConfig{ Postgres: database.PostgresConfig{ - Host: "localhost", - Port: 5432, - DbName: "flyteadmin", - User: "postgres", + Host: "localhost", + Port: 30001, + DbName: "flyte", + Password: "postgres", + User: "postgres", }, } } From 9818423079d265bfc44b728f8d10b2fb0b2944db Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Mon, 18 Mar 2024 11:02:19 -0700 Subject: [PATCH 55/76] Add org as an optional request param to dataproxy CreateUploadLocation (#5060) --- .../pb-es/flyteidl/service/dataproxy_pb.ts | 8 + .../pb-go/flyteidl/service/dataproxy.pb.go | 290 +++++++++--------- .../flyteidl/service/dataproxy.swagger.json | 4 + flyteidl/gen/pb-js/flyteidl.d.ts | 6 + flyteidl/gen/pb-js/flyteidl.js | 17 + .../flyteidl/service/dataproxy_pb2.py | 40 +-- .../flyteidl/service/dataproxy_pb2.pyi | 6 +- flyteidl/gen/pb_rust/flyteidl.service.rs | 3 + flyteidl/go.mod | 4 +- flyteidl/go.sum | 1 + .../protos/flyteidl/service/dataproxy.proto | 4 + 11 files changed, 220 insertions(+), 163 deletions(-) diff --git a/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts b/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts index 8ce9d57435..3ccbc50892 100644 --- a/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/service/dataproxy_pb.ts @@ -169,6 +169,13 @@ export class CreateUploadLocationRequest extends Message) { super(); proto3.util.initPartial(data, this); @@ -184,6 +191,7 @@ export class CreateUploadLocationRequest extends Message): CreateUploadLocationRequest { diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go index 802d4080b4..7459726a60 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go @@ -186,6 +186,8 @@ type CreateUploadLocationRequest struct { // it will force clients to add this metadata to the object. // This make sure dataproxy is backward compatible with the old flytekit. AddContentMd5Metadata bool `protobuf:"varint,7,opt,name=add_content_md5_metadata,json=addContentMd5Metadata,proto3" json:"add_content_md5_metadata,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,8,opt,name=org,proto3" json:"org,omitempty"` } func (x *CreateUploadLocationRequest) Reset() { @@ -269,6 +271,13 @@ func (x *CreateUploadLocationRequest) GetAddContentMd5Metadata() bool { return false } +func (x *CreateUploadLocationRequest) GetOrg() string { + if x != nil { + return x.Org + } + return "" +} + // CreateDownloadLocationRequest specified request for the CreateDownloadLocation API. // // Deprecated: Marked as deprecated in flyteidl/service/dataproxy.proto. @@ -800,7 +809,7 @@ var file_flyteidl_service_dataproxy_proto_rawDesc = []byte{ 0x72, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x02, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -819,148 +828,149 @@ var file_flyteidl_service_dataproxy_proto_rawDesc = []byte{ 0x61, 0x64, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x64, 0x35, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x64, 0x35, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7c, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0x7c, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, + 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x7e, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, - 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x3a, - 0x02, 0x18, 0x01, 0x22, 0x7e, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, + 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, + 0x49, 0x6e, 0x12, 0x54, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x55, 0x72, 0x6c, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x3a, - 0x02, 0x18, 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, - 0x12, 0x54, 0x0a, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x21, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, - 0x72, 0x6c, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, - 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, - 0x75, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, - 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x65, - 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x73, 0x22, 0x69, 0x0a, 0x0d, 0x50, 0x72, - 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x2d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x55, 0x72, 0x6c, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, - 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, - 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x43, 0x0a, - 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, - 0x17, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x52, - 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x4b, - 0x10, 0x01, 0x32, 0x84, 0x07, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xf0, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x79, 0x92, 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x12, 0xa9, 0x02, 0x0a, 0x16, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x01, 0x92, 0x41, 0x7f, 0x1a, 0x7d, - 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x50, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, - 0x64, 0x2e, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, - 0x75, 0x72, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xea, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x2b, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x4c, 0x1a, 0x4a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, - 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, - 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6c, - 0x69, 0x6e, 0x6b, 0x12, 0x64, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x42, 0xc6, 0x01, 0x0a, 0x14, 0x63, 0x6f, - 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, - 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x53, 0x58, 0xaa, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xca, 0x02, 0x10, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xe2, - 0x02, 0x1c, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x11, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x41, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x52, 0x0d, 0x70, + 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x73, 0x22, 0x69, 0x0a, 0x0d, + 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x2d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, + 0x4c, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, + 0x72, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, + 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, + 0x43, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x17, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, + 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, + 0x43, 0x4b, 0x10, 0x01, 0x32, 0x84, 0x07, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xf0, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x79, 0x92, 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, + 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x12, 0xa9, 0x02, 0x0a, + 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x01, 0x92, 0x41, 0x7f, + 0x1a, 0x7d, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x50, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x69, 0x6e, 0x73, 0x74, + 0x65, 0x61, 0x64, 0x2e, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xea, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, + 0x2b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, + 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x79, 0x92, 0x41, 0x4c, 0x1a, + 0x4a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2d, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, + 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x64, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x42, 0xc6, 0x01, 0x0a, 0x14, + 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, + 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x53, 0x58, 0xaa, 0x02, 0x10, 0x46, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xca, 0x02, + 0x10, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0xe2, 0x02, 0x1c, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x11, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json index b26138d8b7..4798fc6c2d 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/dataproxy.swagger.json @@ -752,6 +752,10 @@ "add_content_md5_metadata": { "type": "boolean", "description": "If true, the data proxy will add content_md5 to the metadata to the signed URL and\nit will force clients to add this metadata to the object.\nThis make sure dataproxy is backward compatible with the old flytekit." + }, + "org": { + "type": "string", + "description": "Optional, org key applied to the resource." } }, "description": "CreateUploadLocationRequest specified request for the CreateUploadLocation API.\nThe implementation in data proxy service will create the s3 location with some server side configured prefixes,\nand then:\n - project/domain/(a deterministic str representation of the content_md5)/filename (if present); OR\n - project/domain/filename_root (if present)/filename (if present)." diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 8c01d5f284..1d1f77b57e 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -22829,6 +22829,9 @@ export namespace flyteidl { /** CreateUploadLocationRequest addContentMd5Metadata */ addContentMd5Metadata?: (boolean|null); + + /** CreateUploadLocationRequest org */ + org?: (string|null); } /** Represents a CreateUploadLocationRequest. */ @@ -22861,6 +22864,9 @@ export namespace flyteidl { /** CreateUploadLocationRequest addContentMd5Metadata. */ public addContentMd5Metadata: boolean; + /** CreateUploadLocationRequest org. */ + public org: string; + /** * Creates a new CreateUploadLocationRequest instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index fffe330902..95ac3ce6ea 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -53509,6 +53509,7 @@ * @property {Uint8Array|null} [contentMd5] CreateUploadLocationRequest contentMd5 * @property {string|null} [filenameRoot] CreateUploadLocationRequest filenameRoot * @property {boolean|null} [addContentMd5Metadata] CreateUploadLocationRequest addContentMd5Metadata + * @property {string|null} [org] CreateUploadLocationRequest org */ /** @@ -53582,6 +53583,14 @@ */ CreateUploadLocationRequest.prototype.addContentMd5Metadata = false; + /** + * CreateUploadLocationRequest org. + * @member {string} org + * @memberof flyteidl.service.CreateUploadLocationRequest + * @instance + */ + CreateUploadLocationRequest.prototype.org = ""; + /** * Creates a new CreateUploadLocationRequest instance using the specified properties. * @function create @@ -53620,6 +53629,8 @@ writer.uint32(/* id 6, wireType 2 =*/50).string(message.filenameRoot); if (message.addContentMd5Metadata != null && message.hasOwnProperty("addContentMd5Metadata")) writer.uint32(/* id 7, wireType 0 =*/56).bool(message.addContentMd5Metadata); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.org); return writer; }; @@ -53662,6 +53673,9 @@ case 7: message.addContentMd5Metadata = reader.bool(); break; + case 8: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -53704,6 +53718,9 @@ if (message.addContentMd5Metadata != null && message.hasOwnProperty("addContentMd5Metadata")) if (typeof message.addContentMd5Metadata !== "boolean") return "addContentMd5Metadata: boolean expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py index f4c25e43ae..3677f367ca 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py @@ -19,7 +19,7 @@ from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\xaa\x02\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12U\n\x07headers\x18\x04 \x03(\x0b\x32;.flyteidl.service.CreateUploadLocationResponse.HeadersEntryR\x07headers\x1a:\n\x0cHeadersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x02\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\x12\x37\n\x18\x61\x64\x64_content_md5_metadata\x18\x07 \x01(\x08R\x15\x61\x64\x64\x43ontentMd5Metadata\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"\xc7\x01\n\x1a\x43reateDownloadLinkResponse\x12!\n\nsigned_url\x18\x01 \x03(\tB\x02\x18\x01R\tsignedUrl\x12=\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01R\texpiresAt\x12G\n\x0fpre_signed_urls\x18\x03 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsR\rpreSignedUrls\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"-\n\x0eGetDataRequest\x12\x1b\n\tflyte_url\x18\x01 \x01(\tR\x08\x66lyteUrl\"\xd6\x01\n\x0fGetDataResponse\x12<\n\x0bliteral_map\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\nliteralMap\x12I\n\x0fpre_signed_urls\x18\x02 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsH\x00R\rpreSignedUrls\x12\x32\n\x07literal\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.LiteralH\x00R\x07literalB\x06\n\x04\x64\x61ta*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\x84\x07\n\x10\x44\x61taProxyService\x12\xf0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\"y\x92\x41M\x1aKCreates a write-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa9\x02\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\"\xab\x01\x88\x02\x01\x92\x41\x7f\x1a}Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\xea\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"y\x92\x41L\x1aJCreates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_link\x12\x64\n\x07GetData\x12 .flyteidl.service.GetDataRequest\x1a!.flyteidl.service.GetDataResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/dataB\xc6\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\xaa\x02\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12U\n\x07headers\x18\x04 \x03(\x0b\x32;.flyteidl.service.CreateUploadLocationResponse.HeadersEntryR\x07headers\x1a:\n\x0cHeadersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xb6\x02\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\x12\x37\n\x18\x61\x64\x64_content_md5_metadata\x18\x07 \x01(\x08R\x15\x61\x64\x64\x43ontentMd5Metadata\x12\x10\n\x03org\x18\x08 \x01(\tR\x03org\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"\xc7\x01\n\x1a\x43reateDownloadLinkResponse\x12!\n\nsigned_url\x18\x01 \x03(\tB\x02\x18\x01R\tsignedUrl\x12=\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01R\texpiresAt\x12G\n\x0fpre_signed_urls\x18\x03 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsR\rpreSignedUrls\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"-\n\x0eGetDataRequest\x12\x1b\n\tflyte_url\x18\x01 \x01(\tR\x08\x66lyteUrl\"\xd6\x01\n\x0fGetDataResponse\x12<\n\x0bliteral_map\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\nliteralMap\x12I\n\x0fpre_signed_urls\x18\x02 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsH\x00R\rpreSignedUrls\x12\x32\n\x07literal\x18\x03 \x01(\x0b\x32\x16.flyteidl.core.LiteralH\x00R\x07literalB\x06\n\x04\x64\x61ta*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\x84\x07\n\x10\x44\x61taProxyService\x12\xf0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\"y\x92\x41M\x1aKCreates a write-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa9\x02\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\"\xab\x01\x88\x02\x01\x92\x41\x7f\x1a}Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\xea\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"y\x92\x41L\x1aJCreates a read-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_link\x12\x64\n\x07GetData\x12 .flyteidl.service.GetDataRequest\x1a!.flyteidl.service.GetDataResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/dataB\xc6\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z=github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -46,28 +46,28 @@ _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._serialized_options = b'\222AL\032JCreates a read-only http location that is accessible for tasks at runtime.\202\323\344\223\002$:\001*\"\037/api/v1/dataproxy/artifact_link' _DATAPROXYSERVICE.methods_by_name['GetData']._options = None _DATAPROXYSERVICE.methods_by_name['GetData']._serialized_options = b'\202\323\344\223\002\016\022\014/api/v1/data' - _globals['_ARTIFACTTYPE']._serialized_start=1935 - _globals['_ARTIFACTTYPE']._serialized_end=2002 + _globals['_ARTIFACTTYPE']._serialized_start=1953 + _globals['_ARTIFACTTYPE']._serialized_end=2020 _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_start=260 _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_end=558 _globals['_CREATEUPLOADLOCATIONRESPONSE_HEADERSENTRY']._serialized_start=500 _globals['_CREATEUPLOADLOCATIONRESPONSE_HEADERSENTRY']._serialized_end=558 _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=561 - _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=853 - _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=855 - _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=979 - _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=981 - _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=1107 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=1110 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1360 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1363 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1562 - _globals['_PRESIGNEDURLS']._serialized_start=1564 - _globals['_PRESIGNEDURLS']._serialized_end=1669 - _globals['_GETDATAREQUEST']._serialized_start=1671 - _globals['_GETDATAREQUEST']._serialized_end=1716 - _globals['_GETDATARESPONSE']._serialized_start=1719 - _globals['_GETDATARESPONSE']._serialized_end=1933 - _globals['_DATAPROXYSERVICE']._serialized_start=2005 - _globals['_DATAPROXYSERVICE']._serialized_end=2905 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=871 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=873 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=997 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=999 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=1125 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=1128 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1378 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1381 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1580 + _globals['_PRESIGNEDURLS']._serialized_start=1582 + _globals['_PRESIGNEDURLS']._serialized_end=1687 + _globals['_GETDATAREQUEST']._serialized_start=1689 + _globals['_GETDATAREQUEST']._serialized_end=1734 + _globals['_GETDATARESPONSE']._serialized_start=1737 + _globals['_GETDATARESPONSE']._serialized_end=1951 + _globals['_DATAPROXYSERVICE']._serialized_start=2023 + _globals['_DATAPROXYSERVICE']._serialized_end=2923 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi index 50c2bf3c5e..f76e4dc8b1 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi @@ -39,7 +39,7 @@ class CreateUploadLocationResponse(_message.Message): def __init__(self, signed_url: _Optional[str] = ..., native_url: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., headers: _Optional[_Mapping[str, str]] = ...) -> None: ... class CreateUploadLocationRequest(_message.Message): - __slots__ = ["project", "domain", "filename", "expires_in", "content_md5", "filename_root", "add_content_md5_metadata"] + __slots__ = ["project", "domain", "filename", "expires_in", "content_md5", "filename_root", "add_content_md5_metadata", "org"] PROJECT_FIELD_NUMBER: _ClassVar[int] DOMAIN_FIELD_NUMBER: _ClassVar[int] FILENAME_FIELD_NUMBER: _ClassVar[int] @@ -47,6 +47,7 @@ class CreateUploadLocationRequest(_message.Message): CONTENT_MD5_FIELD_NUMBER: _ClassVar[int] FILENAME_ROOT_FIELD_NUMBER: _ClassVar[int] ADD_CONTENT_MD5_METADATA_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] project: str domain: str filename: str @@ -54,7 +55,8 @@ class CreateUploadLocationRequest(_message.Message): content_md5: bytes filename_root: str add_content_md5_metadata: bool - def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., filename: _Optional[str] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., content_md5: _Optional[bytes] = ..., filename_root: _Optional[str] = ..., add_content_md5_metadata: bool = ...) -> None: ... + org: str + def __init__(self, project: _Optional[str] = ..., domain: _Optional[str] = ..., filename: _Optional[str] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., content_md5: _Optional[bytes] = ..., filename_root: _Optional[str] = ..., add_content_md5_metadata: bool = ..., org: _Optional[str] = ...) -> None: ... class CreateDownloadLocationRequest(_message.Message): __slots__ = ["native_url", "expires_in"] diff --git a/flyteidl/gen/pb_rust/flyteidl.service.rs b/flyteidl/gen/pb_rust/flyteidl.service.rs index e53abba678..b5a6b8b052 100644 --- a/flyteidl/gen/pb_rust/flyteidl.service.rs +++ b/flyteidl/gen/pb_rust/flyteidl.service.rs @@ -130,6 +130,9 @@ pub struct CreateUploadLocationRequest { /// This make sure dataproxy is backward compatible with the old flytekit. #[prost(bool, tag="7")] pub add_content_md5_metadata: bool, + /// Optional, org key applied to the resource. + #[prost(string, tag="8")] + pub org: ::prost::alloc::string::String, } /// CreateDownloadLocationRequest specified request for the CreateDownloadLocation API. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/flyteidl/go.mod b/flyteidl/go.mod index 2187b2aeab..d8669b9eb2 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -7,9 +7,11 @@ toolchain go1.21.3 require ( github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 github.com/go-test/deep v1.0.7 + github.com/golang/glog v1.1.0 github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 + github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 github.com/jinzhu/copier v0.3.5 github.com/mitchellh/mapstructure v1.5.0 @@ -19,6 +21,7 @@ require ( github.com/stretchr/testify v1.8.4 golang.org/x/net v0.15.0 golang.org/x/oauth2 v0.8.0 + google.golang.org/api v0.114.0 google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 google.golang.org/grpc v1.56.1 google.golang.org/protobuf v1.30.0 @@ -96,7 +99,6 @@ require ( golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.114.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect diff --git a/flyteidl/go.sum b/flyteidl/go.sum index 5b4cf356d3..f1911aadfe 100644 --- a/flyteidl/go.sum +++ b/flyteidl/go.sum @@ -218,6 +218,7 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdR github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= diff --git a/flyteidl/protos/flyteidl/service/dataproxy.proto b/flyteidl/protos/flyteidl/service/dataproxy.proto index b24c794cc8..86c7c4d977 100644 --- a/flyteidl/protos/flyteidl/service/dataproxy.proto +++ b/flyteidl/protos/flyteidl/service/dataproxy.proto @@ -63,6 +63,10 @@ message CreateUploadLocationRequest { // it will force clients to add this metadata to the object. // This make sure dataproxy is backward compatible with the old flytekit. bool add_content_md5_metadata = 7; + + + // Optional, org key applied to the resource. + string org = 8; } // CreateDownloadLocationRequest specified request for the CreateDownloadLocation API. From eb2410780edf5f525429f4d83d8bdd2397f08cc8 Mon Sep 17 00:00:00 2001 From: Neil <150836163+neilisaur@users.noreply.github.com> Date: Mon, 18 Mar 2024 15:35:34 -0600 Subject: [PATCH 56/76] Add k8s env froms (#4969) * Adding allowance for default configMap/secrets to pull env froms Signed-off-by: Neil Stout * Updating Helm charts Signed-off-by: Neil Stout * Fixing typos Signed-off-by: Neil Stout * More typo Signed-off-by: Neil Stout * Ran 'make helm' Signed-off-by: Neil Stout * Updating docs from `make helm` Signed-off-by: Neil Stout * `make helm` results Signed-off-by: Neil Stout * Fixing issues with env vs envFrom Signed-off-by: Neil Stout * Fixing merge issue Signed-off-by: Neil Stout * Better naming for variable Signed-off-by: Neil Stout * Renaming to be more accurate Signed-off-by: Neil Stout * Fixing typo Signed-off-by: Neil Stout * Forgot one change Signed-off-by: Neil Stout * Fixing linting error Signed-off-by: Neil Stout * Updating Helm charts Signed-off-by: Neil Stout --------- Signed-off-by: Neil Stout --- charts/flyte/README.md | 8 ++++---- charts/flyte/values.yaml | 2 ++ deployment/sandbox/flyte_helm_generated.yaml | 6 ++++-- .../manifests/complete-agent.yaml | 4 ++-- docker/sandbox-bundled/manifests/complete.yaml | 4 ++-- docker/sandbox-bundled/manifests/dev.yaml | 4 ++-- .../pluginmachinery/flytek8s/config/config.go | 4 ++++ .../flytek8s/container_helper.go | 2 +- .../flytek8s/k8s_resource_adds.go | 18 ++++++++++++++++-- .../flytek8s/k8s_resource_adds_test.go | 2 +- .../plugins/array/awsbatch/transformer.go | 2 +- 11 files changed, 39 insertions(+), 17 deletions(-) diff --git a/charts/flyte/README.md b/charts/flyte/README.md index 5ead2db730..ab32ec9460 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -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.11.0","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.11.0"},"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"},"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"},"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"},"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","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"},"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"},"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"},"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"},"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,7 +91,7 @@ helm upgrade -f values-sandbox.yaml flyte . | flyte.common.ingress.separateGrpcIngressAnnotations | object | `{"nginx.ingress.kubernetes.io/backend-protocol":"GRPC"}` | - Extra Ingress annotations applied only to the GRPC ingress. Only makes sense if `separateGrpcIngress` is enabled. | | flyte.common.ingress.tls | object | `{"enabled":false}` | - TLS Settings | | flyte.common.ingress.webpackHMR | bool | `true` | - Enable or disable HMR route to flyteconsole. This is useful only for frontend development. | -| flyte.configmap | object | `{"adminServer":{"auth":{"appAuth":{"thirdPartyConfig":{"flyteClient":{"clientId":"flytectl","redirectUri":"http://localhost:53593/callback","scopes":["offline","all"]}}},"authorizedUris":["https://localhost:30081","http://flyteadmin:80","http://flyteadmin.flyte.svc.cluster.local:80"],"userAuth":{"openId":{"baseUrl":"https://accounts.google.com","clientId":"657465813211-6eog7ek7li5k7i7fvgv2921075063hpe.apps.googleusercontent.com","scopes":["profile","openid"]}}},"flyteadmin":{"eventVersion":2,"metadataStoragePrefix":["metadata","admin"],"metricsScope":"flyte:","profilerPort":10254,"roleNameKey":"iam.amazonaws.com/role","testing":{"host":"http://flyteadmin"}},"server":{"grpcPort":8089,"httpPort":8088,"security":{"allowCors":true,"allowedHeaders":["Content-Type","flyte-authorization"],"allowedOrigins":["*"],"secure":false,"useAuth":false}}},"catalog":{"catalog-cache":{"endpoint":"datacatalog:89","insecure":true,"type":"datacatalog"}},"console":{"BASE_URL":"/console","CONFIG_DIR":"/etc/flyte/config"},"copilot":{"plugins":{"k8s":{"co-pilot":{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0","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","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. | @@ -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 | diff --git a/charts/flyte/values.yaml b/charts/flyte/values.yaml index f0d2f7c75a..2f19498dd4 100755 --- a/charts/flyte/values.yaml +++ b/charts/flyte/values.yaml @@ -547,6 +547,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/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index 9d032a0735..12705dd8ac 100644 --- a/deployment/sandbox/flyte_helm_generated.yaml +++ b/deployment/sandbox/flyte_helm_generated.yaml @@ -646,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 @@ -7170,7 +7172,7 @@ spec: template: metadata: annotations: - configChecksum: "ecefcb1d6df38b32a9ec77d91de63cd40da935a3239b70a5bb0396435878c80" + configChecksum: "3500386bee9f0763c6f14460f607cea4e6e24be4224a806c0673db71e13e287" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -7244,7 +7246,7 @@ spec: app.kubernetes.io/name: flyte-pod-webhook app.kubernetes.io/version: v1.11.0 annotations: - configChecksum: "ecefcb1d6df38b32a9ec77d91de63cd40da935a3239b70a5bb0396435878c80" + configChecksum: "3500386bee9f0763c6f14460f607cea4e6e24be4224a806c0673db71e13e287" spec: securityContext: fsGroup: 65534 diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 50a2722e8a..da45fdc06e 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: VTg5RFBvY205cXRtcEVFbw== + haSharedSecret: U0tNSVV0aUwzZzYxNVZnVQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: b8339a7b42c1e04b994b517d4ddd749074787df4a0eaef9e1aa2181988aea2d7 + checksum/secret: e0d4db2f1f52d2e4d16959b463e9470d657899ab22db5d8eb2fbc605cdcda0a2 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 73f262a684..d0872c7a63 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: ZTNEUmhqY1VsWDBXNFowTg== + haSharedSecret: bmNtdzJkQ0l2Rm5BS3VZSg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: cedf489b22e27428631c5c365e58bfd51cf8465bf04d07a74462677278017b80 + checksum/secret: b1ca10c95becb2e7214c9ece8101acc322ecde650f1e70bdb1bbb37323c948f6 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index ae3bcbf29a..828a53d4ef 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: bkV2U2JzN0o2TXNVcHJTMg== + haSharedSecret: S2hmRkxmVjdKZUpoTkR6OQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 2f2e4b3f4abc8a670a75900bd0c7987fb3afa6b2a287fdf7292fbeb755c00c12 + checksum/secret: 446da9acad72026ea6684e9f0cf3e47f8a458fa10d29d61ac3f8bc509afc7c11 labels: app: docker-registry release: flyte-sandbox diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/config/config.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/config/config.go index 55f9cfa68c..404924ef07 100644 --- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/config/config.go +++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/config/config.go @@ -90,6 +90,10 @@ type K8sPluginConfig struct { DefaultEnvVars map[string]string `json:"default-env-vars" pflag:"-,Additional environment variable that should be injected into every resource"` // Provide additional environment variable pairs whose values resolve from the plugin's execution environment. DefaultEnvVarsFromEnv map[string]string `json:"default-env-vars-from-env" pflag:"-,Additional environment variable that should be injected into every resource"` + // Provide additional environment variable parts from configMaps + DefaultEnvFromConfigMaps []string `json:"default-env-from-configmaps" pflag:"-,Additional environment variable sets that should be injected into each pod from these configMaps"` + // Provide additional environment variable parts from secrets + DefaultEnvFromSecrets []string `json:"default-env-from-secrets" pflag:"-,Additional environment variable sets that should be injected into each pod from these secret"` // default cpu requests for a container DefaultCPURequest resource.Quantity `json:"default-cpus" pflag:",Defines a default value for cpu for containers if not specified."` diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/container_helper.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/container_helper.go index cffc57a77d..268819473a 100644 --- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/container_helper.go +++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/container_helper.go @@ -291,7 +291,7 @@ func AddFlyteCustomizationsToContainer(ctx context.Context, parameters template. } container.Args = modifiedArgs - container.Env = DecorateEnvVars(ctx, container.Env, parameters.TaskExecMetadata.GetEnvironmentVariables(), parameters.TaskExecMetadata.GetTaskExecutionID()) + container.Env, container.EnvFrom = DecorateEnvVars(ctx, container.Env, parameters.TaskExecMetadata.GetEnvironmentVariables(), parameters.TaskExecMetadata.GetTaskExecutionID()) // retrieve platformResources and overrideResources to use when aggregating container resources platformResources := parameters.TaskExecMetadata.GetPlatformResources() diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds.go index c2d868c039..b235725edd 100644 --- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds.go +++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds.go @@ -113,7 +113,7 @@ func GetExecutionEnvVars(id pluginsCore.TaskExecutionID) []v1.EnvVar { return envVars } -func DecorateEnvVars(ctx context.Context, envVars []v1.EnvVar, taskEnvironmentVariables map[string]string, id pluginsCore.TaskExecutionID) []v1.EnvVar { +func DecorateEnvVars(ctx context.Context, envVars []v1.EnvVar, taskEnvironmentVariables map[string]string, id pluginsCore.TaskExecutionID) ([]v1.EnvVar, []v1.EnvFromSource) { envVars = append(envVars, GetContextEnvVars(ctx)...) envVars = append(envVars, GetExecutionEnvVars(id)...) @@ -128,7 +128,21 @@ func DecorateEnvVars(ctx context.Context, envVars []v1.EnvVar, taskEnvironmentVa envVars = append(envVars, v1.EnvVar{Name: k, Value: value}) } - return envVars + envFroms := []v1.EnvFromSource{} + + for _, secretName := range config.GetK8sPluginConfig().DefaultEnvFromSecrets { + optional := true + secretRef := v1.SecretEnvSource{LocalObjectReference: v1.LocalObjectReference{Name: secretName}, Optional: &optional} + envFroms = append(envFroms, v1.EnvFromSource{SecretRef: &secretRef}) + } + + for _, cmName := range config.GetK8sPluginConfig().DefaultEnvFromConfigMaps { + optional := true + cmRef := v1.ConfigMapEnvSource{LocalObjectReference: v1.LocalObjectReference{Name: cmName}, Optional: &optional} + envFroms = append(envFroms, v1.EnvFromSource{ConfigMapRef: &cmRef}) + } + + return envVars, envFroms } func GetPodTolerations(interruptible bool, resourceRequirements ...v1.ResourceRequirements) []v1.Toleration { diff --git a/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds_test.go b/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds_test.go index aec1f573a6..2093639d97 100644 --- a/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds_test.go +++ b/flyteplugins/go/tasks/pluginmachinery/flytek8s/k8s_resource_adds_test.go @@ -283,7 +283,7 @@ func TestDecorateEnvVars(t *testing.T) { DefaultEnvVars: tt.additionEnvVar, DefaultEnvVarsFromEnv: tt.additionEnvVarFromEnv, })) - if got := DecorateEnvVars(ctx, tt.args.envVars, tt.executionEnvVar, tt.args.id); !reflect.DeepEqual(got, tt.want) { + if got, _ := DecorateEnvVars(ctx, tt.args.envVars, tt.executionEnvVar, tt.args.id); !reflect.DeepEqual(got, tt.want) { t.Errorf("DecorateEnvVars() = %v, want %v", got, tt.want) } }) diff --git a/flyteplugins/go/tasks/plugins/array/awsbatch/transformer.go b/flyteplugins/go/tasks/plugins/array/awsbatch/transformer.go index 8c252a7c06..c75ca61c42 100644 --- a/flyteplugins/go/tasks/plugins/array/awsbatch/transformer.go +++ b/flyteplugins/go/tasks/plugins/array/awsbatch/transformer.go @@ -136,7 +136,7 @@ func UpdateBatchInputForArray(_ context.Context, batchInput *batch.SubmitJobInpu func getEnvVarsForTask(ctx context.Context, execID pluginCore.TaskExecutionID, containerEnvVars []*core.KeyValuePair, defaultEnvVars map[string]string) []v1.EnvVar { - envVars := flytek8s.DecorateEnvVars(ctx, flytek8s.ToK8sEnvVar(containerEnvVars), nil, execID) + envVars, _ := flytek8s.DecorateEnvVars(ctx, flytek8s.ToK8sEnvVar(containerEnvVars), nil, execID) m := make(map[string]string, len(envVars)) for _, envVar := range envVars { m[envVar.Name] = envVar.Value From 3fe45336245f125d832a94b1c5eef5e3b3ba2491 Mon Sep 17 00:00:00 2001 From: Rafael Raposo <100569684+RRap0so@users.noreply.github.com> Date: Wed, 20 Mar 2024 17:05:48 +0000 Subject: [PATCH 57/76] Implement GetProject endpoint in FlyteAdmin (#4825) --- cmd/single/console_dist.go | 2 +- .../pkg/manager/impl/project_manager.go | 13 + .../pkg/manager/impl/project_manager_test.go | 56 + .../impl/validation/project_validator.go | 7 + .../impl/validation/project_validator_test.go | 12 + flyteadmin/pkg/manager/interfaces/project.go | 1 + flyteadmin/pkg/manager/mocks/project.go | 13 + flyteadmin/pkg/rpc/adminservice/metrics.go | 2 + flyteadmin/pkg/rpc/adminservice/project.go | 18 + .../rpc/adminservice/tests/project_test.go | 12 + flyteadmin/pkg/server/service.go | 4 +- .../go/admin/mocks/AdminServiceClient.go | 48 + .../go/admin/mocks/AdminServiceServer.go | 41 + flyteidl/clients/go/assets/admin.swagger.json | 31 + .../gen/pb-es/flyteidl/admin/project_pb.ts | 40 + .../pb-es/flyteidl/service/admin_connect.ts | 13 +- .../gen/pb-go/flyteidl/admin/project.pb.go | 120 +- .../gen/pb-go/flyteidl/service/admin.pb.go | 1108 +++++++++-------- .../pb-go/flyteidl/service/admin_grpc.pb.go | 39 + .../gateway/flyteidl/service/admin.pb.gw.go | 103 ++ .../flyteidl/service/admin.swagger.json | 31 + flyteidl/gen/pb-js/flyteidl.d.ts | 73 ++ flyteidl/gen/pb-js/flyteidl.js | 143 +++ .../pb_python/flyteidl/admin/project_pb2.py | 4 +- .../pb_python/flyteidl/admin/project_pb2.pyi | 6 + .../pb_python/flyteidl/service/admin_pb2.py | 6 +- .../flyteidl/service/admin_pb2_grpc.py | 34 + flyteidl/gen/pb_rust/flyteidl.admin.rs | 8 + flyteidl/protos/flyteidl/admin/project.proto | 6 + flyteidl/protos/flyteidl/service/admin.proto | 10 + .../core/mocks/task_overrides.go | 1 - 31 files changed, 1421 insertions(+), 584 deletions(-) diff --git a/cmd/single/console_dist.go b/cmd/single/console_dist.go index f7ea8b674c..450c743cee 100644 --- a/cmd/single/console_dist.go +++ b/cmd/single/console_dist.go @@ -20,7 +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 + writer.Header().Set("Cache-Control", "max-age=604800") // 7 days consoleHandler.ServeHTTP(writer, request) }, } diff --git a/flyteadmin/pkg/manager/impl/project_manager.go b/flyteadmin/pkg/manager/impl/project_manager.go index 8792b0e64d..abf46d2438 100644 --- a/flyteadmin/pkg/manager/impl/project_manager.go +++ b/flyteadmin/pkg/manager/impl/project_manager.go @@ -127,6 +127,19 @@ func (m *ProjectManager) UpdateProject(ctx context.Context, projectUpdate admin. return &response, nil } +func (m *ProjectManager) GetProject(ctx context.Context, request admin.ProjectGetRequest) (*admin.Project, error) { + if err := validation.ValidateProjectGetRequest(request); err != nil { + return nil, err + } + projectModel, err := m.db.ProjectRepo().Get(ctx, request.Id) + if err != nil { + return nil, err + } + projectResponse := transformers.FromProjectModel(projectModel, m.getDomains()) + + return &projectResponse, nil +} + func NewProjectManager(db repoInterfaces.Repository, config runtimeInterfaces.Configuration) interfaces.ProjectInterface { return &ProjectManager{ db: db, diff --git a/flyteadmin/pkg/manager/impl/project_manager_test.go b/flyteadmin/pkg/manager/impl/project_manager_test.go index 1abd46d856..6fe18c90be 100644 --- a/flyteadmin/pkg/manager/impl/project_manager_test.go +++ b/flyteadmin/pkg/manager/impl/project_manager_test.go @@ -278,3 +278,59 @@ func TestProjectManager_UpdateProject_ErrorDueToInvalidProjectName(t *testing.T) }) assert.EqualError(t, err, "project_name cannot exceed 64 characters") } + +func TestProjectManager_TestGetProject(t *testing.T) { + mockRepository := repositoryMocks.NewMockRepository() + mockedProject := &admin.ProjectGetRequest{Id: project} + activeState := int32(admin.Project_ACTIVE) + mockRepository.ProjectRepo().(*repositoryMocks.MockProjectRepo).GetFunction = func(ctx context.Context, projectID string) (models.Project, error) { + + return models.Project{ + BaseModel: models.BaseModel{}, + Identifier: projectID, + Name: "a-mocked-project", + Description: "A mocked project", + State: &activeState, + }, nil + } + + projectManager := NewProjectManager(mockRepository, runtimeMocks.NewMockConfigurationProvider( + getMockApplicationConfigForProjectManagerTest(), nil, nil, nil, nil, nil)) + + resp, _ := projectManager.GetProject(context.Background(), + *mockedProject) + + assert.Equal(t, mockedProject.Id, resp.Id) + assert.Equal(t, "a-mocked-project", resp.Name) + assert.Equal(t, "A mocked project", resp.Description) + assert.Equal(t, admin.Project_ProjectState(0), resp.State) +} + +func TestProjectManager_TestGetProject_ErrorDueToProjectNotFound(t *testing.T) { + mockRepository := repositoryMocks.NewMockRepository() + mockedProject := &admin.ProjectGetRequest{Id: project} + mockRepository.ProjectRepo().(*repositoryMocks.MockProjectRepo).GetFunction = func(ctx context.Context, projectID string) (models.Project, error) { + return models.Project{}, errors.New("project " + projectID + " not found") + } + + projectManager := NewProjectManager(mockRepository, runtimeMocks.NewMockConfigurationProvider( + getMockApplicationConfigForProjectManagerTest(), nil, nil, nil, nil, nil)) + + _, err := projectManager.GetProject(context.Background(), + *mockedProject) + + assert.EqualError(t, err, "project "+project+" not found") +} + +func TestProjectManager_TestGetProject_ErrorDueToEmptyProjectGetRequest(t *testing.T) { + mockRepository := repositoryMocks.NewMockRepository() + mockedProject := &admin.ProjectGetRequest{Id: ""} + + projectManager := NewProjectManager(mockRepository, runtimeMocks.NewMockConfigurationProvider( + getMockApplicationConfigForProjectManagerTest(), nil, nil, nil, nil, nil)) + + _, err := projectManager.GetProject(context.Background(), + *mockedProject) + + assert.EqualError(t, err, "missing project_id") +} diff --git a/flyteadmin/pkg/manager/impl/validation/project_validator.go b/flyteadmin/pkg/manager/impl/validation/project_validator.go index 6d3b455733..8577c13e2b 100644 --- a/flyteadmin/pkg/manager/impl/validation/project_validator.go +++ b/flyteadmin/pkg/manager/impl/validation/project_validator.go @@ -31,6 +31,13 @@ func ValidateProjectRegisterRequest(request admin.ProjectRegisterRequest) error return ValidateProject(project) } +func ValidateProjectGetRequest(request admin.ProjectGetRequest) error { + if err := ValidateEmptyStringField(request.Id, projectID); err != nil { + return err + } + return nil +} + func ValidateProject(project admin.Project) error { if err := ValidateEmptyStringField(project.Id, projectID); err != nil { return err diff --git a/flyteadmin/pkg/manager/impl/validation/project_validator_test.go b/flyteadmin/pkg/manager/impl/validation/project_validator_test.go index 718647b3aa..288389d59f 100644 --- a/flyteadmin/pkg/manager/impl/validation/project_validator_test.go +++ b/flyteadmin/pkg/manager/impl/validation/project_validator_test.go @@ -364,3 +364,15 @@ func TestValidateProjectExistsDb(t *testing.T) { assert.Error(t, err) }) } + +func TestValidateProjectGetRequest(t *testing.T) { + t.Run("base case", func(t *testing.T) { + assert.Nil(t, ValidateProjectGetRequest(admin.ProjectGetRequest{ + Id: "project-id", + })) + }) + + t.Run("missing project id", func(t *testing.T) { + assert.EqualError(t, ValidateProjectGetRequest(admin.ProjectGetRequest{}), "missing project_id") + }) +} diff --git a/flyteadmin/pkg/manager/interfaces/project.go b/flyteadmin/pkg/manager/interfaces/project.go index cd91fb0439..add58aa196 100644 --- a/flyteadmin/pkg/manager/interfaces/project.go +++ b/flyteadmin/pkg/manager/interfaces/project.go @@ -11,4 +11,5 @@ type ProjectInterface interface { CreateProject(ctx context.Context, request admin.ProjectRegisterRequest) (*admin.ProjectRegisterResponse, error) ListProjects(ctx context.Context, request admin.ProjectListRequest) (*admin.Projects, error) UpdateProject(ctx context.Context, request admin.Project) (*admin.ProjectUpdateResponse, error) + GetProject(ctx context.Context, request admin.ProjectGetRequest) (*admin.Project, error) } diff --git a/flyteadmin/pkg/manager/mocks/project.go b/flyteadmin/pkg/manager/mocks/project.go index 8137955ced..e86cdde4d5 100644 --- a/flyteadmin/pkg/manager/mocks/project.go +++ b/flyteadmin/pkg/manager/mocks/project.go @@ -9,11 +9,13 @@ import ( type CreateProjectFunc func(ctx context.Context, request admin.ProjectRegisterRequest) (*admin.ProjectRegisterResponse, error) type ListProjectFunc func(ctx context.Context, request admin.ProjectListRequest) (*admin.Projects, error) type UpdateProjectFunc func(ctx context.Context, request admin.Project) (*admin.ProjectUpdateResponse, error) +type GetProjectFunc func(ctx context.Context, request admin.ProjectGetRequest) (*admin.Project, error) type MockProjectManager struct { listProjectFunc ListProjectFunc createProjectFunc CreateProjectFunc updateProjectFunc UpdateProjectFunc + getProjectFunc GetProjectFunc } func (m *MockProjectManager) SetCreateProject(createProjectFunc CreateProjectFunc) { @@ -45,3 +47,14 @@ func (m *MockProjectManager) ListProjects( } return nil, nil } + +func (m *MockProjectManager) SetGetCallBack(getProjectFunc GetProjectFunc) { + m.getProjectFunc = getProjectFunc +} + +func (m *MockProjectManager) GetProject(ctx context.Context, request admin.ProjectGetRequest) (*admin.Project, error) { + if m.getProjectFunc != nil { + return m.getProjectFunc(ctx, request) + } + return nil, nil +} diff --git a/flyteadmin/pkg/rpc/adminservice/metrics.go b/flyteadmin/pkg/rpc/adminservice/metrics.go index 6e5060cab5..5d0e89d93e 100644 --- a/flyteadmin/pkg/rpc/adminservice/metrics.go +++ b/flyteadmin/pkg/rpc/adminservice/metrics.go @@ -61,6 +61,7 @@ type projectEndpointMetrics struct { register util.RequestMetrics list util.RequestMetrics update util.RequestMetrics + get util.RequestMetrics } type attributeEndpointMetrics struct { @@ -176,6 +177,7 @@ func InitMetrics(adminScope promutils.Scope) AdminMetrics { register: util.NewRequestMetrics(adminScope, "register_project"), list: util.NewRequestMetrics(adminScope, "list_projects"), update: util.NewRequestMetrics(adminScope, "update_project"), + get: util.NewRequestMetrics(adminScope, "get_project"), }, projectAttributesEndpointMetrics: attributeEndpointMetrics{ scope: adminScope, diff --git a/flyteadmin/pkg/rpc/adminservice/project.go b/flyteadmin/pkg/rpc/adminservice/project.go index 838e78aeae..df281dad0a 100644 --- a/flyteadmin/pkg/rpc/adminservice/project.go +++ b/flyteadmin/pkg/rpc/adminservice/project.go @@ -63,3 +63,21 @@ func (m *AdminService) UpdateProject(ctx context.Context, request *admin.Project return response, nil } + +func (m *AdminService) GetProject(ctx context.Context, request *admin.ProjectGetRequest) (*admin.Project, error) { + defer m.interceptPanic(ctx, request) + if request == nil { + return nil, status.Errorf(codes.InvalidArgument, "Incorrect request, nil requests not allowed") + } + var response *admin.Project + var err error + m.Metrics.projectEndpointMetrics.get.Time(func() { + response, err = m.ProjectManager.GetProject(ctx, *request) + }) + if err != nil { + return nil, util.TransformAndRecordError(err, &m.Metrics.projectEndpointMetrics.get) + } + + m.Metrics.projectEndpointMetrics.get.Success() + return response, nil +} diff --git a/flyteadmin/pkg/rpc/adminservice/tests/project_test.go b/flyteadmin/pkg/rpc/adminservice/tests/project_test.go index 02b77f9837..8b713e668a 100644 --- a/flyteadmin/pkg/rpc/adminservice/tests/project_test.go +++ b/flyteadmin/pkg/rpc/adminservice/tests/project_test.go @@ -58,3 +58,15 @@ func TestListProjects(t *testing.T) { assert.Nil(t, err) assert.True(t, proto.Equal(projects, resp)) } + +func TestGetProject(t *testing.T) { + mockProjectManager := mocks.MockProjectManager{} + project := &admin.Project{Id: "project id", Name: "project"} + mockProjectManager.SetGetCallBack(func(ctx context.Context, request admin.ProjectGetRequest) (*admin.Project, error) { + assert.NotNil(t, request) + return project, nil + }) + resp, err := mockProjectManager.GetProject(context.Background(), admin.ProjectGetRequest{}) + assert.Nil(t, err) + assert.True(t, proto.Equal(project, resp)) +} diff --git a/flyteadmin/pkg/server/service.go b/flyteadmin/pkg/server/service.go index d51f1c4f31..3a2eff220d 100644 --- a/flyteadmin/pkg/server/service.go +++ b/flyteadmin/pkg/server/service.go @@ -210,8 +210,8 @@ func newHTTPServer(ctx context.Context, pluginRegistry *plugins.Registry, cfg *c // the application/json content type. gwmuxOptions = append(gwmuxOptions, runtime.WithMarshalerOption("application/json", &runtime.JSONPb{ MarshalOptions: protojson.MarshalOptions{ - UseProtoNames: true, - EmitUnpopulated: true, + UseProtoNames: true, + EmitUnpopulated: true, EmitDefaultValues: true, }, })) diff --git a/flyteidl/clients/go/admin/mocks/AdminServiceClient.go b/flyteidl/clients/go/admin/mocks/AdminServiceClient.go index 3d4d3039b4..ad647aa331 100644 --- a/flyteidl/clients/go/admin/mocks/AdminServiceClient.go +++ b/flyteidl/clients/go/admin/mocks/AdminServiceClient.go @@ -977,6 +977,54 @@ func (_m *AdminServiceClient) GetNodeExecutionData(ctx context.Context, in *admi return r0, r1 } +type AdminServiceClient_GetProject struct { + *mock.Call +} + +func (_m AdminServiceClient_GetProject) Return(_a0 *admin.Project, _a1 error) *AdminServiceClient_GetProject { + return &AdminServiceClient_GetProject{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceClient) OnGetProject(ctx context.Context, in *admin.ProjectGetRequest, opts ...grpc.CallOption) *AdminServiceClient_GetProject { + c_call := _m.On("GetProject", ctx, in, opts) + return &AdminServiceClient_GetProject{Call: c_call} +} + +func (_m *AdminServiceClient) OnGetProjectMatch(matchers ...interface{}) *AdminServiceClient_GetProject { + c_call := _m.On("GetProject", matchers...) + return &AdminServiceClient_GetProject{Call: c_call} +} + +// GetProject provides a mock function with given fields: ctx, in, opts +func (_m *AdminServiceClient) GetProject(ctx context.Context, in *admin.ProjectGetRequest, opts ...grpc.CallOption) (*admin.Project, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *admin.Project + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectGetRequest, ...grpc.CallOption) *admin.Project); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.Project) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectGetRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceClient_GetProjectAttributes struct { *mock.Call } diff --git a/flyteidl/clients/go/admin/mocks/AdminServiceServer.go b/flyteidl/clients/go/admin/mocks/AdminServiceServer.go index 37d540f5ae..a303734ed5 100644 --- a/flyteidl/clients/go/admin/mocks/AdminServiceServer.go +++ b/flyteidl/clients/go/admin/mocks/AdminServiceServer.go @@ -835,6 +835,47 @@ func (_m *AdminServiceServer) GetNodeExecutionData(_a0 context.Context, _a1 *adm return r0, r1 } +type AdminServiceServer_GetProject struct { + *mock.Call +} + +func (_m AdminServiceServer_GetProject) Return(_a0 *admin.Project, _a1 error) *AdminServiceServer_GetProject { + return &AdminServiceServer_GetProject{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceServer) OnGetProject(_a0 context.Context, _a1 *admin.ProjectGetRequest) *AdminServiceServer_GetProject { + c_call := _m.On("GetProject", _a0, _a1) + return &AdminServiceServer_GetProject{Call: c_call} +} + +func (_m *AdminServiceServer) OnGetProjectMatch(matchers ...interface{}) *AdminServiceServer_GetProject { + c_call := _m.On("GetProject", matchers...) + return &AdminServiceServer_GetProject{Call: c_call} +} + +// GetProject provides a mock function with given fields: _a0, _a1 +func (_m *AdminServiceServer) GetProject(_a0 context.Context, _a1 *admin.ProjectGetRequest) (*admin.Project, error) { + ret := _m.Called(_a0, _a1) + + var r0 *admin.Project + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectGetRequest) *admin.Project); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.Project) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectGetRequest) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceServer_GetProjectAttributes struct { *mock.Call } diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 64a6af5899..226588a131 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -2720,6 +2720,37 @@ } }, "/api/v1/projects/{id}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.Project`", + "description": "Fetch a registered project.", + "operationId": "AdminService_GetProject", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProject" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/googlerpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "description": "Indicates a unique project.\n+required", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", "description": "Update a project.", diff --git a/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts b/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts index 647a12c84e..8bd364d5a1 100644 --- a/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts @@ -412,3 +412,43 @@ export class ProjectUpdateResponse extends Message { } } +/** + * @generated from message flyteidl.admin.ProjectGetRequest + */ +export class ProjectGetRequest extends Message { + /** + * Indicates a unique project. + * +required + * + * @generated from field: string id = 1; + */ + id = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "flyteidl.admin.ProjectGetRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): ProjectGetRequest { + return new ProjectGetRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): ProjectGetRequest { + return new ProjectGetRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): ProjectGetRequest { + return new ProjectGetRequest().fromJsonString(jsonString, options); + } + + static equals(a: ProjectGetRequest | PlainMessage | undefined, b: ProjectGetRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(ProjectGetRequest, a, b); + } +} + diff --git a/flyteidl/gen/pb-es/flyteidl/service/admin_connect.ts b/flyteidl/gen/pb-es/flyteidl/service/admin_connect.ts index 3a174aeffc..22c84826f4 100644 --- a/flyteidl/gen/pb-es/flyteidl/service/admin_connect.ts +++ b/flyteidl/gen/pb-es/flyteidl/service/admin_connect.ts @@ -10,7 +10,7 @@ import { Workflow, WorkflowCreateRequest, WorkflowCreateResponse, WorkflowList } import { ActiveLaunchPlanListRequest, ActiveLaunchPlanRequest, LaunchPlan, LaunchPlanCreateRequest, LaunchPlanCreateResponse, LaunchPlanList, LaunchPlanUpdateRequest, LaunchPlanUpdateResponse } from "../admin/launch_plan_pb.js"; import { Execution, ExecutionCreateRequest, ExecutionCreateResponse, ExecutionList, ExecutionRecoverRequest, ExecutionRelaunchRequest, ExecutionTerminateRequest, ExecutionTerminateResponse, ExecutionUpdateRequest, ExecutionUpdateResponse, WorkflowExecutionGetDataRequest, WorkflowExecutionGetDataResponse, WorkflowExecutionGetMetricsRequest, WorkflowExecutionGetMetricsResponse, WorkflowExecutionGetRequest } from "../admin/execution_pb.js"; import { DynamicNodeWorkflowResponse, GetDynamicNodeWorkflowRequest, NodeExecution, NodeExecutionForTaskListRequest, NodeExecutionGetDataRequest, NodeExecutionGetDataResponse, NodeExecutionGetRequest, NodeExecutionList, NodeExecutionListRequest } from "../admin/node_execution_pb.js"; -import { Project, ProjectListRequest, ProjectRegisterRequest, ProjectRegisterResponse, Projects, ProjectUpdateResponse } from "../admin/project_pb.js"; +import { Project, ProjectGetRequest, ProjectListRequest, ProjectRegisterRequest, ProjectRegisterResponse, Projects, ProjectUpdateResponse } from "../admin/project_pb.js"; import { NodeExecutionEventRequest, NodeExecutionEventResponse, TaskExecutionEventRequest, TaskExecutionEventResponse, WorkflowExecutionEventRequest, WorkflowExecutionEventResponse } from "../admin/event_pb.js"; import { TaskExecution, TaskExecutionGetDataRequest, TaskExecutionGetDataResponse, TaskExecutionGetRequest, TaskExecutionList, TaskExecutionListRequest } from "../admin/task_execution_pb.js"; import { ProjectDomainAttributesDeleteRequest, ProjectDomainAttributesDeleteResponse, ProjectDomainAttributesGetRequest, ProjectDomainAttributesGetResponse, ProjectDomainAttributesUpdateRequest, ProjectDomainAttributesUpdateResponse } from "../admin/project_domain_attributes_pb.js"; @@ -365,6 +365,17 @@ export const AdminService = { O: ProjectUpdateResponse, kind: MethodKind.Unary, }, + /** + * Fetches a :ref:`ref_flyteidl.admin.Project` + * + * @generated from rpc flyteidl.service.AdminService.GetProject + */ + getProject: { + name: "GetProject", + I: ProjectGetRequest, + O: Project, + kind: MethodKind.Unary, + }, /** * Fetches a list of :ref:`ref_flyteidl.admin.Project` * diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index e8a4a70689..46b1b86639 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -512,6 +512,55 @@ func (*ProjectUpdateResponse) Descriptor() ([]byte, []int) { return file_flyteidl_admin_project_proto_rawDescGZIP(), []int{6} } +type ProjectGetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicates a unique project. + // +required + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *ProjectGetRequest) Reset() { + *x = ProjectGetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_flyteidl_admin_project_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGetRequest) ProtoMessage() {} + +func (x *ProjectGetRequest) ProtoReflect() protoreflect.Message { + mi := &file_flyteidl_admin_project_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGetRequest.ProtoReflect.Descriptor instead. +func (*ProjectGetRequest) Descriptor() ([]byte, []int) { + return file_flyteidl_admin_project_proto_rawDescGZIP(), []int{7} +} + +func (x *ProjectGetRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + var File_flyteidl_admin_project_proto protoreflect.FileDescriptor var file_flyteidl_admin_project_proto_rawDesc = []byte{ @@ -566,19 +615,21 @@ var file_flyteidl_admin_project_proto_rawDesc = []byte{ 0x17, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0xb8, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x0c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, - 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, 0xaa, 0x02, 0x0e, 0x46, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xca, 0x02, 0x0e, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xe2, 0x02, 0x1a, - 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x46, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x22, 0x23, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x42, 0xb8, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x0c, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, + 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, + 0xaa, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0xca, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0xe2, 0x02, 0x1a, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x0f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -594,7 +645,7 @@ func file_flyteidl_admin_project_proto_rawDescGZIP() []byte { } var file_flyteidl_admin_project_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_flyteidl_admin_project_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_flyteidl_admin_project_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_flyteidl_admin_project_proto_goTypes = []interface{}{ (Project_ProjectState)(0), // 0: flyteidl.admin.Project.ProjectState (*Domain)(nil), // 1: flyteidl.admin.Domain @@ -604,21 +655,22 @@ var file_flyteidl_admin_project_proto_goTypes = []interface{}{ (*ProjectRegisterRequest)(nil), // 5: flyteidl.admin.ProjectRegisterRequest (*ProjectRegisterResponse)(nil), // 6: flyteidl.admin.ProjectRegisterResponse (*ProjectUpdateResponse)(nil), // 7: flyteidl.admin.ProjectUpdateResponse - (*Labels)(nil), // 8: flyteidl.admin.Labels - (*Sort)(nil), // 9: flyteidl.admin.Sort + (*ProjectGetRequest)(nil), // 8: flyteidl.admin.ProjectGetRequest + (*Labels)(nil), // 9: flyteidl.admin.Labels + (*Sort)(nil), // 10: flyteidl.admin.Sort } var file_flyteidl_admin_project_proto_depIdxs = []int32{ - 1, // 0: flyteidl.admin.Project.domains:type_name -> flyteidl.admin.Domain - 8, // 1: flyteidl.admin.Project.labels:type_name -> flyteidl.admin.Labels - 0, // 2: flyteidl.admin.Project.state:type_name -> flyteidl.admin.Project.ProjectState - 2, // 3: flyteidl.admin.Projects.projects:type_name -> flyteidl.admin.Project - 9, // 4: flyteidl.admin.ProjectListRequest.sort_by:type_name -> flyteidl.admin.Sort - 2, // 5: flyteidl.admin.ProjectRegisterRequest.project:type_name -> flyteidl.admin.Project - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 1, // 0: flyteidl.admin.Project.domains:type_name -> flyteidl.admin.Domain + 9, // 1: flyteidl.admin.Project.labels:type_name -> flyteidl.admin.Labels + 0, // 2: flyteidl.admin.Project.state:type_name -> flyteidl.admin.Project.ProjectState + 2, // 3: flyteidl.admin.Projects.projects:type_name -> flyteidl.admin.Project + 10, // 4: flyteidl.admin.ProjectListRequest.sort_by:type_name -> flyteidl.admin.Sort + 2, // 5: flyteidl.admin.ProjectRegisterRequest.project:type_name -> flyteidl.admin.Project + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_flyteidl_admin_project_proto_init() } @@ -712,6 +764,18 @@ func file_flyteidl_admin_project_proto_init() { return nil } } + file_flyteidl_admin_project_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -719,7 +783,7 @@ func file_flyteidl_admin_project_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flyteidl_admin_project_proto_rawDesc, NumEnums: 1, - NumMessages: 7, + NumMessages: 8, NumExtensions: 0, NumServices: 0, }, diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index 4fa8b64e86..c3bb242357 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -65,8 +65,8 @@ var file_flyteidl_service_admin_proto_rawDesc = []byte{ 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x89, - 0x72, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x93, + 0x73, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc5, 0x02, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, @@ -565,433 +565,442 @@ var file_flyteidl_service_admin_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, 0x13, 0x1a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x1a, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x22, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x37, 0x92, 0x41, 0x1c, - 0x1a, 0x1a, 0x46, 0x65, 0x74, 0x63, 0x68, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x12, 0xdd, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x41, - 0x1a, 0x3f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, - 0x70, 0x68, 0x61, 0x73, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, - 0x6f, 0x64, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x5f, 0x92, 0x41, 0x3d, 0x1a, 0x3b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x64, 0x65, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, - 0x70, 0x68, 0x61, 0x73, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0xc9, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x92, 0x41, 0x3d, - 0x1a, 0x3b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x70, 0x68, 0x61, 0x73, - 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0xa9, 0x03, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x27, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x02, 0x92, 0x41, 0x26, 0x1a, - 0x24, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9c, 0x02, 0x12, 0x99, 0x02, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, - 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, - 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, - 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x7d, 0x12, 0xd3, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x87, 0x01, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x21, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3d, 0x92, 0x41, 0x1d, 0x1a, 0x1b, 0x46, 0x65, + 0x74, 0x63, 0x68, 0x20, 0x61, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, + 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x37, 0x92, 0x41, 0x1c, 0x1a, 0x1a, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xdd, + 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x41, 0x1a, 0x3f, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x70, 0x68, 0x61, 0x73, 0x65, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0xc9, + 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x92, 0x41, 0x3d, 0x1a, 0x3b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x70, 0x68, 0x61, 0x73, 0x65, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xef, 0x01, 0x92, - 0x41, 0x38, 0x1a, 0x36, 0x46, 0x65, 0x74, 0x63, 0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xad, - 0x01, 0x12, 0xaa, 0x01, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe0, - 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x92, 0x41, 0x3d, 0x1a, 0x3b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x70, 0x68, 0x61, 0x73, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, + 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0xa9, 0x03, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xec, 0x02, 0x92, 0x41, 0x41, 0x1a, 0x3f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, - 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa1, 0x02, - 0x12, 0x9e, 0x02, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, - 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, + 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x02, 0x92, 0x41, 0x26, 0x1a, 0x24, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x61, 0x73, 0x6b, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x9c, 0x02, 0x12, 0x99, 0x02, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, + 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, + 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x7b, 0x69, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, + 0x74, 0x7d, 0x12, 0xd3, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xef, 0x01, 0x92, 0x41, 0x38, 0x1a, 0x36, 0x46, 0x65, + 0x74, 0x63, 0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x73, + 0x6b, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xad, 0x01, 0x12, 0xaa, 0x01, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, - 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b, - 0x69, 0x64, 0x2e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, - 0x7d, 0x12, 0xbf, 0x02, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe0, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x2b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xec, 0x02, 0x92, + 0x41, 0x41, 0x1a, 0x3f, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa1, 0x02, 0x12, 0x9e, 0x02, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, + 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x2e, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, + 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x2e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x72, 0x65, 0x74, + 0x72, 0x79, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x7d, 0x12, 0xbf, 0x02, 0x0a, 0x1d, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x34, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xb0, 0x01, 0x92, 0x41, 0x58, 0x1a, 0x56, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x1a, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, - 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x7d, 0x12, 0x9f, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x31, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x99, 0x01, 0x92, 0x41, 0x5a, 0x1a, - 0x58, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, - 0x34, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0xa9, 0x02, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb0, 0x01, 0x92, 0x41, 0x58, + 0x1a, 0x56, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, + 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, + 0x2a, 0x1a, 0x4a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0x9f, 0x02, + 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x99, 0x01, 0x92, 0x41, 0x5a, 0x1a, 0x58, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, + 0xa9, 0x02, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x12, 0x34, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x58, 0x1a, 0x56, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x01, 0x2a, 0x2a, 0x34, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x7d, 0x12, 0xff, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, - 0x01, 0x92, 0x41, 0x45, 0x1a, 0x43, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, + 0x01, 0x92, 0x41, 0x58, 0x1a, 0x56, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, - 0x01, 0x2a, 0x1a, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x12, 0xe9, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x92, 0x41, 0x47, 0x1a, 0x45, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x39, 0x3a, 0x01, 0x2a, 0x2a, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0xff, 0x01, 0x0a, 0x17, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x92, 0x41, 0x45, 0x1a, 0x43, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, - 0xf3, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x92, 0x41, - 0x45, 0x1a, 0x43, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, - 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x2a, - 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0xce, 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xce, 0x01, 0x92, 0x41, 0x66, 0x1a, 0x64, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, + 0x65, 0x63, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x1a, 0x2f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0xe9, 0x01, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x76, 0x92, 0x41, 0x47, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0xf3, 0x01, 0x0a, 0x17, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x92, 0x41, 0x45, 0x1a, 0x43, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2c, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x3a, 0x01, 0x2a, 0x1a, 0x5a, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, - 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x12, 0xa3, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x6f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x2a, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, + 0xce, 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xac, 0x01, - 0x92, 0x41, 0x68, 0x1a, 0x66, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xce, 0x01, 0x92, 0x41, 0x66, 0x1a, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x7d, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x12, 0xad, 0x02, 0x0a, - 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, + 0x5f, 0x3a, 0x01, 0x2a, 0x1a, 0x5a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, + 0x12, 0xa3, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, - 0x41, 0x66, 0x1a, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, - 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6d, - 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x01, - 0x2a, 0x2a, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x7d, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x12, 0xe1, 0x01, 0x0a, - 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x92, 0x41, 0x3e, 0x1a, 0x3c, - 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x80, 0x02, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0xa1, 0x01, 0x92, 0x41, 0x5d, 0x1a, 0x5b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, - 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x73, 0x68, - 0x61, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x7d, 0x12, 0xca, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x25, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, - 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x74, 0x92, 0x41, 0x20, 0x1a, - 0x1e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4e, 0x61, 0x6d, 0x65, - 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, + 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xac, 0x01, 0x92, 0x41, 0x68, 0x1a, 0x66, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x12, 0xad, 0x02, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x92, 0x41, 0x66, 0x1a, 0x64, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x01, 0x2a, 0x2a, 0x39, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x12, 0xe1, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x65, 0x92, 0x41, 0x3e, 0x1a, 0x3c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x80, 0x02, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x26, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x92, 0x41, 0x5d, 0x1a, + 0x5b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0xca, 0x01, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x25, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x22, 0x74, 0x92, 0x41, 0x20, 0x1a, 0x1e, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, + 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, + 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xf3, 0x01, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, + 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x92, 0x41, 0x31, 0x1a, 0x2f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, + 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, + 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x1a, 0x49, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x12, 0xf3, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x64, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x92, 0x41, - 0x31, 0x1a, 0x2f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x1a, 0x49, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x12, 0xbf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, 0x92, 0x41, 0x50, 0x1a, 0x4e, 0x52, 0x65, 0x74, + 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x20, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0xfe, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x20, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x22, 0xa0, 0x01, 0x92, 0x41, 0x36, 0x1a, 0x34, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x61, 0x12, 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, - 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xbf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, 0x92, 0x41, - 0x50, 0x1a, 0x4e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x20, 0x20, 0x69, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xfe, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xa0, 0x01, 0x92, 0x41, 0x36, 0x1a, 0x34, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x12, 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, - 0x2e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xdc, 0x02, 0x0a, 0x17, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xeb, 0x01, 0x92, 0x41, 0x47, - 0x1a, 0x45, 0x46, 0x65, 0x74, 0x63, 0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9a, 0x01, 0x5a, 0x47, - 0x12, 0x45, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, - 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0x4f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, - 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xff, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x12, 0x32, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x92, 0x41, 0x37, 0x1a, 0x35, - 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, - 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x42, 0xc2, 0x01, 0x0a, 0x14, 0x63, - 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x42, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0xa2, 0x02, 0x03, 0x46, 0x53, 0x58, 0xaa, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xca, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xe2, 0x02, 0x1c, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x46, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x7d, 0x12, 0xdc, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x2c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0xeb, 0x01, 0x92, 0x41, 0x47, 0x1a, 0x45, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9a, 0x01, 0x5a, 0x47, 0x12, 0x45, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x7d, 0x12, 0x4f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, + 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, 0x69, 0x64, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x12, 0xff, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x92, 0x41, 0x37, 0x1a, 0x35, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x7b, + 0x69, 0x64, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x69, 0x64, 0x2e, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x42, 0xc2, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, + 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xa2, 0x02, 0x03, 0x46, 0x53, 0x58, + 0xaa, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0xca, 0x02, 0x10, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0xe2, 0x02, 0x1c, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var file_flyteidl_service_admin_proto_goTypes = []interface{}{ @@ -1018,76 +1027,77 @@ var file_flyteidl_service_admin_proto_goTypes = []interface{}{ (*admin.NodeExecutionGetDataRequest)(nil), // 20: flyteidl.admin.NodeExecutionGetDataRequest (*admin.ProjectRegisterRequest)(nil), // 21: flyteidl.admin.ProjectRegisterRequest (*admin.Project)(nil), // 22: flyteidl.admin.Project - (*admin.ProjectListRequest)(nil), // 23: flyteidl.admin.ProjectListRequest - (*admin.WorkflowExecutionEventRequest)(nil), // 24: flyteidl.admin.WorkflowExecutionEventRequest - (*admin.NodeExecutionEventRequest)(nil), // 25: flyteidl.admin.NodeExecutionEventRequest - (*admin.TaskExecutionEventRequest)(nil), // 26: flyteidl.admin.TaskExecutionEventRequest - (*admin.TaskExecutionGetRequest)(nil), // 27: flyteidl.admin.TaskExecutionGetRequest - (*admin.TaskExecutionListRequest)(nil), // 28: flyteidl.admin.TaskExecutionListRequest - (*admin.TaskExecutionGetDataRequest)(nil), // 29: flyteidl.admin.TaskExecutionGetDataRequest - (*admin.ProjectDomainAttributesUpdateRequest)(nil), // 30: flyteidl.admin.ProjectDomainAttributesUpdateRequest - (*admin.ProjectDomainAttributesGetRequest)(nil), // 31: flyteidl.admin.ProjectDomainAttributesGetRequest - (*admin.ProjectDomainAttributesDeleteRequest)(nil), // 32: flyteidl.admin.ProjectDomainAttributesDeleteRequest - (*admin.ProjectAttributesUpdateRequest)(nil), // 33: flyteidl.admin.ProjectAttributesUpdateRequest - (*admin.ProjectAttributesGetRequest)(nil), // 34: flyteidl.admin.ProjectAttributesGetRequest - (*admin.ProjectAttributesDeleteRequest)(nil), // 35: flyteidl.admin.ProjectAttributesDeleteRequest - (*admin.WorkflowAttributesUpdateRequest)(nil), // 36: flyteidl.admin.WorkflowAttributesUpdateRequest - (*admin.WorkflowAttributesGetRequest)(nil), // 37: flyteidl.admin.WorkflowAttributesGetRequest - (*admin.WorkflowAttributesDeleteRequest)(nil), // 38: flyteidl.admin.WorkflowAttributesDeleteRequest - (*admin.ListMatchableAttributesRequest)(nil), // 39: flyteidl.admin.ListMatchableAttributesRequest - (*admin.NamedEntityListRequest)(nil), // 40: flyteidl.admin.NamedEntityListRequest - (*admin.NamedEntityGetRequest)(nil), // 41: flyteidl.admin.NamedEntityGetRequest - (*admin.NamedEntityUpdateRequest)(nil), // 42: flyteidl.admin.NamedEntityUpdateRequest - (*admin.GetVersionRequest)(nil), // 43: flyteidl.admin.GetVersionRequest - (*admin.DescriptionEntityListRequest)(nil), // 44: flyteidl.admin.DescriptionEntityListRequest - (*admin.WorkflowExecutionGetMetricsRequest)(nil), // 45: flyteidl.admin.WorkflowExecutionGetMetricsRequest - (*admin.TaskCreateResponse)(nil), // 46: flyteidl.admin.TaskCreateResponse - (*admin.Task)(nil), // 47: flyteidl.admin.Task - (*admin.NamedEntityIdentifierList)(nil), // 48: flyteidl.admin.NamedEntityIdentifierList - (*admin.TaskList)(nil), // 49: flyteidl.admin.TaskList - (*admin.WorkflowCreateResponse)(nil), // 50: flyteidl.admin.WorkflowCreateResponse - (*admin.Workflow)(nil), // 51: flyteidl.admin.Workflow - (*admin.WorkflowList)(nil), // 52: flyteidl.admin.WorkflowList - (*admin.LaunchPlanCreateResponse)(nil), // 53: flyteidl.admin.LaunchPlanCreateResponse - (*admin.LaunchPlan)(nil), // 54: flyteidl.admin.LaunchPlan - (*admin.LaunchPlanList)(nil), // 55: flyteidl.admin.LaunchPlanList - (*admin.LaunchPlanUpdateResponse)(nil), // 56: flyteidl.admin.LaunchPlanUpdateResponse - (*admin.ExecutionCreateResponse)(nil), // 57: flyteidl.admin.ExecutionCreateResponse - (*admin.Execution)(nil), // 58: flyteidl.admin.Execution - (*admin.ExecutionUpdateResponse)(nil), // 59: flyteidl.admin.ExecutionUpdateResponse - (*admin.WorkflowExecutionGetDataResponse)(nil), // 60: flyteidl.admin.WorkflowExecutionGetDataResponse - (*admin.ExecutionList)(nil), // 61: flyteidl.admin.ExecutionList - (*admin.ExecutionTerminateResponse)(nil), // 62: flyteidl.admin.ExecutionTerminateResponse - (*admin.NodeExecution)(nil), // 63: flyteidl.admin.NodeExecution - (*admin.DynamicNodeWorkflowResponse)(nil), // 64: flyteidl.admin.DynamicNodeWorkflowResponse - (*admin.NodeExecutionList)(nil), // 65: flyteidl.admin.NodeExecutionList - (*admin.NodeExecutionGetDataResponse)(nil), // 66: flyteidl.admin.NodeExecutionGetDataResponse - (*admin.ProjectRegisterResponse)(nil), // 67: flyteidl.admin.ProjectRegisterResponse - (*admin.ProjectUpdateResponse)(nil), // 68: flyteidl.admin.ProjectUpdateResponse - (*admin.Projects)(nil), // 69: flyteidl.admin.Projects - (*admin.WorkflowExecutionEventResponse)(nil), // 70: flyteidl.admin.WorkflowExecutionEventResponse - (*admin.NodeExecutionEventResponse)(nil), // 71: flyteidl.admin.NodeExecutionEventResponse - (*admin.TaskExecutionEventResponse)(nil), // 72: flyteidl.admin.TaskExecutionEventResponse - (*admin.TaskExecution)(nil), // 73: flyteidl.admin.TaskExecution - (*admin.TaskExecutionList)(nil), // 74: flyteidl.admin.TaskExecutionList - (*admin.TaskExecutionGetDataResponse)(nil), // 75: flyteidl.admin.TaskExecutionGetDataResponse - (*admin.ProjectDomainAttributesUpdateResponse)(nil), // 76: flyteidl.admin.ProjectDomainAttributesUpdateResponse - (*admin.ProjectDomainAttributesGetResponse)(nil), // 77: flyteidl.admin.ProjectDomainAttributesGetResponse - (*admin.ProjectDomainAttributesDeleteResponse)(nil), // 78: flyteidl.admin.ProjectDomainAttributesDeleteResponse - (*admin.ProjectAttributesUpdateResponse)(nil), // 79: flyteidl.admin.ProjectAttributesUpdateResponse - (*admin.ProjectAttributesGetResponse)(nil), // 80: flyteidl.admin.ProjectAttributesGetResponse - (*admin.ProjectAttributesDeleteResponse)(nil), // 81: flyteidl.admin.ProjectAttributesDeleteResponse - (*admin.WorkflowAttributesUpdateResponse)(nil), // 82: flyteidl.admin.WorkflowAttributesUpdateResponse - (*admin.WorkflowAttributesGetResponse)(nil), // 83: flyteidl.admin.WorkflowAttributesGetResponse - (*admin.WorkflowAttributesDeleteResponse)(nil), // 84: flyteidl.admin.WorkflowAttributesDeleteResponse - (*admin.ListMatchableAttributesResponse)(nil), // 85: flyteidl.admin.ListMatchableAttributesResponse - (*admin.NamedEntityList)(nil), // 86: flyteidl.admin.NamedEntityList - (*admin.NamedEntity)(nil), // 87: flyteidl.admin.NamedEntity - (*admin.NamedEntityUpdateResponse)(nil), // 88: flyteidl.admin.NamedEntityUpdateResponse - (*admin.GetVersionResponse)(nil), // 89: flyteidl.admin.GetVersionResponse - (*admin.DescriptionEntity)(nil), // 90: flyteidl.admin.DescriptionEntity - (*admin.DescriptionEntityList)(nil), // 91: flyteidl.admin.DescriptionEntityList - (*admin.WorkflowExecutionGetMetricsResponse)(nil), // 92: flyteidl.admin.WorkflowExecutionGetMetricsResponse + (*admin.ProjectGetRequest)(nil), // 23: flyteidl.admin.ProjectGetRequest + (*admin.ProjectListRequest)(nil), // 24: flyteidl.admin.ProjectListRequest + (*admin.WorkflowExecutionEventRequest)(nil), // 25: flyteidl.admin.WorkflowExecutionEventRequest + (*admin.NodeExecutionEventRequest)(nil), // 26: flyteidl.admin.NodeExecutionEventRequest + (*admin.TaskExecutionEventRequest)(nil), // 27: flyteidl.admin.TaskExecutionEventRequest + (*admin.TaskExecutionGetRequest)(nil), // 28: flyteidl.admin.TaskExecutionGetRequest + (*admin.TaskExecutionListRequest)(nil), // 29: flyteidl.admin.TaskExecutionListRequest + (*admin.TaskExecutionGetDataRequest)(nil), // 30: flyteidl.admin.TaskExecutionGetDataRequest + (*admin.ProjectDomainAttributesUpdateRequest)(nil), // 31: flyteidl.admin.ProjectDomainAttributesUpdateRequest + (*admin.ProjectDomainAttributesGetRequest)(nil), // 32: flyteidl.admin.ProjectDomainAttributesGetRequest + (*admin.ProjectDomainAttributesDeleteRequest)(nil), // 33: flyteidl.admin.ProjectDomainAttributesDeleteRequest + (*admin.ProjectAttributesUpdateRequest)(nil), // 34: flyteidl.admin.ProjectAttributesUpdateRequest + (*admin.ProjectAttributesGetRequest)(nil), // 35: flyteidl.admin.ProjectAttributesGetRequest + (*admin.ProjectAttributesDeleteRequest)(nil), // 36: flyteidl.admin.ProjectAttributesDeleteRequest + (*admin.WorkflowAttributesUpdateRequest)(nil), // 37: flyteidl.admin.WorkflowAttributesUpdateRequest + (*admin.WorkflowAttributesGetRequest)(nil), // 38: flyteidl.admin.WorkflowAttributesGetRequest + (*admin.WorkflowAttributesDeleteRequest)(nil), // 39: flyteidl.admin.WorkflowAttributesDeleteRequest + (*admin.ListMatchableAttributesRequest)(nil), // 40: flyteidl.admin.ListMatchableAttributesRequest + (*admin.NamedEntityListRequest)(nil), // 41: flyteidl.admin.NamedEntityListRequest + (*admin.NamedEntityGetRequest)(nil), // 42: flyteidl.admin.NamedEntityGetRequest + (*admin.NamedEntityUpdateRequest)(nil), // 43: flyteidl.admin.NamedEntityUpdateRequest + (*admin.GetVersionRequest)(nil), // 44: flyteidl.admin.GetVersionRequest + (*admin.DescriptionEntityListRequest)(nil), // 45: flyteidl.admin.DescriptionEntityListRequest + (*admin.WorkflowExecutionGetMetricsRequest)(nil), // 46: flyteidl.admin.WorkflowExecutionGetMetricsRequest + (*admin.TaskCreateResponse)(nil), // 47: flyteidl.admin.TaskCreateResponse + (*admin.Task)(nil), // 48: flyteidl.admin.Task + (*admin.NamedEntityIdentifierList)(nil), // 49: flyteidl.admin.NamedEntityIdentifierList + (*admin.TaskList)(nil), // 50: flyteidl.admin.TaskList + (*admin.WorkflowCreateResponse)(nil), // 51: flyteidl.admin.WorkflowCreateResponse + (*admin.Workflow)(nil), // 52: flyteidl.admin.Workflow + (*admin.WorkflowList)(nil), // 53: flyteidl.admin.WorkflowList + (*admin.LaunchPlanCreateResponse)(nil), // 54: flyteidl.admin.LaunchPlanCreateResponse + (*admin.LaunchPlan)(nil), // 55: flyteidl.admin.LaunchPlan + (*admin.LaunchPlanList)(nil), // 56: flyteidl.admin.LaunchPlanList + (*admin.LaunchPlanUpdateResponse)(nil), // 57: flyteidl.admin.LaunchPlanUpdateResponse + (*admin.ExecutionCreateResponse)(nil), // 58: flyteidl.admin.ExecutionCreateResponse + (*admin.Execution)(nil), // 59: flyteidl.admin.Execution + (*admin.ExecutionUpdateResponse)(nil), // 60: flyteidl.admin.ExecutionUpdateResponse + (*admin.WorkflowExecutionGetDataResponse)(nil), // 61: flyteidl.admin.WorkflowExecutionGetDataResponse + (*admin.ExecutionList)(nil), // 62: flyteidl.admin.ExecutionList + (*admin.ExecutionTerminateResponse)(nil), // 63: flyteidl.admin.ExecutionTerminateResponse + (*admin.NodeExecution)(nil), // 64: flyteidl.admin.NodeExecution + (*admin.DynamicNodeWorkflowResponse)(nil), // 65: flyteidl.admin.DynamicNodeWorkflowResponse + (*admin.NodeExecutionList)(nil), // 66: flyteidl.admin.NodeExecutionList + (*admin.NodeExecutionGetDataResponse)(nil), // 67: flyteidl.admin.NodeExecutionGetDataResponse + (*admin.ProjectRegisterResponse)(nil), // 68: flyteidl.admin.ProjectRegisterResponse + (*admin.ProjectUpdateResponse)(nil), // 69: flyteidl.admin.ProjectUpdateResponse + (*admin.Projects)(nil), // 70: flyteidl.admin.Projects + (*admin.WorkflowExecutionEventResponse)(nil), // 71: flyteidl.admin.WorkflowExecutionEventResponse + (*admin.NodeExecutionEventResponse)(nil), // 72: flyteidl.admin.NodeExecutionEventResponse + (*admin.TaskExecutionEventResponse)(nil), // 73: flyteidl.admin.TaskExecutionEventResponse + (*admin.TaskExecution)(nil), // 74: flyteidl.admin.TaskExecution + (*admin.TaskExecutionList)(nil), // 75: flyteidl.admin.TaskExecutionList + (*admin.TaskExecutionGetDataResponse)(nil), // 76: flyteidl.admin.TaskExecutionGetDataResponse + (*admin.ProjectDomainAttributesUpdateResponse)(nil), // 77: flyteidl.admin.ProjectDomainAttributesUpdateResponse + (*admin.ProjectDomainAttributesGetResponse)(nil), // 78: flyteidl.admin.ProjectDomainAttributesGetResponse + (*admin.ProjectDomainAttributesDeleteResponse)(nil), // 79: flyteidl.admin.ProjectDomainAttributesDeleteResponse + (*admin.ProjectAttributesUpdateResponse)(nil), // 80: flyteidl.admin.ProjectAttributesUpdateResponse + (*admin.ProjectAttributesGetResponse)(nil), // 81: flyteidl.admin.ProjectAttributesGetResponse + (*admin.ProjectAttributesDeleteResponse)(nil), // 82: flyteidl.admin.ProjectAttributesDeleteResponse + (*admin.WorkflowAttributesUpdateResponse)(nil), // 83: flyteidl.admin.WorkflowAttributesUpdateResponse + (*admin.WorkflowAttributesGetResponse)(nil), // 84: flyteidl.admin.WorkflowAttributesGetResponse + (*admin.WorkflowAttributesDeleteResponse)(nil), // 85: flyteidl.admin.WorkflowAttributesDeleteResponse + (*admin.ListMatchableAttributesResponse)(nil), // 86: flyteidl.admin.ListMatchableAttributesResponse + (*admin.NamedEntityList)(nil), // 87: flyteidl.admin.NamedEntityList + (*admin.NamedEntity)(nil), // 88: flyteidl.admin.NamedEntity + (*admin.NamedEntityUpdateResponse)(nil), // 89: flyteidl.admin.NamedEntityUpdateResponse + (*admin.GetVersionResponse)(nil), // 90: flyteidl.admin.GetVersionResponse + (*admin.DescriptionEntity)(nil), // 91: flyteidl.admin.DescriptionEntity + (*admin.DescriptionEntityList)(nil), // 92: flyteidl.admin.DescriptionEntityList + (*admin.WorkflowExecutionGetMetricsResponse)(nil), // 93: flyteidl.admin.WorkflowExecutionGetMetricsResponse } var file_flyteidl_service_admin_proto_depIdxs = []int32{ 0, // 0: flyteidl.service.AdminService.CreateTask:input_type -> flyteidl.admin.TaskCreateRequest @@ -1120,86 +1130,88 @@ var file_flyteidl_service_admin_proto_depIdxs = []int32{ 20, // 27: flyteidl.service.AdminService.GetNodeExecutionData:input_type -> flyteidl.admin.NodeExecutionGetDataRequest 21, // 28: flyteidl.service.AdminService.RegisterProject:input_type -> flyteidl.admin.ProjectRegisterRequest 22, // 29: flyteidl.service.AdminService.UpdateProject:input_type -> flyteidl.admin.Project - 23, // 30: flyteidl.service.AdminService.ListProjects:input_type -> flyteidl.admin.ProjectListRequest - 24, // 31: flyteidl.service.AdminService.CreateWorkflowEvent:input_type -> flyteidl.admin.WorkflowExecutionEventRequest - 25, // 32: flyteidl.service.AdminService.CreateNodeEvent:input_type -> flyteidl.admin.NodeExecutionEventRequest - 26, // 33: flyteidl.service.AdminService.CreateTaskEvent:input_type -> flyteidl.admin.TaskExecutionEventRequest - 27, // 34: flyteidl.service.AdminService.GetTaskExecution:input_type -> flyteidl.admin.TaskExecutionGetRequest - 28, // 35: flyteidl.service.AdminService.ListTaskExecutions:input_type -> flyteidl.admin.TaskExecutionListRequest - 29, // 36: flyteidl.service.AdminService.GetTaskExecutionData:input_type -> flyteidl.admin.TaskExecutionGetDataRequest - 30, // 37: flyteidl.service.AdminService.UpdateProjectDomainAttributes:input_type -> flyteidl.admin.ProjectDomainAttributesUpdateRequest - 31, // 38: flyteidl.service.AdminService.GetProjectDomainAttributes:input_type -> flyteidl.admin.ProjectDomainAttributesGetRequest - 32, // 39: flyteidl.service.AdminService.DeleteProjectDomainAttributes:input_type -> flyteidl.admin.ProjectDomainAttributesDeleteRequest - 33, // 40: flyteidl.service.AdminService.UpdateProjectAttributes:input_type -> flyteidl.admin.ProjectAttributesUpdateRequest - 34, // 41: flyteidl.service.AdminService.GetProjectAttributes:input_type -> flyteidl.admin.ProjectAttributesGetRequest - 35, // 42: flyteidl.service.AdminService.DeleteProjectAttributes:input_type -> flyteidl.admin.ProjectAttributesDeleteRequest - 36, // 43: flyteidl.service.AdminService.UpdateWorkflowAttributes:input_type -> flyteidl.admin.WorkflowAttributesUpdateRequest - 37, // 44: flyteidl.service.AdminService.GetWorkflowAttributes:input_type -> flyteidl.admin.WorkflowAttributesGetRequest - 38, // 45: flyteidl.service.AdminService.DeleteWorkflowAttributes:input_type -> flyteidl.admin.WorkflowAttributesDeleteRequest - 39, // 46: flyteidl.service.AdminService.ListMatchableAttributes:input_type -> flyteidl.admin.ListMatchableAttributesRequest - 40, // 47: flyteidl.service.AdminService.ListNamedEntities:input_type -> flyteidl.admin.NamedEntityListRequest - 41, // 48: flyteidl.service.AdminService.GetNamedEntity:input_type -> flyteidl.admin.NamedEntityGetRequest - 42, // 49: flyteidl.service.AdminService.UpdateNamedEntity:input_type -> flyteidl.admin.NamedEntityUpdateRequest - 43, // 50: flyteidl.service.AdminService.GetVersion:input_type -> flyteidl.admin.GetVersionRequest - 1, // 51: flyteidl.service.AdminService.GetDescriptionEntity:input_type -> flyteidl.admin.ObjectGetRequest - 44, // 52: flyteidl.service.AdminService.ListDescriptionEntities:input_type -> flyteidl.admin.DescriptionEntityListRequest - 45, // 53: flyteidl.service.AdminService.GetExecutionMetrics:input_type -> flyteidl.admin.WorkflowExecutionGetMetricsRequest - 46, // 54: flyteidl.service.AdminService.CreateTask:output_type -> flyteidl.admin.TaskCreateResponse - 47, // 55: flyteidl.service.AdminService.GetTask:output_type -> flyteidl.admin.Task - 48, // 56: flyteidl.service.AdminService.ListTaskIds:output_type -> flyteidl.admin.NamedEntityIdentifierList - 49, // 57: flyteidl.service.AdminService.ListTasks:output_type -> flyteidl.admin.TaskList - 50, // 58: flyteidl.service.AdminService.CreateWorkflow:output_type -> flyteidl.admin.WorkflowCreateResponse - 51, // 59: flyteidl.service.AdminService.GetWorkflow:output_type -> flyteidl.admin.Workflow - 48, // 60: flyteidl.service.AdminService.ListWorkflowIds:output_type -> flyteidl.admin.NamedEntityIdentifierList - 52, // 61: flyteidl.service.AdminService.ListWorkflows:output_type -> flyteidl.admin.WorkflowList - 53, // 62: flyteidl.service.AdminService.CreateLaunchPlan:output_type -> flyteidl.admin.LaunchPlanCreateResponse - 54, // 63: flyteidl.service.AdminService.GetLaunchPlan:output_type -> flyteidl.admin.LaunchPlan - 54, // 64: flyteidl.service.AdminService.GetActiveLaunchPlan:output_type -> flyteidl.admin.LaunchPlan - 55, // 65: flyteidl.service.AdminService.ListActiveLaunchPlans:output_type -> flyteidl.admin.LaunchPlanList - 48, // 66: flyteidl.service.AdminService.ListLaunchPlanIds:output_type -> flyteidl.admin.NamedEntityIdentifierList - 55, // 67: flyteidl.service.AdminService.ListLaunchPlans:output_type -> flyteidl.admin.LaunchPlanList - 56, // 68: flyteidl.service.AdminService.UpdateLaunchPlan:output_type -> flyteidl.admin.LaunchPlanUpdateResponse - 57, // 69: flyteidl.service.AdminService.CreateExecution:output_type -> flyteidl.admin.ExecutionCreateResponse - 57, // 70: flyteidl.service.AdminService.RelaunchExecution:output_type -> flyteidl.admin.ExecutionCreateResponse - 57, // 71: flyteidl.service.AdminService.RecoverExecution:output_type -> flyteidl.admin.ExecutionCreateResponse - 58, // 72: flyteidl.service.AdminService.GetExecution:output_type -> flyteidl.admin.Execution - 59, // 73: flyteidl.service.AdminService.UpdateExecution:output_type -> flyteidl.admin.ExecutionUpdateResponse - 60, // 74: flyteidl.service.AdminService.GetExecutionData:output_type -> flyteidl.admin.WorkflowExecutionGetDataResponse - 61, // 75: flyteidl.service.AdminService.ListExecutions:output_type -> flyteidl.admin.ExecutionList - 62, // 76: flyteidl.service.AdminService.TerminateExecution:output_type -> flyteidl.admin.ExecutionTerminateResponse - 63, // 77: flyteidl.service.AdminService.GetNodeExecution:output_type -> flyteidl.admin.NodeExecution - 64, // 78: flyteidl.service.AdminService.GetDynamicNodeWorkflow:output_type -> flyteidl.admin.DynamicNodeWorkflowResponse - 65, // 79: flyteidl.service.AdminService.ListNodeExecutions:output_type -> flyteidl.admin.NodeExecutionList - 65, // 80: flyteidl.service.AdminService.ListNodeExecutionsForTask:output_type -> flyteidl.admin.NodeExecutionList - 66, // 81: flyteidl.service.AdminService.GetNodeExecutionData:output_type -> flyteidl.admin.NodeExecutionGetDataResponse - 67, // 82: flyteidl.service.AdminService.RegisterProject:output_type -> flyteidl.admin.ProjectRegisterResponse - 68, // 83: flyteidl.service.AdminService.UpdateProject:output_type -> flyteidl.admin.ProjectUpdateResponse - 69, // 84: flyteidl.service.AdminService.ListProjects:output_type -> flyteidl.admin.Projects - 70, // 85: flyteidl.service.AdminService.CreateWorkflowEvent:output_type -> flyteidl.admin.WorkflowExecutionEventResponse - 71, // 86: flyteidl.service.AdminService.CreateNodeEvent:output_type -> flyteidl.admin.NodeExecutionEventResponse - 72, // 87: flyteidl.service.AdminService.CreateTaskEvent:output_type -> flyteidl.admin.TaskExecutionEventResponse - 73, // 88: flyteidl.service.AdminService.GetTaskExecution:output_type -> flyteidl.admin.TaskExecution - 74, // 89: flyteidl.service.AdminService.ListTaskExecutions:output_type -> flyteidl.admin.TaskExecutionList - 75, // 90: flyteidl.service.AdminService.GetTaskExecutionData:output_type -> flyteidl.admin.TaskExecutionGetDataResponse - 76, // 91: flyteidl.service.AdminService.UpdateProjectDomainAttributes:output_type -> flyteidl.admin.ProjectDomainAttributesUpdateResponse - 77, // 92: flyteidl.service.AdminService.GetProjectDomainAttributes:output_type -> flyteidl.admin.ProjectDomainAttributesGetResponse - 78, // 93: flyteidl.service.AdminService.DeleteProjectDomainAttributes:output_type -> flyteidl.admin.ProjectDomainAttributesDeleteResponse - 79, // 94: flyteidl.service.AdminService.UpdateProjectAttributes:output_type -> flyteidl.admin.ProjectAttributesUpdateResponse - 80, // 95: flyteidl.service.AdminService.GetProjectAttributes:output_type -> flyteidl.admin.ProjectAttributesGetResponse - 81, // 96: flyteidl.service.AdminService.DeleteProjectAttributes:output_type -> flyteidl.admin.ProjectAttributesDeleteResponse - 82, // 97: flyteidl.service.AdminService.UpdateWorkflowAttributes:output_type -> flyteidl.admin.WorkflowAttributesUpdateResponse - 83, // 98: flyteidl.service.AdminService.GetWorkflowAttributes:output_type -> flyteidl.admin.WorkflowAttributesGetResponse - 84, // 99: flyteidl.service.AdminService.DeleteWorkflowAttributes:output_type -> flyteidl.admin.WorkflowAttributesDeleteResponse - 85, // 100: flyteidl.service.AdminService.ListMatchableAttributes:output_type -> flyteidl.admin.ListMatchableAttributesResponse - 86, // 101: flyteidl.service.AdminService.ListNamedEntities:output_type -> flyteidl.admin.NamedEntityList - 87, // 102: flyteidl.service.AdminService.GetNamedEntity:output_type -> flyteidl.admin.NamedEntity - 88, // 103: flyteidl.service.AdminService.UpdateNamedEntity:output_type -> flyteidl.admin.NamedEntityUpdateResponse - 89, // 104: flyteidl.service.AdminService.GetVersion:output_type -> flyteidl.admin.GetVersionResponse - 90, // 105: flyteidl.service.AdminService.GetDescriptionEntity:output_type -> flyteidl.admin.DescriptionEntity - 91, // 106: flyteidl.service.AdminService.ListDescriptionEntities:output_type -> flyteidl.admin.DescriptionEntityList - 92, // 107: flyteidl.service.AdminService.GetExecutionMetrics:output_type -> flyteidl.admin.WorkflowExecutionGetMetricsResponse - 54, // [54:108] is the sub-list for method output_type - 0, // [0:54] is the sub-list for method input_type + 23, // 30: flyteidl.service.AdminService.GetProject:input_type -> flyteidl.admin.ProjectGetRequest + 24, // 31: flyteidl.service.AdminService.ListProjects:input_type -> flyteidl.admin.ProjectListRequest + 25, // 32: flyteidl.service.AdminService.CreateWorkflowEvent:input_type -> flyteidl.admin.WorkflowExecutionEventRequest + 26, // 33: flyteidl.service.AdminService.CreateNodeEvent:input_type -> flyteidl.admin.NodeExecutionEventRequest + 27, // 34: flyteidl.service.AdminService.CreateTaskEvent:input_type -> flyteidl.admin.TaskExecutionEventRequest + 28, // 35: flyteidl.service.AdminService.GetTaskExecution:input_type -> flyteidl.admin.TaskExecutionGetRequest + 29, // 36: flyteidl.service.AdminService.ListTaskExecutions:input_type -> flyteidl.admin.TaskExecutionListRequest + 30, // 37: flyteidl.service.AdminService.GetTaskExecutionData:input_type -> flyteidl.admin.TaskExecutionGetDataRequest + 31, // 38: flyteidl.service.AdminService.UpdateProjectDomainAttributes:input_type -> flyteidl.admin.ProjectDomainAttributesUpdateRequest + 32, // 39: flyteidl.service.AdminService.GetProjectDomainAttributes:input_type -> flyteidl.admin.ProjectDomainAttributesGetRequest + 33, // 40: flyteidl.service.AdminService.DeleteProjectDomainAttributes:input_type -> flyteidl.admin.ProjectDomainAttributesDeleteRequest + 34, // 41: flyteidl.service.AdminService.UpdateProjectAttributes:input_type -> flyteidl.admin.ProjectAttributesUpdateRequest + 35, // 42: flyteidl.service.AdminService.GetProjectAttributes:input_type -> flyteidl.admin.ProjectAttributesGetRequest + 36, // 43: flyteidl.service.AdminService.DeleteProjectAttributes:input_type -> flyteidl.admin.ProjectAttributesDeleteRequest + 37, // 44: flyteidl.service.AdminService.UpdateWorkflowAttributes:input_type -> flyteidl.admin.WorkflowAttributesUpdateRequest + 38, // 45: flyteidl.service.AdminService.GetWorkflowAttributes:input_type -> flyteidl.admin.WorkflowAttributesGetRequest + 39, // 46: flyteidl.service.AdminService.DeleteWorkflowAttributes:input_type -> flyteidl.admin.WorkflowAttributesDeleteRequest + 40, // 47: flyteidl.service.AdminService.ListMatchableAttributes:input_type -> flyteidl.admin.ListMatchableAttributesRequest + 41, // 48: flyteidl.service.AdminService.ListNamedEntities:input_type -> flyteidl.admin.NamedEntityListRequest + 42, // 49: flyteidl.service.AdminService.GetNamedEntity:input_type -> flyteidl.admin.NamedEntityGetRequest + 43, // 50: flyteidl.service.AdminService.UpdateNamedEntity:input_type -> flyteidl.admin.NamedEntityUpdateRequest + 44, // 51: flyteidl.service.AdminService.GetVersion:input_type -> flyteidl.admin.GetVersionRequest + 1, // 52: flyteidl.service.AdminService.GetDescriptionEntity:input_type -> flyteidl.admin.ObjectGetRequest + 45, // 53: flyteidl.service.AdminService.ListDescriptionEntities:input_type -> flyteidl.admin.DescriptionEntityListRequest + 46, // 54: flyteidl.service.AdminService.GetExecutionMetrics:input_type -> flyteidl.admin.WorkflowExecutionGetMetricsRequest + 47, // 55: flyteidl.service.AdminService.CreateTask:output_type -> flyteidl.admin.TaskCreateResponse + 48, // 56: flyteidl.service.AdminService.GetTask:output_type -> flyteidl.admin.Task + 49, // 57: flyteidl.service.AdminService.ListTaskIds:output_type -> flyteidl.admin.NamedEntityIdentifierList + 50, // 58: flyteidl.service.AdminService.ListTasks:output_type -> flyteidl.admin.TaskList + 51, // 59: flyteidl.service.AdminService.CreateWorkflow:output_type -> flyteidl.admin.WorkflowCreateResponse + 52, // 60: flyteidl.service.AdminService.GetWorkflow:output_type -> flyteidl.admin.Workflow + 49, // 61: flyteidl.service.AdminService.ListWorkflowIds:output_type -> flyteidl.admin.NamedEntityIdentifierList + 53, // 62: flyteidl.service.AdminService.ListWorkflows:output_type -> flyteidl.admin.WorkflowList + 54, // 63: flyteidl.service.AdminService.CreateLaunchPlan:output_type -> flyteidl.admin.LaunchPlanCreateResponse + 55, // 64: flyteidl.service.AdminService.GetLaunchPlan:output_type -> flyteidl.admin.LaunchPlan + 55, // 65: flyteidl.service.AdminService.GetActiveLaunchPlan:output_type -> flyteidl.admin.LaunchPlan + 56, // 66: flyteidl.service.AdminService.ListActiveLaunchPlans:output_type -> flyteidl.admin.LaunchPlanList + 49, // 67: flyteidl.service.AdminService.ListLaunchPlanIds:output_type -> flyteidl.admin.NamedEntityIdentifierList + 56, // 68: flyteidl.service.AdminService.ListLaunchPlans:output_type -> flyteidl.admin.LaunchPlanList + 57, // 69: flyteidl.service.AdminService.UpdateLaunchPlan:output_type -> flyteidl.admin.LaunchPlanUpdateResponse + 58, // 70: flyteidl.service.AdminService.CreateExecution:output_type -> flyteidl.admin.ExecutionCreateResponse + 58, // 71: flyteidl.service.AdminService.RelaunchExecution:output_type -> flyteidl.admin.ExecutionCreateResponse + 58, // 72: flyteidl.service.AdminService.RecoverExecution:output_type -> flyteidl.admin.ExecutionCreateResponse + 59, // 73: flyteidl.service.AdminService.GetExecution:output_type -> flyteidl.admin.Execution + 60, // 74: flyteidl.service.AdminService.UpdateExecution:output_type -> flyteidl.admin.ExecutionUpdateResponse + 61, // 75: flyteidl.service.AdminService.GetExecutionData:output_type -> flyteidl.admin.WorkflowExecutionGetDataResponse + 62, // 76: flyteidl.service.AdminService.ListExecutions:output_type -> flyteidl.admin.ExecutionList + 63, // 77: flyteidl.service.AdminService.TerminateExecution:output_type -> flyteidl.admin.ExecutionTerminateResponse + 64, // 78: flyteidl.service.AdminService.GetNodeExecution:output_type -> flyteidl.admin.NodeExecution + 65, // 79: flyteidl.service.AdminService.GetDynamicNodeWorkflow:output_type -> flyteidl.admin.DynamicNodeWorkflowResponse + 66, // 80: flyteidl.service.AdminService.ListNodeExecutions:output_type -> flyteidl.admin.NodeExecutionList + 66, // 81: flyteidl.service.AdminService.ListNodeExecutionsForTask:output_type -> flyteidl.admin.NodeExecutionList + 67, // 82: flyteidl.service.AdminService.GetNodeExecutionData:output_type -> flyteidl.admin.NodeExecutionGetDataResponse + 68, // 83: flyteidl.service.AdminService.RegisterProject:output_type -> flyteidl.admin.ProjectRegisterResponse + 69, // 84: flyteidl.service.AdminService.UpdateProject:output_type -> flyteidl.admin.ProjectUpdateResponse + 22, // 85: flyteidl.service.AdminService.GetProject:output_type -> flyteidl.admin.Project + 70, // 86: flyteidl.service.AdminService.ListProjects:output_type -> flyteidl.admin.Projects + 71, // 87: flyteidl.service.AdminService.CreateWorkflowEvent:output_type -> flyteidl.admin.WorkflowExecutionEventResponse + 72, // 88: flyteidl.service.AdminService.CreateNodeEvent:output_type -> flyteidl.admin.NodeExecutionEventResponse + 73, // 89: flyteidl.service.AdminService.CreateTaskEvent:output_type -> flyteidl.admin.TaskExecutionEventResponse + 74, // 90: flyteidl.service.AdminService.GetTaskExecution:output_type -> flyteidl.admin.TaskExecution + 75, // 91: flyteidl.service.AdminService.ListTaskExecutions:output_type -> flyteidl.admin.TaskExecutionList + 76, // 92: flyteidl.service.AdminService.GetTaskExecutionData:output_type -> flyteidl.admin.TaskExecutionGetDataResponse + 77, // 93: flyteidl.service.AdminService.UpdateProjectDomainAttributes:output_type -> flyteidl.admin.ProjectDomainAttributesUpdateResponse + 78, // 94: flyteidl.service.AdminService.GetProjectDomainAttributes:output_type -> flyteidl.admin.ProjectDomainAttributesGetResponse + 79, // 95: flyteidl.service.AdminService.DeleteProjectDomainAttributes:output_type -> flyteidl.admin.ProjectDomainAttributesDeleteResponse + 80, // 96: flyteidl.service.AdminService.UpdateProjectAttributes:output_type -> flyteidl.admin.ProjectAttributesUpdateResponse + 81, // 97: flyteidl.service.AdminService.GetProjectAttributes:output_type -> flyteidl.admin.ProjectAttributesGetResponse + 82, // 98: flyteidl.service.AdminService.DeleteProjectAttributes:output_type -> flyteidl.admin.ProjectAttributesDeleteResponse + 83, // 99: flyteidl.service.AdminService.UpdateWorkflowAttributes:output_type -> flyteidl.admin.WorkflowAttributesUpdateResponse + 84, // 100: flyteidl.service.AdminService.GetWorkflowAttributes:output_type -> flyteidl.admin.WorkflowAttributesGetResponse + 85, // 101: flyteidl.service.AdminService.DeleteWorkflowAttributes:output_type -> flyteidl.admin.WorkflowAttributesDeleteResponse + 86, // 102: flyteidl.service.AdminService.ListMatchableAttributes:output_type -> flyteidl.admin.ListMatchableAttributesResponse + 87, // 103: flyteidl.service.AdminService.ListNamedEntities:output_type -> flyteidl.admin.NamedEntityList + 88, // 104: flyteidl.service.AdminService.GetNamedEntity:output_type -> flyteidl.admin.NamedEntity + 89, // 105: flyteidl.service.AdminService.UpdateNamedEntity:output_type -> flyteidl.admin.NamedEntityUpdateResponse + 90, // 106: flyteidl.service.AdminService.GetVersion:output_type -> flyteidl.admin.GetVersionResponse + 91, // 107: flyteidl.service.AdminService.GetDescriptionEntity:output_type -> flyteidl.admin.DescriptionEntity + 92, // 108: flyteidl.service.AdminService.ListDescriptionEntities:output_type -> flyteidl.admin.DescriptionEntityList + 93, // 109: flyteidl.service.AdminService.GetExecutionMetrics:output_type -> flyteidl.admin.WorkflowExecutionGetMetricsResponse + 55, // [55:110] is the sub-list for method output_type + 0, // [0:55] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin_grpc.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin_grpc.pb.go index 2f96e962f9..9ca6ebd75c 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin_grpc.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin_grpc.pb.go @@ -50,6 +50,7 @@ const ( AdminService_GetNodeExecutionData_FullMethodName = "/flyteidl.service.AdminService/GetNodeExecutionData" AdminService_RegisterProject_FullMethodName = "/flyteidl.service.AdminService/RegisterProject" AdminService_UpdateProject_FullMethodName = "/flyteidl.service.AdminService/UpdateProject" + AdminService_GetProject_FullMethodName = "/flyteidl.service.AdminService/GetProject" AdminService_ListProjects_FullMethodName = "/flyteidl.service.AdminService/ListProjects" AdminService_CreateWorkflowEvent_FullMethodName = "/flyteidl.service.AdminService/CreateWorkflowEvent" AdminService_CreateNodeEvent_FullMethodName = "/flyteidl.service.AdminService/CreateNodeEvent" @@ -146,6 +147,8 @@ type AdminServiceClient interface { // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. UpdateProject(ctx context.Context, in *admin.Project, opts ...grpc.CallOption) (*admin.ProjectUpdateResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.Project` + GetProject(ctx context.Context, in *admin.ProjectGetRequest, opts ...grpc.CallOption) (*admin.Project, error) // Fetches a list of :ref:`ref_flyteidl.admin.Project` ListProjects(ctx context.Context, in *admin.ProjectListRequest, opts ...grpc.CallOption) (*admin.Projects, error) // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. @@ -473,6 +476,15 @@ func (c *adminServiceClient) UpdateProject(ctx context.Context, in *admin.Projec return out, nil } +func (c *adminServiceClient) GetProject(ctx context.Context, in *admin.ProjectGetRequest, opts ...grpc.CallOption) (*admin.Project, error) { + out := new(admin.Project) + err := c.cc.Invoke(ctx, AdminService_GetProject_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *adminServiceClient) ListProjects(ctx context.Context, in *admin.ProjectListRequest, opts ...grpc.CallOption) (*admin.Projects, error) { out := new(admin.Projects) err := c.cc.Invoke(ctx, AdminService_ListProjects_FullMethodName, in, out, opts...) @@ -759,6 +771,8 @@ type AdminServiceServer interface { // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. UpdateProject(context.Context, *admin.Project) (*admin.ProjectUpdateResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.Project` + GetProject(context.Context, *admin.ProjectGetRequest) (*admin.Project, error) // Fetches a list of :ref:`ref_flyteidl.admin.Project` ListProjects(context.Context, *admin.ProjectListRequest) (*admin.Projects, error) // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. @@ -902,6 +916,9 @@ func (UnimplementedAdminServiceServer) RegisterProject(context.Context, *admin.P func (UnimplementedAdminServiceServer) UpdateProject(context.Context, *admin.Project) (*admin.ProjectUpdateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProject not implemented") } +func (UnimplementedAdminServiceServer) GetProject(context.Context, *admin.ProjectGetRequest) (*admin.Project, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetProject not implemented") +} func (UnimplementedAdminServiceServer) ListProjects(context.Context, *admin.ProjectListRequest) (*admin.Projects, error) { return nil, status.Errorf(codes.Unimplemented, "method ListProjects not implemented") } @@ -1526,6 +1543,24 @@ func _AdminService_UpdateProject_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _AdminService_GetProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(admin.ProjectGetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).GetProject(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_GetProject_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).GetProject(ctx, req.(*admin.ProjectGetRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AdminService_ListProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(admin.ProjectListRequest) if err := dec(in); err != nil { @@ -2085,6 +2120,10 @@ var AdminService_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateProject", Handler: _AdminService_UpdateProject_Handler, }, + { + MethodName: "GetProject", + Handler: _AdminService_GetProject_Handler, + }, { MethodName: "ListProjects", Handler: _AdminService_ListProjects_Handler, diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go index 38a2f65f31..d6e056d029 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go @@ -3184,6 +3184,58 @@ func local_request_AdminService_UpdateProject_0(ctx context.Context, marshaler r } +func request_AdminService_GetProject_0(ctx context.Context, marshaler runtime.Marshaler, client extService.AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq extAdmin.ProjectGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.GetProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_GetProject_0(ctx context.Context, marshaler runtime.Marshaler, server extService.AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq extAdmin.ProjectGetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.GetProject(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_AdminService_ListProjects_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -6509,6 +6561,31 @@ func RegisterAdminServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_GetProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/flyteidl.service.AdminService/GetProject", runtime.WithHTTPPathPattern("/api/v1/projects/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_GetProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_ListProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7901,6 +7978,28 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_GetProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/flyteidl.service.AdminService/GetProject", runtime.WithHTTPPathPattern("/api/v1/projects/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetProject_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_ListProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -8521,6 +8620,8 @@ var ( pattern_AdminService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) + pattern_AdminService_GetProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "id"}, "")) + pattern_AdminService_ListProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "projects"}, "")) pattern_AdminService_CreateWorkflowEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "events", "workflows"}, "")) @@ -8639,6 +8740,8 @@ var ( forward_AdminService_UpdateProject_0 = runtime.ForwardResponseMessage + forward_AdminService_GetProject_0 = runtime.ForwardResponseMessage + forward_AdminService_ListProjects_0 = runtime.ForwardResponseMessage forward_AdminService_CreateWorkflowEvent_0 = runtime.ForwardResponseMessage diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index 64a6af5899..226588a131 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -2720,6 +2720,37 @@ } }, "/api/v1/projects/{id}": { + "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.Project`", + "description": "Fetch a registered project.", + "operationId": "AdminService_GetProject", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/adminProject" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/googlerpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "description": "Indicates a unique project.\n+required", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project`\nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", "description": "Update a project.", diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 1d1f77b57e..8c1034865b 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -17812,6 +17812,58 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a ProjectGetRequest. */ + interface IProjectGetRequest { + + /** ProjectGetRequest id */ + id?: (string|null); + } + + /** Represents a ProjectGetRequest. */ + class ProjectGetRequest implements IProjectGetRequest { + + /** + * Constructs a new ProjectGetRequest. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.admin.IProjectGetRequest); + + /** ProjectGetRequest id. */ + public id: string; + + /** + * Creates a new ProjectGetRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ProjectGetRequest instance + */ + public static create(properties?: flyteidl.admin.IProjectGetRequest): flyteidl.admin.ProjectGetRequest; + + /** + * Encodes the specified ProjectGetRequest message. Does not implicitly {@link flyteidl.admin.ProjectGetRequest.verify|verify} messages. + * @param message ProjectGetRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.admin.IProjectGetRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ProjectGetRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ProjectGetRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ProjectGetRequest; + + /** + * Verifies a ProjectGetRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of a ProjectAttributes. */ interface IProjectAttributes { @@ -21432,6 +21484,20 @@ export namespace flyteidl { */ public updateProject(request: flyteidl.admin.IProject): Promise; + /** + * Calls GetProject. + * @param request ProjectGetRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Project + */ + public getProject(request: flyteidl.admin.IProjectGetRequest, callback: flyteidl.service.AdminService.GetProjectCallback): void; + + /** + * Calls GetProject. + * @param request ProjectGetRequest message or plain object + * @returns Promise + */ + public getProject(request: flyteidl.admin.IProjectGetRequest): Promise; + /** * Calls ListProjects. * @param request ProjectListRequest message or plain object @@ -21981,6 +22047,13 @@ export namespace flyteidl { */ type UpdateProjectCallback = (error: (Error|null), response?: flyteidl.admin.ProjectUpdateResponse) => void; + /** + * Callback as used by {@link flyteidl.service.AdminService#getProject}. + * @param error Error, if any + * @param [response] Project + */ + type GetProjectCallback = (error: (Error|null), response?: flyteidl.admin.Project) => void; + /** * Callback as used by {@link flyteidl.service.AdminService#listProjects}. * @param error Error, if any diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 95ac3ce6ea..680cf11ee2 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -43012,6 +43012,116 @@ return ProjectUpdateResponse; })(); + admin.ProjectGetRequest = (function() { + + /** + * Properties of a ProjectGetRequest. + * @memberof flyteidl.admin + * @interface IProjectGetRequest + * @property {string|null} [id] ProjectGetRequest id + */ + + /** + * Constructs a new ProjectGetRequest. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectGetRequest. + * @implements IProjectGetRequest + * @constructor + * @param {flyteidl.admin.IProjectGetRequest=} [properties] Properties to set + */ + function ProjectGetRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectGetRequest id. + * @member {string} id + * @memberof flyteidl.admin.ProjectGetRequest + * @instance + */ + ProjectGetRequest.prototype.id = ""; + + /** + * Creates a new ProjectGetRequest instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectGetRequest + * @static + * @param {flyteidl.admin.IProjectGetRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectGetRequest} ProjectGetRequest instance + */ + ProjectGetRequest.create = function create(properties) { + return new ProjectGetRequest(properties); + }; + + /** + * Encodes the specified ProjectGetRequest message. Does not implicitly {@link flyteidl.admin.ProjectGetRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectGetRequest + * @static + * @param {flyteidl.admin.IProjectGetRequest} message ProjectGetRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectGetRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && message.hasOwnProperty("id")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.id); + return writer; + }; + + /** + * Decodes a ProjectGetRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectGetRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectGetRequest} ProjectGetRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectGetRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectGetRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectGetRequest message. + * @function verify + * @memberof flyteidl.admin.ProjectGetRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectGetRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isString(message.id)) + return "id: string expected"; + return null; + }; + + return ProjectGetRequest; + })(); + admin.ProjectAttributes = (function() { /** @@ -51364,6 +51474,39 @@ * @variation 2 */ + /** + * Callback as used by {@link flyteidl.service.AdminService#getProject}. + * @memberof flyteidl.service.AdminService + * @typedef GetProjectCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.admin.Project} [response] Project + */ + + /** + * Calls GetProject. + * @function getProject + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectGetRequest} request ProjectGetRequest message or plain object + * @param {flyteidl.service.AdminService.GetProjectCallback} callback Node-style callback called with the error, if any, and Project + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AdminService.prototype.getProject = function getProject(request, callback) { + return this.rpcCall(getProject, $root.flyteidl.admin.ProjectGetRequest, $root.flyteidl.admin.Project, request, callback); + }, "name", { value: "GetProject" }); + + /** + * Calls GetProject. + * @function getProject + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectGetRequest} request ProjectGetRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link flyteidl.service.AdminService#listProjects}. * @memberof flyteidl.service.AdminService diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py index d0b442e3a5..38d97f2ebe 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9b\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponseB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9b\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponse\"#\n\x11ProjectGetRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02idB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,4 +39,6 @@ _globals['_PROJECTREGISTERRESPONSE']._serialized_end=792 _globals['_PROJECTUPDATERESPONSE']._serialized_start=794 _globals['_PROJECTUPDATERESPONSE']._serialized_end=817 + _globals['_PROJECTGETREQUEST']._serialized_start=819 + _globals['_PROJECTGETREQUEST']._serialized_end=854 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi index 1379fa3c0c..ddb3f617ff 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi @@ -76,3 +76,9 @@ class ProjectRegisterResponse(_message.Message): class ProjectUpdateResponse(_message.Message): __slots__ = [] def __init__(self) -> None: ... + +class ProjectGetRequest(_message.Message): + __slots__ = ["id"] + ID_FIELD_NUMBER: _ClassVar[int] + id: str + def __init__(self, id: _Optional[str] = ...) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index f2b5a55db6..c205a119f5 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -30,7 +30,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\'flyteidl/admin/project_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/description_entity.proto\x1a.protoc-gen-openapiv2/options/annotations.proto2\x89r\n\x0c\x41\x64minService\x12\xc5\x02\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\xef\x01\x92\x41\xd3\x01\x1a&Create and register a task definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xb2\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"o\x92\x41\'\x1a%Retrieve an existing task definition.\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xde\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"r\x92\x41\x44\x1a\x42\x46\x65tch existing task definition identifiers matching input filters.\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x12\xeb\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\x9e\x01\x92\x41\x39\x1a\x37\x46\x65tch existing task definitions matching input filters.\x82\xd3\xe4\x93\x02\\Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12\xd9\x02\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\xf7\x01\x92\x41\xd7\x01\x1a*Create and register a workflow definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xc2\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"w\x92\x41+\x1a)Retrieve an existing workflow definition.\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x9f\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"/\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xff\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xaa\x01\x92\x41=\x1a;Fetch existing workflow definitions matching input filters.\x82\xd3\xe4\x93\x02\x64Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\xe5\x02\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\xfd\x01\x92\x41\xda\x01\x1a-Create and register a launch plan definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xcc\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"}\x92\x41.\x1a,Retrieve an existing launch plan definition.\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x92\x41M\x1aKRetrieve the active launch plan version specified by input request filters.\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x92\x41\x85\x05\x1a\x82\x05Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x92\x41 \x1a\x1eRelaunch a workflow execution.\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x92\x41*\x1a(Retrieve an existing workflow execution.\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xa4\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"@\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xb9\x01\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\x89\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xad\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"@\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd2\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"v\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xff\x01\n\x16GetDynamicNodeWorkflow\x12-.flyteidl.admin.GetDynamicNodeWorkflowRequest\x1a+.flyteidl.admin.DynamicNodeWorkflowResponse\"\x88\x01\x82\xd3\xe4\x93\x02\x81\x01\x12\x7f/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}/dynamic_workflow\x12\xde\x01\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xa5\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb3\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xee\x01\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x92\x41\x13\x1a\x11Update a project.\x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x92\x41=\x1a;Create a node execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x92\x41=\x1a;Create a task execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x92\x41&\x1a$Retrieve an existing task execution.\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xff\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x82\x01\x92\x41\x45\x1a\x43Update the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\xe9\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"v\x92\x41G\x1a\x45Retrieve the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xf3\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"w\x92\x41\x45\x1a\x43\x44\x65lete the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x92\x41>\x1a/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x92\x41\x85\x05\x1a\x82\x05Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x92\x41 \x1a\x1eRelaunch a workflow execution.\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x92\x41*\x1a(Retrieve an existing workflow execution.\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xa4\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"@\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xb9\x01\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\x89\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xad\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"@\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd2\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"v\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xff\x01\n\x16GetDynamicNodeWorkflow\x12-.flyteidl.admin.GetDynamicNodeWorkflowRequest\x1a+.flyteidl.admin.DynamicNodeWorkflowResponse\"\x88\x01\x82\xd3\xe4\x93\x02\x81\x01\x12\x7f/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}/dynamic_workflow\x12\xde\x01\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xa5\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb3\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xee\x01\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x92\x41\x13\x1a\x11Update a project.\x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x87\x01\n\nGetProject\x12!.flyteidl.admin.ProjectGetRequest\x1a\x17.flyteidl.admin.Project\"=\x92\x41\x1d\x1a\x1b\x46\x65tch a registered project.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/projects/{id}\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x92\x41=\x1a;Create a node execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x92\x41=\x1a;Create a task execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x92\x41&\x1a$Retrieve an existing task execution.\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xff\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x82\x01\x92\x41\x45\x1a\x43Update the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\xe9\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"v\x92\x41G\x1a\x45Retrieve the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xf3\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"w\x92\x41\x45\x1a\x43\x44\x65lete the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x92\x41>\x1a Date: Wed, 20 Mar 2024 17:01:16 -0500 Subject: [PATCH 58/76] Prepopulate ArrayNode output literals with TaskNode interface output variables (#5080) * prepopulate output literals with TaskNode interface output variables Signed-off-by: Daniel Rammer * added unit test Signed-off-by: Daniel Rammer * docs Signed-off-by: Daniel Rammer --------- Signed-off-by: Daniel Rammer --- .../pkg/controller/nodes/array/handler.go | 32 +++++++++++++++++++ .../controller/nodes/array/handler_test.go | 9 ++++++ 2 files changed, 41 insertions(+) diff --git a/flytepropeller/pkg/controller/nodes/array/handler.go b/flytepropeller/pkg/controller/nodes/array/handler.go index 72b2c511eb..991a28c1c3 100644 --- a/flytepropeller/pkg/controller/nodes/array/handler.go +++ b/flytepropeller/pkg/controller/nodes/array/handler.go @@ -478,7 +478,39 @@ func (a *arrayNodeHandler) Handle(ctx context.Context, nCtx interfaces.NodeExecu gatherOutputsRequests = append(gatherOutputsRequests, gatherOutputsRequest) } + // attempt best effort at initializing outputLiterals with output variable names. currently + // only TaskNode and WorkflowNode contain node interfaces. outputLiterals := make(map[string]*idlcore.Literal) + + switch arrayNode.GetSubNodeSpec().GetKind() { + case v1alpha1.NodeKindTask: + taskID := *arrayNode.GetSubNodeSpec().TaskRef + taskNode, err := nCtx.ExecutionContext().GetTask(taskID) + if err != nil { + return handler.DoTransition(handler.TransitionTypeEphemeral, handler.PhaseInfoFailure(idlcore.ExecutionError_SYSTEM, + errors.BadSpecificationError, fmt.Sprintf("failed to find ArrayNode subNode task with id: '%s'", taskID), nil)), nil + } + + if outputs := taskNode.CoreTask().GetInterface().GetOutputs(); outputs != nil { + for name := range outputs.Variables { + outputLiteral := &idlcore.Literal{ + Value: &idlcore.Literal_Collection{ + Collection: &idlcore.LiteralCollection{ + Literals: make([]*idlcore.Literal, 0, len(arrayNodeState.SubNodePhases.GetItems())), + }, + }, + } + + outputLiterals[name] = outputLiteral + } + } + case v1alpha1.NodeKindWorkflow: + // TODO - to support launchplans we will need to process the output interface variables here + fallthrough + default: + logger.Warnf(ctx, "ArrayNode does not support pre-populating outputLiteral collections for node kind '%s'", arrayNode.GetSubNodeSpec().GetKind()) + } + workerErrorCollector := errorcollector.NewErrorMessageCollector() for i, gatherOutputsRequest := range gatherOutputsRequests { outputResponse := <-gatherOutputsRequest.responseChannel diff --git a/flytepropeller/pkg/controller/nodes/array/handler_test.go b/flytepropeller/pkg/controller/nodes/array/handler_test.go index f4107c1f11..f0b91217e0 100644 --- a/flytepropeller/pkg/controller/nodes/array/handler_test.go +++ b/flytepropeller/pkg/controller/nodes/array/handler_test.go @@ -38,6 +38,7 @@ var ( ID: "foo", ArrayNode: &v1alpha1.ArrayNodeSpec{ SubNodeSpec: &v1alpha1.NodeSpec{ + Kind: v1alpha1.NodeKindTask, TaskRef: &taskRef, }, }, @@ -830,6 +831,14 @@ func TestHandleArrayNodePhaseSucceeding(t *testing.T) { expectedArrayNodePhase: v1alpha1.ArrayNodePhaseSucceeding, expectedTransitionPhase: handler.EPhaseSuccess, }, + { + name: "SuccessEmptyInput", + outputValues: []*int{}, + outputVariable: "foo", + subNodePhases: []v1alpha1.NodePhase{}, + expectedArrayNodePhase: v1alpha1.ArrayNodePhaseSucceeding, + expectedTransitionPhase: handler.EPhaseSuccess, + }, } for _, test := range tests { From 2db8eedba1998190b8d6b8b0c224cbd956621d38 Mon Sep 17 00:00:00 2001 From: Paul Dittamo <37558497+pvditt@users.noreply.github.com> Date: Thu, 21 Mar 2024 11:22:40 -0700 Subject: [PATCH 59/76] [House Keeping] deprecate MaxDatasetSizeBytes propeller config in favor of GetLimitMegabytes storage config (#4852) * deprecate MaxDatasetSizeBytes propeller config in favor of GetLimitMegabytes storage config Signed-off-by: Paul Dittamo * update config docs Signed-off-by: Paul Dittamo * update deprecation message Signed-off-by: Paul Dittamo * oof Signed-off-by: Paul Dittamo --------- Signed-off-by: Paul Dittamo --- docs/deployment/configuration/generated/flyteadmin_config.rst | 4 ++-- .../configuration/generated/flytepropeller_config.rst | 4 ++-- docs/deployment/configuration/generated/scheduler_config.rst | 4 ++-- flytepropeller/pkg/controller/config/config.go | 4 ++-- flytepropeller/pkg/controller/config/config_flags.go | 2 +- flytepropeller/pkg/controller/controller.go | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/deployment/configuration/generated/flyteadmin_config.rst b/docs/deployment/configuration/generated/flyteadmin_config.rst index 492b5f4d89..e8464b1512 100644 --- a/docs/deployment/configuration/generated/flyteadmin_config.rst +++ b/docs/deployment/configuration/generated/flyteadmin_config.rst @@ -3522,13 +3522,13 @@ Enable events publishing to K8s events API. max-output-size-bytes (int64) ------------------------------------------------------------------------------------------------------------------------ -Maximum size of outputs per task +Deprecated! Use storage.limits.maxDownloadMBs instead **Default Value**: .. code-block:: yaml - "10485760" + "-1" enable-grpc-latency-metrics (bool) diff --git a/docs/deployment/configuration/generated/flytepropeller_config.rst b/docs/deployment/configuration/generated/flytepropeller_config.rst index db4f9a543e..f9473afffd 100644 --- a/docs/deployment/configuration/generated/flytepropeller_config.rst +++ b/docs/deployment/configuration/generated/flytepropeller_config.rst @@ -4166,13 +4166,13 @@ Enable events publishing to K8s events API. max-output-size-bytes (int64) ------------------------------------------------------------------------------------------------------------------------ -Maximum size of outputs per task +Deprecated! Use storage.limits.maxDownloadMBs instead **Default Value**: .. code-block:: yaml - "10485760" + "-1" enable-grpc-latency-metrics (bool) diff --git a/docs/deployment/configuration/generated/scheduler_config.rst b/docs/deployment/configuration/generated/scheduler_config.rst index 467d5f5d4e..47e4ee870a 100644 --- a/docs/deployment/configuration/generated/scheduler_config.rst +++ b/docs/deployment/configuration/generated/scheduler_config.rst @@ -3522,13 +3522,13 @@ Enable events publishing to K8s events API. max-output-size-bytes (int64) ------------------------------------------------------------------------------------------------------------------------ -Maximum size of outputs per task +Deprecated! Use storage.limits.maxDownloadMBs instead **Default Value**: .. code-block:: yaml - "10485760" + "-1" enable-grpc-latency-metrics (bool) diff --git a/flytepropeller/pkg/controller/config/config.go b/flytepropeller/pkg/controller/config/config.go index 698883fb48..89122da3ed 100644 --- a/flytepropeller/pkg/controller/config/config.go +++ b/flytepropeller/pkg/controller/config/config.go @@ -62,7 +62,7 @@ var ( GCInterval: config.Duration{ Duration: 30 * time.Minute, }, - MaxDatasetSizeBytes: 10 * 1024 * 1024, + MaxDatasetSizeBytes: -1, Queue: CompositeQueueConfig{ Type: CompositeQueueBatch, BatchingInterval: config.Duration{ @@ -142,7 +142,7 @@ type Config struct { GCInterval config.Duration `json:"gc-interval" pflag:"Run periodic GC every 30 minutes"` LeaderElection LeaderElectionConfig `json:"leader-election,omitempty" pflag:",Config for leader election."` PublishK8sEvents bool `json:"publish-k8s-events" pflag:",Enable events publishing to K8s events API."` - MaxDatasetSizeBytes int64 `json:"max-output-size-bytes" pflag:",Maximum size of outputs per task"` + MaxDatasetSizeBytes int64 `json:"max-output-size-bytes" pflag:",Deprecated! Use storage.limits.maxDownloadMBs instead"` EnableGrpcLatencyMetrics bool `json:"enable-grpc-latency-metrics" pflag:",Enable grpc latency metrics. Note Histograms metrics can be expensive on Prometheus servers."` KubeConfig KubeClientConfig `json:"kube-client-config" pflag:",Configuration to control the Kubernetes client"` NodeConfig NodeConfig `json:"node-config,omitempty" pflag:",config for a workflow node"` diff --git a/flytepropeller/pkg/controller/config/config_flags.go b/flytepropeller/pkg/controller/config/config_flags.go index c60f724ee2..b055aad558 100755 --- a/flytepropeller/pkg/controller/config/config_flags.go +++ b/flytepropeller/pkg/controller/config/config_flags.go @@ -85,7 +85,7 @@ func (cfg Config) GetPFlagSet(prefix string) *pflag.FlagSet { cmdFlags.String(fmt.Sprintf("%v%v", prefix, "leader-election.renew-deadline"), defaultConfig.LeaderElection.RenewDeadline.String(), "Duration that the acting master will retry refreshing leadership before giving up.") cmdFlags.String(fmt.Sprintf("%v%v", prefix, "leader-election.retry-period"), defaultConfig.LeaderElection.RetryPeriod.String(), "Duration the LeaderElector clients should wait between tries of actions.") cmdFlags.Bool(fmt.Sprintf("%v%v", prefix, "publish-k8s-events"), defaultConfig.PublishK8sEvents, "Enable events publishing to K8s events API.") - cmdFlags.Int64(fmt.Sprintf("%v%v", prefix, "max-output-size-bytes"), defaultConfig.MaxDatasetSizeBytes, "Maximum size of outputs per task") + cmdFlags.Int64(fmt.Sprintf("%v%v", prefix, "max-output-size-bytes"), defaultConfig.MaxDatasetSizeBytes, "Deprecated! Use storage.limits.maxDownloadMBs instead") cmdFlags.Bool(fmt.Sprintf("%v%v", prefix, "enable-grpc-latency-metrics"), defaultConfig.EnableGrpcLatencyMetrics, "Enable grpc latency metrics. Note Histograms metrics can be expensive on Prometheus servers.") cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "kube-client-config.burst"), defaultConfig.KubeConfig.Burst, "Max burst rate for throttle. 0 defaults to 10") cmdFlags.String(fmt.Sprintf("%v%v", prefix, "kube-client-config.timeout"), defaultConfig.KubeConfig.Timeout.String(), "Max duration allowed for every request to KubeAPI before giving up. 0 implies no timeout.") diff --git a/flytepropeller/pkg/controller/controller.go b/flytepropeller/pkg/controller/controller.go index de28612c54..acd7747d3f 100644 --- a/flytepropeller/pkg/controller/controller.go +++ b/flytepropeller/pkg/controller/controller.go @@ -439,7 +439,7 @@ func New(ctx context.Context, cfg *config.Config, kubeClientset kubernetes.Inter } nodeExecutor, err := nodes.NewExecutor(ctx, cfg.NodeConfig, store, controller.enqueueWorkflowForNodeUpdates, eventSink, - launchPlanActor, launchPlanActor, cfg.MaxDatasetSizeBytes, storage.DataReference(cfg.DefaultRawOutputPrefix), kubeClient, + launchPlanActor, launchPlanActor, sCfg.Limits.GetLimitMegabytes*1024*1024, storage.DataReference(cfg.DefaultRawOutputPrefix), kubeClient, catalogClient, recoveryClient, &cfg.EventConfig, cfg.ClusterID, signalClient, nodeHandlerFactory, scope) if err != nil { return nil, errors.Wrapf(err, "Failed to create Controller.") From 049d99b26eaed7ca77848686c94ad425fc9fa804 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Thu, 21 Mar 2024 12:37:43 -0700 Subject: [PATCH 60/76] Fix lint errors caught by `chart-testing` (#5072) --- .github/workflows/validate-helm-charts.yaml | 22 +++++++++------ Makefile | 5 ++++ charts/event.json | 5 ++++ charts/flyte-binary/Chart.yaml | 6 ++-- charts/flyte-binary/values.yaml | 8 +++--- charts/flyte-core/Chart.yaml | 6 ++-- charts/flyte-core/values.yaml | 26 ++++++++--------- charts/flyte-deps/Chart.yaml | 2 +- charts/flyte/Chart.yaml | 6 ++-- charts/flyte/values.yaml | 23 ++++++++------- charts/flyteagent/Chart.yaml | 2 +- charts/flyteagent/values.yaml | 2 +- .../manifests/complete-agent.yaml | 4 +-- .../sandbox-bundled/manifests/complete.yaml | 4 +-- docker/sandbox-bundled/manifests/dev.yaml | 4 +-- script/release.sh | 28 +++++++++---------- 16 files changed, 83 insertions(+), 70 deletions(-) create mode 100644 charts/event.json diff --git a/.github/workflows/validate-helm-charts.yaml b/.github/workflows/validate-helm-charts.yaml index 36247b43da..7b4ee9cce6 100644 --- a/.github/workflows/validate-helm-charts.yaml +++ b/.github/workflows/validate-helm-charts.yaml @@ -28,6 +28,9 @@ jobs: 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 @@ -41,15 +44,16 @@ jobs: - name: Run chart-testing (lint) if: steps.charts-changed.outputs.changed == 'true' - run: ct lint --target-branch ${{ github.event.repository.default_branch }} - - - name: Create KinD cluster - if: steps.charts-changed.outputs.changed == 'true' - uses: helm/kind-action@v1 - - - name: Run chart-testing (install) - if: steps.charts-changed.outputs.changed == 'true' - run: ct install --target-branch ${{ github.event.repository.default_branch }} + 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: diff --git a/Makefile b/Makefile index 3f35139289..072fdf8efb 100644 --- a/Makefile +++ b/Makefile @@ -112,3 +112,8 @@ 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 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..730b109d0d 100644 --- a/charts/flyte-binary/Chart.yaml +++ b/charts/flyte-binary/Chart.yaml @@ -7,7 +7,7 @@ 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 +18,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/values.yaml b/charts/flyte-binary/values.yaml index e84b1c54f4..7d16c55378 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.11.0 # FLYTECOPILOT_TAG + tag: v1.11.0 # 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/values.yaml b/charts/flyte-core/values.yaml index 0319b3baca..5498664f67 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.11.0 # FLYTEADMIN_TAG + repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE + tag: v1.11.0 # FLYTEADMIN_TAG pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables # @@ -140,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.11.0 # FLYTESCHEDULER_TAG + tag: v1.11.0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -206,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.11.0 # DATACATALOG_TAG + tag: v1.11.0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -295,8 +295,8 @@ flytepropeller: replicaCount: 1 image: # -- Docker image for Flytepropeller deployment - repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE - tag: v1.11.0 # FLYTEPROPELLER_TAG + repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE + tag: v1.11.0 # FLYTEPROPELLER_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment resources: @@ -378,8 +378,8 @@ flyteconsole: replicaCount: 1 image: # -- Docker image for Flyteconsole deployment - repository: cr.flyte.org/flyteorg/flyteconsole # FLYTECONSOLE_IMAGE - tag: v1.10.3 # 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: @@ -731,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.11.0 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration @@ -869,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) @@ -883,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 diff --git a/charts/flyte-deps/Chart.yaml b/charts/flyte-deps/Chart.yaml index ea84c798e7..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 diff --git a/charts/flyte/Chart.yaml b/charts/flyte/Chart.yaml index daed727185..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 diff --git a/charts/flyte/values.yaml b/charts/flyte/values.yaml index 2f19498dd4..d8bf56ccfa 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.11.0 # FLYTEADMIN_TAG + tag: v1.11.0 # 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.11.0 # FLYTESCHEDULER_TAG + tag: v1.11.0 # 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.11.0 # DATACATALOG_TAG + tag: v1.11.0 # 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.11.0 # FLYTEPROPELLER_TAG + tag: v1.11.0 # 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.3 # 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.11.0 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration 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/values.yaml b/charts/flyteagent/values.yaml index 266ec9c0eb..3b6b252aec 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.8b4 # FLYTEAGENT_TAG + tag: 1.10.8b4 # FLYTEAGENT_TAG # -- Docker image pull policy pullPolicy: IfNotPresent ports: diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index da45fdc06e..a74f840058 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: U0tNSVV0aUwzZzYxNVZnVQ== + haSharedSecret: cXlqVDl3WXZzQkdNakZYMQ== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: e0d4db2f1f52d2e4d16959b463e9470d657899ab22db5d8eb2fbc605cdcda0a2 + checksum/secret: e8771c5d0e150ac22e8f1e40a0d9bcd0ebe566f4d103895b57453c2265a1eb3f labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index d0872c7a63..c451e945e5 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: bmNtdzJkQ0l2Rm5BS3VZSg== + haSharedSecret: RUcxZW8xZ1JDUzE1YWZ3cw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: b1ca10c95becb2e7214c9ece8101acc322ecde650f1e70bdb1bbb37323c948f6 + checksum/secret: b811e69f9269eac2e23e99932ddee4f60da5e159b77380a2f172d53015ffce9d labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 828a53d4ef..a9b6cd0abd 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: S2hmRkxmVjdKZUpoTkR6OQ== + haSharedSecret: b01yOG9RRDI2SzNUNFdaRg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 446da9acad72026ea6684e9f0cf3e47f8a458fa10d29d61ac3f8bc509afc7c11 + checksum/secret: 13d5e62f1350c3c3a73b6a42bf1ec1ee492fe4d34ed050b66907368f5cd502ce labels: app: docker-registry release: flyte-sandbox diff --git a/script/release.sh b/script/release.sh index c6773e3040..faa397ce9b 100755 --- a/script/release.sh +++ b/script/release.sh @@ -9,23 +9,23 @@ FLYTEKIT_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flytekit/rel FLYTECONSOLE_TAG=v1.10.3 # bump latest release of flyte component in helm -sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte/values.yaml -sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte-core/values.yaml +sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte/values.yaml +sed -i "s,tag:[^P]*# FLYTEADMIN_TAG,tag: ${VERSION} # FLYTEADMIN_TAG," ./charts/flyte-core/values.yaml -sed -i "s,tag:[^P]*# FLYTESCHEDULER_TAG,tag: ${VERSION} # FLYTESCHEDULER_TAG," ./charts/flyte/values.yaml -sed -i "s,tag:[^P]*# FLYTESCHEDULER_TAG,tag: ${VERSION} # FLYTESCHEDULER_TAG," ./charts/flyte-core/values.yaml +sed -i "s,tag:[^P]*# FLYTESCHEDULER_TAG,tag: ${VERSION} # FLYTESCHEDULER_TAG," ./charts/flyte/values.yaml +sed -i "s,tag:[^P]*# FLYTESCHEDULER_TAG,tag: ${VERSION} # FLYTESCHEDULER_TAG," ./charts/flyte-core/values.yaml -sed -i "s,tag:[^P]*# DATACATALOG_TAG,tag: ${VERSION} # DATACATALOG_TAG," ./charts/flyte/values.yaml -sed -i "s,tag:[^P]*# DATACATALOG_TAG,tag: ${VERSION} # DATACATALOG_TAG," ./charts/flyte-core/values.yaml +sed -i "s,tag:[^P]*# DATACATALOG_TAG,tag: ${VERSION} # DATACATALOG_TAG," ./charts/flyte/values.yaml +sed -i "s,tag:[^P]*# DATACATALOG_TAG,tag: ${VERSION} # DATACATALOG_TAG," ./charts/flyte-core/values.yaml -sed -i "s,tag:[^P]*# FLYTECONSOLE_TAG,tag: ${FLYTECONSOLE_TAG} # FLYTECONSOLE_TAG," ./charts/flyte/values.yaml -sed -i "s,tag:[^P]*# FLYTECONSOLE_TAG,tag: ${FLYTECONSOLE_TAG} # FLYTECONSOLE_TAG," ./charts/flyte-core/values.yaml +sed -i "s,tag:[^P]*# FLYTECONSOLE_TAG,tag: ${FLYTECONSOLE_TAG} # FLYTECONSOLE_TAG," ./charts/flyte/values.yaml +sed -i "s,tag:[^P]*# FLYTECONSOLE_TAG,tag: ${FLYTECONSOLE_TAG} # FLYTECONSOLE_TAG," ./charts/flyte-core/values.yaml -sed -i "s,tag:[^P]*# FLYTEPROPELLER_TAG,tag: ${VERSION} # FLYTEPROPELLER_TAG," ./charts/flyte/values.yaml -sed -i "s,tag:[^P]*# FLYTEPROPELLER_TAG,tag: ${VERSION} # FLYTEPROPELLER_TAG," ./charts/flyte-core/values.yaml +sed -i "s,tag:[^P]*# FLYTEPROPELLER_TAG,tag: ${VERSION} # FLYTEPROPELLER_TAG," ./charts/flyte/values.yaml +sed -i "s,tag:[^P]*# FLYTEPROPELLER_TAG,tag: ${VERSION} # FLYTEPROPELLER_TAG," ./charts/flyte-core/values.yaml -sed -i "s,image:[^P]*# FLYTECOPILOT_IMAGE,image: cr.flyte.org/flyteorg/flytecopilot:${VERSION} # FLYTECOPILOT_IMAGE," ./charts/flyte/values.yaml -sed -i "s,image:[^P]*# FLYTECOPILOT_IMAGE,image: cr.flyte.org/flyteorg/flytecopilot:${VERSION} # FLYTECOPILOT_IMAGE," ./charts/flyte-core/values.yaml -sed -i "s,tag:[^P]*# FLYTECOPILOT_TAG,tag: ${VERSION} # FLYTECOPILOT_TAG," ./charts/flyte-binary/values.yaml +sed -i "s,image:[^P]*# FLYTECOPILOT_IMAGE,image: cr.flyte.org/flyteorg/flytecopilot:${VERSION} # FLYTECOPILOT_IMAGE," ./charts/flyte/values.yaml +sed -i "s,image:[^P]*# FLYTECOPILOT_IMAGE,image: cr.flyte.org/flyteorg/flytecopilot:${VERSION} # FLYTECOPILOT_IMAGE," ./charts/flyte-core/values.yaml +sed -i "s,tag:[^P]*# FLYTECOPILOT_TAG,tag: ${VERSION} # FLYTECOPILOT_TAG," ./charts/flyte-binary/values.yaml -sed -i "s,tag:[^P]*# FLYTEAGENT_TAG,tag: ${FLYTEKIT_TAG} # FLYTEAGENT_TAG," ./charts/flyteagent/values.yaml +sed -i "s,tag:[^P]*# FLYTEAGENT_TAG,tag: ${FLYTEKIT_TAG} # FLYTEAGENT_TAG," ./charts/flyteagent/values.yaml From 5fc57fa5968c1c10747d6fe57ae7159f5b09fa52 Mon Sep 17 00:00:00 2001 From: Flyte Bot Date: Thu, 21 Mar 2024 13:21:26 -0700 Subject: [PATCH 61/76] Update Flyte components (#5093) Signed-off-by: Flyte-Bot --- CHANGELOG/CHANGELOG-v1.11.1-b0.md | 2 ++ charts/flyte-binary/README.md | 2 +- charts/flyte-binary/values.yaml | 2 +- charts/flyte-core/README.md | 12 +++---- charts/flyte-core/values.yaml | 10 +++--- charts/flyte/README.md | 16 ++++----- charts/flyte/values.yaml | 10 +++--- charts/flyteagent/README.md | 2 +- charts/flyteagent/values.yaml | 2 +- .../agent/flyte_agent_helm_generated.yaml | 2 +- .../flyte_aws_scheduler_helm_generated.yaml | 30 ++++++++-------- .../flyte_helm_controlplane_generated.yaml | 20 +++++------ .../eks/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/eks/flyte_helm_generated.yaml | 34 +++++++++---------- .../flyte_helm_controlplane_generated.yaml | 20 +++++------ .../gcp/flyte_helm_dataplane_generated.yaml | 14 ++++---- deployment/gcp/flyte_helm_generated.yaml | 34 +++++++++---------- .../flyte_sandbox_binary_helm_generated.yaml | 4 +-- deployment/sandbox/flyte_helm_generated.yaml | 34 +++++++++---------- .../manifests/complete-agent.yaml | 10 +++--- .../sandbox-bundled/manifests/complete.yaml | 8 ++--- docker/sandbox-bundled/manifests/dev.yaml | 4 +-- docs/conf.py | 2 +- .../generated/flyteadmin_config.rst | 22 ++++++++++++ .../generated/flytepropeller_config.rst | 22 ++++++++++++ .../generated/scheduler_config.rst | 22 ++++++++++++ 26 files changed, 211 insertions(+), 143 deletions(-) create mode 100644 CHANGELOG/CHANGELOG-v1.11.1-b0.md 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/charts/flyte-binary/README.md b/charts/flyte-binary/README.md index fcd66f3186..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.11.0"` | | +| 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/values.yaml b/charts/flyte-binary/values.yaml index 7d16c55378..f3f8e79528 100644 --- a/charts/flyte-binary/values.yaml +++ b/charts/flyte-binary/values.yaml @@ -159,7 +159,7 @@ configuration: # repository CoPilot sidecar image repository repository: cr.flyte.org/flyteorg/flytecopilot # FLYTECOPILOT_IMAGE # tag CoPilot sidecar image tag - tag: v1.11.0 # FLYTECOPILOT_TAG + tag: v1.11.0-b0 # FLYTECOPILOT_TAG # agentService Flyte Agent configuration agentService: defaultAgent: diff --git a/charts/flyte-core/README.md b/charts/flyte-core/README.md index 5a18f902cb..33901da7be 100644 --- a/charts/flyte-core/README.md +++ b/charts/flyte-core/README.md @@ -95,8 +95,8 @@ 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.11.0","name":"flyte-copilot-","start-timeout":"30s"}}}}` | Copilot configuration | -| configmap.copilot.plugins.k8s.co-pilot | object | `{"image":"cr.flyte.org/flyteorg/flytecopilot:v1.11.0","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). | @@ -130,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.11.0"` | 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 | @@ -165,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.11.0"` | | +| 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 | @@ -226,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.11.0"` | | +| 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 | @@ -256,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.11.0"` | 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 | diff --git a/charts/flyte-core/values.yaml b/charts/flyte-core/values.yaml index 5498664f67..b8d4431e78 100755 --- a/charts/flyte-core/values.yaml +++ b/charts/flyte-core/values.yaml @@ -16,7 +16,7 @@ flyteadmin: image: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE - tag: v1.11.0 # FLYTEADMIN_TAG + tag: v1.11.0-b0 # FLYTEADMIN_TAG pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables # @@ -142,7 +142,7 @@ flytescheduler: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.11.0 # FLYTESCHEDULER_TAG + tag: v1.11.0-b0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -208,7 +208,7 @@ datacatalog: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.11.0 # DATACATALOG_TAG + tag: v1.11.0-b0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -296,7 +296,7 @@ flytepropeller: image: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE - tag: v1.11.0 # FLYTEPROPELLER_TAG + tag: v1.11.0-b0 # FLYTEPROPELLER_TAG pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment resources: @@ -731,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.11.0 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/charts/flyte/README.md b/charts/flyte/README.md index ab32ec9460..4accdb711c 100644 --- a/charts/flyte/README.md +++ b/charts/flyte/README.md @@ -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.11.0","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"},"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"},"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"},"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"},"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.11.0","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 | 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.11.0","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","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 | @@ -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.11.0"` | 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.11.0"` | 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 | @@ -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.11.0"` | 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.11.0"` | 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 d8bf56ccfa..71069a7318 100755 --- a/charts/flyte/values.yaml +++ b/charts/flyte/values.yaml @@ -15,7 +15,7 @@ flyte: # -- Docker image for Flyteadmin deployment repository: cr.flyte.org/flyteorg/flyteadmin # FLYTEADMIN_IMAGE # -- Docker image tag - tag: v1.11.0 # FLYTEADMIN_TAG + tag: v1.11.0-b0 # FLYTEADMIN_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Additional flyteadmin container environment variables @@ -83,7 +83,7 @@ flyte: # -- Docker image for Flytescheduler deployment repository: cr.flyte.org/flyteorg/flytescheduler # FLYTESCHEDULER_IMAGE # -- Docker image tag - tag: v1.11.0 # FLYTESCHEDULER_TAG + tag: v1.11.0-b0 # FLYTESCHEDULER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytescheduler deployment @@ -128,7 +128,7 @@ flyte: # -- Docker image for Datacatalog deployment repository: cr.flyte.org/flyteorg/datacatalog # DATACATALOG_IMAGE # -- Docker image tag - tag: v1.11.0 # DATACATALOG_TAG + tag: v1.11.0-b0 # DATACATALOG_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Datacatalog deployment @@ -177,7 +177,7 @@ flyte: # -- Docker image for Flytepropeller deployment repository: cr.flyte.org/flyteorg/flytepropeller # FLYTEPROPELLER_IMAGE # -- Docker image tag - tag: v1.11.0 # FLYTEPROPELLER_TAG + tag: v1.11.0-b0 # FLYTEPROPELLER_TAG # -- Docker image pull policy pullPolicy: IfNotPresent # -- Default resources requests and limits for Flytepropeller deployment @@ -470,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.11.0 # FLYTECOPILOT_IMAGE + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 # FLYTECOPILOT_IMAGE start-timeout: 30s # -- Core propeller configuration diff --git a/charts/flyteagent/README.md b/charts/flyteagent/README.md index d862716673..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.8b4"` | 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 | diff --git a/charts/flyteagent/values.yaml b/charts/flyteagent/values.yaml index 3b6b252aec..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.8b4 # FLYTEAGENT_TAG + tag: 1.11.0 # FLYTEAGENT_TAG # -- Docker image pull policy pullPolicy: IfNotPresent ports: diff --git a/deployment/agent/flyte_agent_helm_generated.yaml b/deployment/agent/flyte_agent_helm_generated.yaml index 4e78b991ac..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.8b4" + image: "ghcr.io/flyteorg/flyteagent:1.11.0" imagePullPolicy: "IfNotPresent" name: flyteagent volumeMounts: diff --git a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml index a5b9e0081f..3ae88a9b8f 100644 --- a/deployment/eks/flyte_aws_scheduler_helm_generated.yaml +++ b/deployment/eks/flyte_aws_scheduler_helm_generated.yaml @@ -429,7 +429,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -869,7 +869,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -890,7 +890,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -908,7 +908,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -925,7 +925,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -952,7 +952,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1057,7 +1057,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1187,7 +1187,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1205,7 +1205,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1268,7 +1268,7 @@ spec: template: metadata: annotations: - configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" + configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1294,7 +1294,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1348,9 +1348,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" + configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857" spec: securityContext: fsGroup: 65534 @@ -1362,7 +1362,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1389,7 +1389,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_helm_controlplane_generated.yaml b/deployment/eks/flyte_helm_controlplane_generated.yaml index 9e813c4275..1ae984cf69 100644 --- a/deployment/eks/flyte_helm_controlplane_generated.yaml +++ b/deployment/eks/flyte_helm_controlplane_generated.yaml @@ -574,7 +574,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -595,7 +595,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -613,7 +613,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -630,7 +630,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -657,7 +657,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -762,7 +762,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -892,7 +892,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -910,7 +910,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -993,7 +993,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1013,7 +1013,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/eks/flyte_helm_dataplane_generated.yaml b/deployment/eks/flyte_helm_dataplane_generated.yaml index 865b72da24..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.11.0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -428,7 +428,7 @@ spec: template: metadata: annotations: - configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" + configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -454,7 +454,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -508,9 +508,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" + configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857" spec: securityContext: fsGroup: 65534 @@ -522,7 +522,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -549,7 +549,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/eks/flyte_helm_generated.yaml b/deployment/eks/flyte_helm_generated.yaml index bb0b5e966c..1d4c79874f 100644 --- a/deployment/eks/flyte_helm_generated.yaml +++ b/deployment/eks/flyte_helm_generated.yaml @@ -460,7 +460,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -900,7 +900,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -921,7 +921,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -939,7 +939,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -956,7 +956,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -983,7 +983,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1088,7 +1088,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1218,7 +1218,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1236,7 +1236,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1319,7 +1319,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1339,7 +1339,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1398,7 +1398,7 @@ spec: template: metadata: annotations: - configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" + configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1424,7 +1424,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1478,9 +1478,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "64a0a51a13929685cf9e74444b216f25bfc9dbdb542d6d491db345519111197" + configChecksum: "6b3ace0186a0b36f4d87ebd8ef0b7114608b9ad0b63d9c1af3bb84d4d2da857" spec: securityContext: fsGroup: 65534 @@ -1492,7 +1492,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1519,7 +1519,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_controlplane_generated.yaml b/deployment/gcp/flyte_helm_controlplane_generated.yaml index 281fcf87a1..0f1ebf1381 100644 --- a/deployment/gcp/flyte_helm_controlplane_generated.yaml +++ b/deployment/gcp/flyte_helm_controlplane_generated.yaml @@ -589,7 +589,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -610,7 +610,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -628,7 +628,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -645,7 +645,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -672,7 +672,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -777,7 +777,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -907,7 +907,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -925,7 +925,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1008,7 +1008,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1028,7 +1028,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: diff --git a/deployment/gcp/flyte_helm_dataplane_generated.yaml b/deployment/gcp/flyte_helm_dataplane_generated.yaml index a0349f78c4..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.11.0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -436,7 +436,7 @@ spec: template: metadata: annotations: - configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" + configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -461,7 +461,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -515,9 +515,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" + configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441" spec: securityContext: fsGroup: 65534 @@ -529,7 +529,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -556,7 +556,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/gcp/flyte_helm_generated.yaml b/deployment/gcp/flyte_helm_generated.yaml index 165712c85d..ac527c47a7 100644 --- a/deployment/gcp/flyte_helm_generated.yaml +++ b/deployment/gcp/flyte_helm_generated.yaml @@ -473,7 +473,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -923,7 +923,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -944,7 +944,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -962,7 +962,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -979,7 +979,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -1006,7 +1006,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -1111,7 +1111,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -1241,7 +1241,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -1259,7 +1259,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -1342,7 +1342,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -1362,7 +1362,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -1421,7 +1421,7 @@ spec: template: metadata: annotations: - configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" + configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -1446,7 +1446,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -1500,9 +1500,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "cc8b6585fb0703724b6418fea14f52893fdd6913d5aee513867e84d66e23d72" + configChecksum: "264352d1a15b63cdaca7bb2eb3a63e415d89e01d75a81be6afba718c241a441" spec: securityContext: fsGroup: 65534 @@ -1514,7 +1514,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -1541,7 +1541,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml b/deployment/sandbox-binary/flyte_sandbox_binary_helm_generated.yaml index b3b130b3a0..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.11.0" + 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: 8d7f2229ae4d345e158f32f67615656d9a8d7590cef80a4c1b6f8eb333fcd896 + checksum/configuration: 882c31ec18bdac7aa4f1a9057f9e549b1307b60b5d76839dfb6bc526958bee57 checksum/configuration-secret: d5d93f4e67780b21593dc3799f0f6682aab0765e708e4020939975d14d44f929 checksum/cluster-resource-templates: 7dfa59f3d447e9c099b8f8ffad3af466fecbc9cf9f8c97295d9634254a55d4ae spec: diff --git a/deployment/sandbox/flyte_helm_generated.yaml b/deployment/sandbox/flyte_helm_generated.yaml index 12705dd8ac..80d9450477 100644 --- a/deployment/sandbox/flyte_helm_generated.yaml +++ b/deployment/sandbox/flyte_helm_generated.yaml @@ -585,7 +585,7 @@ data: plugins: k8s: co-pilot: - image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0 + image: cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0 name: flyte-copilot- start-timeout: 30s core.yaml: | @@ -6707,7 +6707,7 @@ spec: - /etc/flyte/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations securityContext: @@ -6727,7 +6727,7 @@ spec: - flytesnacks - flytetester - flyteexamples - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: seed-projects securityContext: @@ -6744,7 +6744,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - sync - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources securityContext: @@ -6760,7 +6760,7 @@ spec: - mountPath: /etc/secrets/ name: admin-secrets - name: generate-secrets - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: ["/bin/sh", "-c"] args: @@ -6787,7 +6787,7 @@ spec: - --config - /etc/flyte/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flyteadmin ports: @@ -6882,7 +6882,7 @@ spec: - /etc/flyte/config/*.yaml - clusterresource - run - image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0" + image: "cr.flyte.org/flyteorg/flyteadmin:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: sync-cluster-resources volumeMounts: @@ -7007,7 +7007,7 @@ spec: - /etc/datacatalog/config/*.yaml - migrate - run - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: run-migrations volumeMounts: @@ -7024,7 +7024,7 @@ spec: - --config - /etc/datacatalog/config/*.yaml - serve - image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0" + image: "cr.flyte.org/flyteorg/datacatalog:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: datacatalog ports: @@ -7097,7 +7097,7 @@ spec: - precheck - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler-check securityContext: @@ -7116,7 +7116,7 @@ spec: - run - --config - /etc/flyte/config/*.yaml - image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0" + image: "cr.flyte.org/flyteorg/flytescheduler:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytescheduler ports: @@ -7172,7 +7172,7 @@ spec: template: metadata: annotations: - configChecksum: "3500386bee9f0763c6f14460f607cea4e6e24be4224a806c0673db71e13e287" + configChecksum: "08d1c92032d4eeaac312ca0cf651f72aa1f214a2de469b49b93ecdfb129b8af" labels: app.kubernetes.io/name: flytepropeller app.kubernetes.io/instance: flyte @@ -7197,7 +7197,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" name: flytepropeller ports: @@ -7244,9 +7244,9 @@ spec: labels: app: flyte-pod-webhook app.kubernetes.io/name: flyte-pod-webhook - app.kubernetes.io/version: v1.11.0 + app.kubernetes.io/version: v1.11.0-b0 annotations: - configChecksum: "3500386bee9f0763c6f14460f607cea4e6e24be4224a806c0673db71e13e287" + configChecksum: "08d1c92032d4eeaac312ca0cf651f72aa1f214a2de469b49b93ecdfb129b8af" spec: securityContext: fsGroup: 65534 @@ -7258,7 +7258,7 @@ spec: serviceAccountName: flyte-pod-webhook initContainers: - name: generate-secrets - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller @@ -7285,7 +7285,7 @@ spec: mountPath: /etc/flyte/config containers: - name: webhook - image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0" + image: "cr.flyte.org/flyteorg/flytepropeller:v1.11.0-b0" imagePullPolicy: "IfNotPresent" command: - flytepropeller diff --git a/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index a74f840058..1779389183 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -468,7 +468,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0" k8s-array: logs: config: @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: cXlqVDl3WXZzQkdNakZYMQ== + haSharedSecret: allvNmJ4bUxTcVo2Z0lObw== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1246,7 +1246,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: 2aaf6d07c01e76a5e97b2c5aa1e581ee7e2e9929d3690e71eceb6b0bdfb7b646 + checksum/configuration: 9ab632fe7ac69bcf63d6965a44986a05e23798beda4a3175d1601e61057a9832 checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: e8771c5d0e150ac22e8f1e40a0d9bcd0ebe566f4d103895b57453c2265a1eb3f + checksum/secret: 7e2eea3d2c604971389c67f39e7d553b6329ea37af5254119febf0a125e55e64 labels: app: docker-registry release: flyte-sandbox @@ -1755,7 +1755,7 @@ spec: value: minio - name: FLYTE_AWS_SECRET_ACCESS_KEY value: miniostorage - image: ghcr.io/flyteorg/flyteagent:1.10.8b4 + image: ghcr.io/flyteorg/flyteagent:1.11.0 imagePullPolicy: IfNotPresent name: flyteagent ports: diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index c451e945e5..05e557ad96 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -457,7 +457,7 @@ data: stackdriver-enabled: false k8s: co-pilot: - image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0" + image: "cr.flyte.org/flyteorg/flytecopilot:v1.11.0-b0" k8s-array: logs: config: @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: RUcxZW8xZ1JDUzE1YWZ3cw== + haSharedSecret: d2Fqb3NpcVh5a1JUaGR4Vg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1194,7 +1194,7 @@ spec: metadata: annotations: checksum/cluster-resource-templates: 6fd9b172465e3089fcc59f738b92b8dc4d8939360c19de8ee65f68b0e7422035 - checksum/configuration: cd9caceec9bd91bdf1eedb10aee289a53786fc70df8c3f4951881abb9f937c49 + checksum/configuration: 11cd65708fd872839c6e561e84c30e045567486f06757f4549c69cc22aea5697 checksum/configuration-secret: 09216ffaa3d29e14f88b1f30af580d02a2a5e014de4d750b7f275cc07ed4e914 labels: app.kubernetes.io/component: flyte-binary @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: b811e69f9269eac2e23e99932ddee4f60da5e159b77380a2f172d53015ffce9d + checksum/secret: 087a8de1fb03ba21b367df5aa3a47d77ec2acbdeb9b6d2fa66c0caa04c304246 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index a9b6cd0abd..71a34f8bed 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: b01yOG9RRDI2SzNUNFdaRg== + haSharedSecret: WGtoeXNQV2FrV0lGeWJMeg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 13d5e62f1350c3c3a73b6a42bf1ec1ee492fe4d34ed050b66907368f5cd502ce + checksum/secret: 63c7525d8f4e16616715d985d9581611a83fe095e65b51cc25c61f9009f595da labels: app: docker-registry release: flyte-sandbox diff --git a/docs/conf.py b/docs/conf.py index cca6cc266a..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.11.0" +release = "1.11.1-b0" # -- General configuration --------------------------------------------------- diff --git a/docs/deployment/configuration/generated/flyteadmin_config.rst b/docs/deployment/configuration/generated/flyteadmin_config.rst index e8464b1512..0a698b635a 100644 --- a/docs/deployment/configuration/generated/flyteadmin_config.rst +++ b/docs/deployment/configuration/generated/flyteadmin_config.rst @@ -2609,6 +2609,8 @@ k8s (`config.K8sPluginConfig`_) default-annotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "false" default-cpus: "1" + default-env-from-configmaps: null + default-env-from-secrets: null default-env-vars: null default-env-vars-from-env: null default-labels: null @@ -2764,6 +2766,26 @@ default-env-vars-from-env (map[string]string) null +default-env-from-configmaps ([]string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +**Default Value**: + +.. code-block:: yaml + + null + + +default-env-from-secrets ([]string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +**Default Value**: + +.. code-block:: yaml + + null + + default-cpus (`resource.Quantity`_) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/docs/deployment/configuration/generated/flytepropeller_config.rst b/docs/deployment/configuration/generated/flytepropeller_config.rst index f9473afffd..4d26b0578c 100644 --- a/docs/deployment/configuration/generated/flytepropeller_config.rst +++ b/docs/deployment/configuration/generated/flytepropeller_config.rst @@ -1015,6 +1015,8 @@ k8s (`config.K8sPluginConfig`_) default-annotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "false" default-cpus: "1" + default-env-from-configmaps: null + default-env-from-secrets: null default-env-vars: null default-env-vars-from-env: null default-labels: null @@ -2188,6 +2190,26 @@ default-env-vars-from-env (map[string]string) null +default-env-from-configmaps ([]string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +**Default Value**: + +.. code-block:: yaml + + null + + +default-env-from-secrets ([]string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +**Default Value**: + +.. code-block:: yaml + + null + + default-cpus (`resource.Quantity`_) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/docs/deployment/configuration/generated/scheduler_config.rst b/docs/deployment/configuration/generated/scheduler_config.rst index 47e4ee870a..1735f3db7b 100644 --- a/docs/deployment/configuration/generated/scheduler_config.rst +++ b/docs/deployment/configuration/generated/scheduler_config.rst @@ -2609,6 +2609,8 @@ k8s (`config.K8sPluginConfig`_) default-annotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "false" default-cpus: "1" + default-env-from-configmaps: null + default-env-from-secrets: null default-env-vars: null default-env-vars-from-env: null default-labels: null @@ -2764,6 +2766,26 @@ default-env-vars-from-env (map[string]string) null +default-env-from-configmaps ([]string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +**Default Value**: + +.. code-block:: yaml + + null + + +default-env-from-secrets ([]string) +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +**Default Value**: + +.. code-block:: yaml + + null + + default-cpus (`resource.Quantity`_) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" From c13d601a79a13c495c912ecedd53bac91e6a3372 Mon Sep 17 00:00:00 2001 From: Samhita Alla Date: Fri, 22 Mar 2024 11:47:10 +0530 Subject: [PATCH 62/76] sagemaker agent backend setup documentation (#5064) * sagemaker agent backend setup doc Signed-off-by: Samhita Alla * update requirement and remove debugging code Signed-off-by: Samhita Alla * add python-kubernetes Signed-off-by: Samhita Alla * incorporate suggestions by Nikki Signed-off-by: Samhita Alla --------- Signed-off-by: Samhita Alla --- docs/_ext/import_projects.py | 24 +- docs/core_use_cases/machine_learning.md | 5 +- docs/deployment/agents/index.md | 3 + .../deployment/agents/sagemaker_inference.rst | 126 + docs/flyte_fundamentals/extending_flyte.md | 2 +- docs/flyte_fundamentals/optimizing_tasks.md | 3 +- docs/user_guide/basics/workflows.md | 5 +- docs/user_guide/extending/backend_plugins.md | 7 +- .../configuring_logging_links_in_the_ui.md | 4 +- monodocs-environment.lock.yaml | 4887 ++++++++++------- monodocs-environment.yaml | 3 +- 11 files changed, 2955 insertions(+), 2114 deletions(-) create mode 100644 docs/deployment/agents/sagemaker_inference.rst 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/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/index.md b/docs/deployment/agents/index.md index 7c7f3db92d..c79a5ecd53 100644 --- a/docs/deployment/agents/index.md +++ b/docs/deployment/agents/index.md @@ -27,6 +27,8 @@ If you are using a managed deployment of Flyte, you will need to contact your de - Configuring your Flyte deployment for the MMCloud agent. * - {ref}`Sensor 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} @@ -39,6 +41,7 @@ chatgpt databricks bigquery mmcloud +sagemaker_inference sensor snowflake ``` 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/flyte_fundamentals/extending_flyte.md b/docs/flyte_fundamentals/extending_flyte.md index 4977e6ae25..7f0d7e475b 100644 --- a/docs/flyte_fundamentals/extending_flyte.md +++ b/docs/flyte_fundamentals/extending_flyte.md @@ -151,7 +151,7 @@ many more ways to customize Flyte tasks: in other languages outside of the `flytekit` SDK language. * - {ref}`Backend Plugins ` - These tasks plugins require implementing a backend plugin to leverage - external services like Sagemaker, Snowflake, BigQuery, etc. + external services like SageMaker, Snowflake, BigQuery, etc. ``` ## What's next? diff --git a/docs/flyte_fundamentals/optimizing_tasks.md b/docs/flyte_fundamentals/optimizing_tasks.md index 00c27c881f..9f3124e270 100644 --- a/docs/flyte_fundamentals/optimizing_tasks.md +++ b/docs/flyte_fundamentals/optimizing_tasks.md @@ -242,8 +242,7 @@ at the most granular level of your workflow! When this task is executed on a Flyte cluster, it automatically provisions all of the resources that you need. In this case, that need is distributed training, but Flyte also provides integrations for {ref}`Spark `, -{ref}`Ray `, {ref}`MPI `, {ref}`Sagemaker `, -{ref}`Snowflake `, and more. +{ref}`Ray `, {ref}`MPI `, {ref}`Snowflake `, and more. Even though Flyte itself is a powerful compute engine and orchestrator for data engineering, machine learning, and analytics, perhaps you have existing diff --git a/docs/user_guide/basics/workflows.md b/docs/user_guide/basics/workflows.md index 1f750c9da8..d5f46be04e 100644 --- a/docs/user_guide/basics/workflows.md +++ b/docs/user_guide/basics/workflows.md @@ -29,7 +29,7 @@ Workflows link multiple tasks together. They can be written as Python functions, but it's important to distinguish tasks and workflows. A task's body executes at run-time on a Kubernetes cluster, in a Query Engine like BigQuery, -or on hosted services like AWS Batch or Sagemaker. +or on hosted services like AWS Batch or SageMaker. In contrast, a workflow's body doesn't perform computations; it's used to structure tasks. A workflow's body executes at registration time, during the workflow's registration process. @@ -116,6 +116,7 @@ if __name__ == "__main__": +++ {"lines_to_next_cell": 0} To run the workflow locally, you can use the following `pyflyte run` command: + ``` pyflyte run \ https://raw.githubusercontent.com/flyteorg/flytesnacks/master/examples/basics/basics/workflow.py \ @@ -124,6 +125,7 @@ pyflyte run \ If you want to run it remotely on the Flyte cluster, simply add the `--remote flag` to the `pyflyte run` command: + ``` pyflyte run --remote \ https://raw.githubusercontent.com/flyteorg/flytesnacks/master/examples/basics/basics/workflow.py \ @@ -138,6 +140,7 @@ However, {ref}`executing an individual task ` independent without the confines of a workflow, offers a convenient approach for iterating on task logic effortlessly. ## Use `partial` to provide default arguments to tasks + You can use the {py:func}`functools.partial` function to assign default or constant values to the parameters of your tasks. ```{code-cell} diff --git a/docs/user_guide/extending/backend_plugins.md b/docs/user_guide/extending/backend_plugins.md index 876ef8019e..bbee56ea46 100644 --- a/docs/user_guide/extending/backend_plugins.md +++ b/docs/user_guide/extending/backend_plugins.md @@ -30,15 +30,15 @@ Flyte. To recap, here are a few examples of why you would want to implement a backend plugin: 1. We want to add a new capability to the Flyte Platform, for example we might want to: - - Talk to a new service like AWS Sagemaker, Snowflake, Redshift, Athena, BigQuery, etc. + - Talk to a new service like AWS SageMaker, Snowflake, Redshift, Athena, BigQuery, etc. - Orchestrate a set of containers in a new way like Spark, Flink, Distributed training on Kubernetes (usually using a Kubernetes operator). - Use a new container orchestration engine like AWS Batch/ECS, Hashicorp' Nomad - Use a completely new runtime like AWS Lambda, KNative, etc. -3. You want to retain the capability to update the plugin implementation and roll +2. You want to retain the capability to update the plugin implementation and roll out new changes and fixes without affecting the users code or requiring them to update versions of their plugins. -4. You want the same plugin to be accessible across multiple language SDK's. +3. You want the same plugin to be accessible across multiple language SDK's. ```{note} Talking to a new service can be done using flytekit extensions and usually is the better way to get started. But, once matured, most of these extensions are better to be migrated to the backend. For the rest of the cases, it is possible to extend flytekit to achieve these scenarios, but this is less desirable, because of the associated overhead of first launching a container that launches these jobs downstream. @@ -85,6 +85,7 @@ The backend plugin is where the actual logic of the execution is implemented. Th 1. [Kubernetes operator Plugin](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.26/go/tasks/pluginmachinery/k8s#Plugin): The demo in the video below shows two examples of K8s backend plugins: flytekit `Athena` & `Spark`, and Flyte K8s `Pod` & `Spark`. ```{youtube} oK2RGQuP94k + ``` 2. **A Web API plugin:** [Async](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.26/go/tasks/pluginmachinery/webapi#AsyncPlugin) or [Sync](https://pkg.go.dev/github.com/lyft/flyteplugins@v0.5.26/go/tasks/pluginmachinery/webapi#SyncPlugin). diff --git a/docs/user_guide/productionizing/configuring_logging_links_in_the_ui.md b/docs/user_guide/productionizing/configuring_logging_links_in_the_ui.md index 57502a8c77..3091e1bc82 100644 --- a/docs/user_guide/productionizing/configuring_logging_links_in_the_ui.md +++ b/docs/user_guide/productionizing/configuring_logging_links_in_the_ui.md @@ -105,7 +105,7 @@ Flytepropeller pod would be created as: ::: This code snippet will output two logs per task that use the log plugin. -However, not all task types use the log plugin; for example, the SageMaker plugin uses the log output provided by Sagemaker, and the Snowflake plugin will use a link to the snowflake console. +However, not all task types use the log plugin; for example, the Snowflake plugin will use a link to the Snowflake console. ## Datadog integration @@ -128,7 +128,7 @@ If you're using environment variables, use the following config: DD_LOGS_ENABLED: "false" DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL: "true" DD_LOGS_CONFIG_K8S_CONTAINER_USE_FILE: "true" -DD_CONTAINER_EXCLUDE_LOGS: "name:datadog-agent" # This is to avoid tracking logs produced by the datadog agent itself +DD_CONTAINER_EXCLUDE_LOGS: "name:datadog-agent" # This is to avoid tracking logs produced by the datadog agent itself ``` :::{warning} diff --git a/monodocs-environment.lock.yaml b/monodocs-environment.lock.yaml index 9348bb40f6..d6e0f711de 100644 --- a/monodocs-environment.lock.yaml +++ b/monodocs-environment.lock.yaml @@ -5,7 +5,7 @@ # available, unless you explicitly update the lock file. # # Install this environment as "YOURENV" with: -# conda-lock install -n YOURENV --file monodocs-environment.lock.yaml +# conda-lock install -n YOURENV monodocs-environment.lock.yaml # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile monodocs-environment.lock.yaml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: @@ -13,8 +13,8 @@ version: 1 metadata: content_hash: - linux-64: d7f2c35c010c56be614943ce1c7e2871212c591ee4953bc98af94615065ae822 - osx-arm64: 69cc7e73f7010c435bc8ef17121afd80cfadb5b3aa1df21d7850a6fd04bbff8e + linux-64: 32d4de5273d85a0237eda3bf606d0faaff506dac029d80b303bdf7ed5245ad2a + osx-arm64: e58daa2c17c4401600ecf9a4e1039741eb1d186d902acfad0e7f254968ee3732 channels: - url: conda-forge used_env_vars: [] @@ -93,11 +93,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - requests: '>=2.0.0' - pyjwt: '>=1.0.0' cryptography: '>=1.1.0' + pyjwt: '>=1.0.0' + python: '>=3.6' python-dateutil: '>=2.1.0' + requests: '>=2.0.0' url: https://conda.anaconda.org/conda-forge/noarch/adal-1.2.7-pyhd8ed1ab_0.tar.bz2 hash: md5: 1a0f134d22bad81e93f1e130b35afb35 @@ -105,75 +105,75 @@ package: category: main optional: false - name: adlfs - version: 2023.10.0 + version: 2024.2.0 manager: conda platform: linux-64 dependencies: aiohttp: '>=3.7.0' - azure-core: '>=1.23.1,<2.0' + azure-core: '>=1.23.1,<2.0.0' azure-datalake-store: '>=0.0.46,<0.1' azure-identity: '' azure-storage-blob: '>=12.12.0' - fsspec: '>=2023.9.0' + fsspec: '>=2023.12.0' python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/adlfs-2023.10.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/adlfs-2024.2.0-pyhd8ed1ab_1.conda hash: - md5: 8549734dc1b3c3a8d99d7993fe35996c - sha256: a2df0742c398cbb586e30d4be1ea35ead6f36ca0b6b69dead48503a0424abb69 + md5: 4dfa76ae23a7c27f4ccaf64945b71871 + sha256: b9ae4843b862ee69a1bfdcbb4604db817dd4f220d598fcbe64987c700b4e4cf4 category: main optional: false - name: adlfs - version: 2023.10.0 + version: 2024.2.0 manager: conda platform: osx-arm64 dependencies: - azure-identity: '' - python: '>=3.8' - azure-datalake-store: '>=0.0.46,<0.1' aiohttp: '>=3.7.0' + azure-core: '>=1.23.1,<2.0.0' + azure-datalake-store: '>=0.0.46,<0.1' + azure-identity: '' azure-storage-blob: '>=12.12.0' - azure-core: '>=1.23.1,<2.0' - fsspec: '>=2023.9.0' - url: https://conda.anaconda.org/conda-forge/noarch/adlfs-2023.10.0-pyhd8ed1ab_0.conda + fsspec: '>=2023.12.0' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/adlfs-2024.2.0-pyhd8ed1ab_1.conda hash: - md5: 8549734dc1b3c3a8d99d7993fe35996c - sha256: a2df0742c398cbb586e30d4be1ea35ead6f36ca0b6b69dead48503a0424abb69 + md5: 4dfa76ae23a7c27f4ccaf64945b71871 + sha256: b9ae4843b862ee69a1bfdcbb4604db817dd4f220d598fcbe64987c700b4e4cf4 category: main optional: false - name: aiobotocore - version: 2.11.1 + version: 2.12.1 manager: conda platform: linux-64 dependencies: aiohttp: '>=3.7.4.post0,<4.0.0' aioitertools: '>=0.5.1,<1.0.0' - botocore: '>=1.33.2,<1.34.28' + botocore: '>=1.34.41,<1.34.52' python: '>=3.8' wrapt: '>=1.10.10,<2.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/aiobotocore-2.11.1-pyhd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/aiobotocore-2.12.1-pyhd8ed1ab_0.conda hash: - md5: 9f219d2e85fcb24a70961f1e4671e194 - sha256: 3a9b915c992ec4b7b95abdbc7392c4be38ee7a51983d11aabd1cbdad29bc33c6 + md5: 045560daef58c75a759c2638fbdb5c6a + sha256: e7d43681c7c2957b535aac2b3ad90013bcb39ed5514cea3cec52302f624d457a category: main optional: false - name: aiobotocore - version: 2.11.1 + version: 2.12.1 manager: conda platform: osx-arm64 dependencies: + aiohttp: '>=3.7.4.post0,<4.0.0' + aioitertools: '>=0.5.1,<1.0.0' + botocore: '>=1.34.41,<1.34.52' python: '>=3.8' wrapt: '>=1.10.10,<2.0.0' - aioitertools: '>=0.5.1,<1.0.0' - aiohttp: '>=3.7.4.post0,<4.0.0' - botocore: '>=1.33.2,<1.34.28' - url: https://conda.anaconda.org/conda-forge/noarch/aiobotocore-2.11.1-pyhd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/aiobotocore-2.12.1-pyhd8ed1ab_0.conda hash: - md5: 9f219d2e85fcb24a70961f1e4671e194 - sha256: 3a9b915c992ec4b7b95abdbc7392c4be38ee7a51983d11aabd1cbdad29bc33c6 + md5: 045560daef58c75a759c2638fbdb5c6a + sha256: e7d43681c7c2957b535aac2b3ad90013bcb39ed5514cea3cec52302f624d457a category: main optional: false - name: aiohttp - version: 3.9.1 + version: 3.9.3 manager: conda platform: linux-64 dependencies: @@ -186,14 +186,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* yarl: '>=1.0,<2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.9.1-py39hd1e30aa_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.9.3-py39hd1e30aa_1.conda hash: - md5: c94f6e40db7d4828430ac0d8efe6a3d7 - sha256: 9ef3be4aed65d22f29a03a1bbc5b36ecab14b279efbe729241270831ff5f17b4 + md5: 437936123de28b9bf81d35b943170c4f + sha256: 0fcc6c976dc7dd7592cfd584cacbc121190513ddeff9d7ab386ef67146808c0c category: main optional: false - name: aiohttp - version: 3.9.1 + version: 3.9.3 manager: conda platform: osx-arm64 dependencies: @@ -205,10 +205,10 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* yarl: '>=1.0,<2.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/aiohttp-3.9.1-py39h17cfd9d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/aiohttp-3.9.3-py39h17cfd9d_1.conda hash: - md5: f6fc543795790782846e7f69404293a1 - sha256: d43c95aa1a91ba65454ff246daca6697aaca17b674a179bd232c8e3360bb48c1 + md5: 5885b2faa60d882ce3f2362006ed0aa4 + sha256: b7cca849455a49c07de91c7285984dcfa8236d1dfd10039ad263d76702659326 category: main optional: false - name: aioitertools @@ -255,8 +255,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' frozenlist: '>=1.1.0' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2 hash: md5: d1e1eb7e21a9e2c74279d87dafb68156 @@ -344,13 +344,13 @@ package: manager: conda platform: osx-arm64 dependencies: - jinja2: '' - toolz: '' entrypoints: '' - python: '>=3.7' - pandas: '>=0.18' + jinja2: '' jsonschema: '>=3.0' numpy: '>=0.18' + pandas: '>=0.18' + python: '>=3.7' + toolz: '' url: https://conda.anaconda.org/conda-forge/noarch/altair-4.2.2-pyhd8ed1ab_0.conda hash: md5: afca9c6a93335c55bbc84072011e86dc @@ -375,8 +375,8 @@ package: manager: conda platform: osx-arm64 dependencies: - textwrap3: '' python: <3.12.0a0 + textwrap3: '' url: https://conda.anaconda.org/conda-forge/noarch/ansiwrap-0.8.4-py_0.tar.bz2 hash: md5: f09557e2a7cbd2470a2ab6353000cebd @@ -384,7 +384,7 @@ package: category: main optional: false - name: anyio - version: 4.2.0 + version: 4.3.0 manager: conda platform: linux-64 dependencies: @@ -393,26 +393,26 @@ package: python: '>=3.8' sniffio: '>=1.1' typing_extensions: '>=4.1' - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.2.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.3.0-pyhd8ed1ab_0.conda hash: - md5: 81ce9f3d9697b534d95118bb86c8a07e - sha256: 68458e31bdf3334f0e85f08767718ca9bc35bc2a79a6c503942ac99da98e510a + md5: ac95aa8ed65adfdde51132595c79aade + sha256: 86aca4a31c09f9b4dbdb332cd9a6a7dbab62ca734d3f832651c0ab59c6a7f52e category: main optional: false - name: anyio - version: 4.2.0 + version: 4.3.0 manager: conda platform: osx-arm64 dependencies: + exceptiongroup: '>=1.0.2' + idna: '>=2.8' python: '>=3.8' sniffio: '>=1.1' typing_extensions: '>=4.1' - idna: '>=2.8' - exceptiongroup: '>=1.0.2' - url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.2.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.3.0-pyhd8ed1ab_0.conda hash: - md5: 81ce9f3d9697b534d95118bb86c8a07e - sha256: 68458e31bdf3334f0e85f08767718ca9bc35bc2a79a6c503942ac99da98e510a + md5: ac95aa8ed65adfdde51132595c79aade + sha256: 86aca4a31c09f9b4dbdb332cd9a6a7dbab62ca734d3f832651c0ab59c6a7f52e category: main optional: false - name: aplus @@ -440,15 +440,15 @@ package: category: main optional: false - name: appnope - version: 0.1.3 + version: 0.1.4 manager: conda platform: osx-arm64 dependencies: - python: '>=2.7' - url: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.3-pyhd8ed1ab_0.tar.bz2 + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_0.conda hash: - md5: 54ac328d703bff191256ffa1183126d1 - sha256: b209a68ac55eb9ecad7042f0d4eedef5da924699f6cdf54ac1826869cfdae742 + md5: cc4834a9ee7cc49ce8d25177c47b10d8 + sha256: 45ae2d41f4a4dcf8707633d3d7ae376fc62f0c09b1d063c3049c3f6f8c911670 category: main optional: false - name: argon2-cffi @@ -470,9 +470,9 @@ package: manager: conda platform: osx-arm64 dependencies: - typing-extensions: '' argon2-cffi-bindings: '' python: '>=3.7' + typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda hash: md5: 3afef1f55a1366b4d3b6a0d92e2235e4 @@ -561,31 +561,31 @@ package: category: main optional: false - name: astroid - version: 3.0.2 + version: 3.1.0 manager: conda platform: linux-64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing-extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.0.2-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/astroid-3.1.0-py39hf3d152e_0.conda hash: - md5: 49a16bb769befaa4ad2d06a92b802de1 - sha256: 9a03dce692e9c61b6cdedaeaab9d9cc931ae94caeb22a35a7545a978e2fb5693 + md5: 8206a0bfae8514702fba15aff6669f9b + sha256: b73df723ff5fc3446b8d416e10e99a48cff3be668113b94a36a3154e9b495c7d category: main optional: false - name: astroid - version: 3.0.2 + version: 3.1.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing-extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-3.0.2-py39h2804cbe_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-3.1.0-py39h2804cbe_0.conda hash: - md5: 165561609d96e5dfbb58ef495a37b084 - sha256: ff39f43cb1dda0738a3b83044e70b5d4e32cee816591e2603be9b9a078823219 + md5: 02d0db34f4814a73abe60e1973096ac9 + sha256: 22aa7b2152398278d2ab03c9be28b3fd330b3d589103bbfaf30c6785600d86b4 category: main optional: false - name: asttokens @@ -1138,7 +1138,7 @@ package: category: main optional: false - name: azure-core - version: 1.29.7 + version: 1.30.1 manager: conda platform: linux-64 dependencies: @@ -1146,29 +1146,29 @@ package: requests: '>=2.21.0' six: '>=1.11.0' typing-extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.30.1-pyhd8ed1ab_0.conda hash: - md5: 64d436079b1422e0483b0fbb326622a2 - sha256: 9a9ea330870d2655348fcb8c87a5fa421f3b6c3e347653131d7104f04daad5b8 + md5: 690b51eb2dbc703e8f9ba2f7ce298363 + sha256: c70bef5f28ee9efead58f5a4992e2b1dc120c66d24e4c9678356c123e031553f category: main optional: false - name: azure-core - version: 1.29.7 + version: 1.30.1 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - six: '>=1.11.0' requests: '>=2.21.0' + six: '>=1.11.0' typing-extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.30.1-pyhd8ed1ab_0.conda hash: - md5: 64d436079b1422e0483b0fbb326622a2 - sha256: 9a9ea330870d2655348fcb8c87a5fa421f3b6c3e347653131d7104f04daad5b8 + md5: 690b51eb2dbc703e8f9ba2f7ce298363 + sha256: c70bef5f28ee9efead58f5a4992e2b1dc120c66d24e4c9678356c123e031553f category: main optional: false - name: azure-core-cpp - version: 1.11.0 + version: 1.10.3 manager: conda platform: linux-64 dependencies: @@ -1176,24 +1176,24 @@ package: libgcc-ng: '>=12' libstdcxx-ng: '>=12' openssl: '>=3.2.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.11.0-h91d86a7_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.10.3-h91d86a7_1.conda hash: - md5: 0babb92c299af923d2cc98f88bbc6539 - sha256: d92e9aa5c8069bd3c934c8bbe8563d5e20f6cb7d688b493929d3d69d3e24934c + md5: c05a913b8203d14b4a91c54d57b52282 + sha256: 8740ccf0a22b13ddc7e6b0b577398fc3ec82aa8e020428aa13d69cf4c02bd0b6 category: main optional: false - name: azure-core-cpp - version: 1.11.0 + version: 1.10.3 manager: conda platform: osx-arm64 dependencies: libcurl: '>=8.5.0,<9.0a0' libcxx: '>=15' openssl: '>=3.2.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.11.0-he231e37_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.10.3-he231e37_1.conda hash: - md5: c2f26fc5c955973b823b5c6c514d9cea - sha256: a73be81148ad13abbd28c2fd9cf3d122016d14e1d14df66c106d5f0e387d4122 + md5: f51b5c4b5c19c5127f0649555d841aa7 + sha256: 94707b5b6ba45ff8de32c494d88b42dc1bde395f8bada49d4f0a170861149aec category: main optional: false - name: azure-datalake-store @@ -1216,10 +1216,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '' + adal: '>=0.4.2' cffi: '' + python: '' requests: '>=2.20.0' - adal: '>=0.4.2' url: https://conda.anaconda.org/conda-forge/noarch/azure-datalake-store-0.0.51-pyh9f0ad1d_0.tar.bz2 hash: md5: 0a6d240a3a8198dce8508a5409b4737e @@ -1247,11 +1247,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' - cryptography: '>=2.5' azure-core: <2.0.0,>=1.23.0 - msal_extensions: <2.0.0,>=0.3.0 + cryptography: '>=2.5' msal: <2.0.0,>=1.24.0 + msal_extensions: <2.0.0,>=0.3.0 + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/azure-identity-1.15.0-pyhd8ed1ab_0.conda hash: md5: d1ef208ae2a355e5bb9cdce337644ce9 @@ -1259,7 +1259,7 @@ package: category: main optional: false - name: azure-storage-blob - version: 12.19.0 + version: 12.19.1 manager: conda platform: linux-64 dependencies: @@ -1268,26 +1268,26 @@ package: isodate: '>=0.6.1' python: '>=3.7' typing-extensions: '>=4.3.0' - url: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.19.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.19.1-pyhd8ed1ab_0.conda hash: - md5: a3ea5120c342b4c956022340ace5c0f8 - sha256: 385c2a82fd5183d2cc791747f63d81e8bda11e068ee0e29e945fe7cdfe20a817 + md5: 57fdaf60fb362bb31c685b0f5e2b1f3a + sha256: fe43dcceec8cea87f1c5fcf3c155fb0e5c0c1a9d3656112ec4da232c053edaca category: main optional: false - name: azure-storage-blob - version: 12.19.0 + version: 12.19.1 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' + azure-core: <2.0.0,>=1.28.0 cryptography: '>=2.1.4' - typing-extensions: '>=4.3.0' isodate: '>=0.6.1' - azure-core: <2.0.0,>=1.28.0 - url: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.19.0-pyhd8ed1ab_0.conda + python: '>=3.7' + typing-extensions: '>=4.3.0' + url: https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.19.1-pyhd8ed1ab_0.conda hash: - md5: a3ea5120c342b4c956022340ace5c0f8 - sha256: 385c2a82fd5183d2cc791747f63d81e8bda11e068ee0e29e945fe7cdfe20a817 + md5: 57fdaf60fb362bb31c685b0f5e2b1f3a + sha256: fe43dcceec8cea87f1c5fcf3c155fb0e5c0c1a9d3656112ec4da232c053edaca category: main optional: false - name: azure-storage-blobs-cpp @@ -1295,8 +1295,8 @@ package: manager: conda platform: linux-64 dependencies: - azure-core-cpp: '>=1.10.3,<2.0a0' - azure-storage-common-cpp: '>=12.5.0,<13.0a0' + azure-core-cpp: '>=1.10.3,<1.10.4.0a0' + azure-storage-common-cpp: '>=12.5.0,<12.5.1.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.10.0-h00ab1b0_0.conda @@ -1311,8 +1311,8 @@ package: platform: osx-arm64 dependencies: __osx: '>=10.9' - azure-core-cpp: '>=1.10.3,<2.0a0' - azure-storage-common-cpp: '>=12.5.0,<13.0a0' + azure-core-cpp: '>=1.10.3,<1.10.4.0a0' + azure-storage-common-cpp: '>=12.5.0,<12.5.1.0a0' libcxx: '>=16.0.6' url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.10.0-h6aa02a4_0.conda hash: @@ -1325,15 +1325,15 @@ package: manager: conda platform: linux-64 dependencies: - azure-core-cpp: '>=1.11.0,<1.12.0a0' + azure-core-cpp: '>=1.10.3,<1.10.4.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libxml2: '>=2.12.4,<3.0a0' - openssl: '>=3.2.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.5.0-h94269e2_3.conda + libxml2: '>=2.12.1,<3.0.0a0' + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.5.0-hb858b4b_2.conda hash: - md5: 2862966bef50f0f91f528f23b1270e52 - sha256: 839f9ea01ad1a6acbe9c55073ca7ef677809f8d366a8500dae50e0a91da71a0e + md5: 19f23b45d1925a9a8f701a3f6f9cce4f + sha256: 68e177ae983d63323b9bd1c1528776bb0e03d5d5aef0addba97aed4537e649a6 category: main optional: false - name: azure-storage-common-cpp @@ -1341,14 +1341,15 @@ package: manager: conda platform: osx-arm64 dependencies: - azure-core-cpp: '>=1.11.0,<1.12.0a0' - libcxx: '>=15' - libxml2: '>=2.12.4,<3.0a0' - openssl: '>=3.2.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.5.0-h09a5875_3.conda + __osx: '>=10.9' + azure-core-cpp: '>=1.10.3,<1.10.4.0a0' + libcxx: '>=16.0.6' + libxml2: '>=2.12.1,<3.0.0a0' + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.5.0-h607ffeb_2.conda hash: - md5: 6f2341a820fab6c06cf0bd5ff086246c - sha256: e90f836807f253d448dfe59270ed1ed426ebbb9cde32db796d19698bd84baf68 + md5: 457b5b7cfda7d6bec46e95cbe6554bc5 + sha256: 1c020b792916289eec5b203e6cb301e80d434dc74de3ad9269ffa5b3fb9fa8c3 category: main optional: false - name: babel @@ -1370,9 +1371,9 @@ package: manager: conda platform: osx-arm64 dependencies: - setuptools: '' - pytz: '' python: '>=3.7' + pytz: '' + setuptools: '' url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda hash: md5: 9669586875baeced8fc30c0826c3270e @@ -1450,8 +1451,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '' chardet: '' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/binaryornot-0.4.4-py_1.tar.bz2 hash: md5: a556fa60840fcb9dd739d186bfd252f7 @@ -1459,7 +1460,7 @@ package: category: main optional: false - name: black - version: 24.1.1 + version: 24.2.0 manager: conda platform: linux-64 dependencies: @@ -1472,14 +1473,14 @@ package: python_abi: 3.9.* tomli: '>=1.1.0' typing_extensions: '>=4.0.1' - url: https://conda.anaconda.org/conda-forge/linux-64/black-24.1.1-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/black-24.2.0-py39hf3d152e_0.conda hash: - md5: 582902a25ef7296b10c31d9ab863c984 - sha256: ae96483fafc4fd60322dea340d3668d787dc5fe4c9e3ea8f53729a4be46004dd + md5: 8060f38a7e9ced7e0ff82adfa5c01b65 + sha256: 71539f1f61a9a3c0ceceae79ed7460e901bf0294599dbcd170496e8671e5d3b8 category: main optional: false - name: black - version: 24.1.1 + version: 24.2.0 manager: conda platform: osx-arm64 dependencies: @@ -1492,10 +1493,10 @@ package: python_abi: 3.9.* tomli: '>=1.1.0' typing_extensions: '>=4.0.1' - url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.1.1-py39h2804cbe_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/black-24.2.0-py39h2804cbe_0.conda hash: - md5: 24664c80cbd8b600563e138017d5da78 - sha256: 3b540a94354f9c154bd708242c7fe8ba39c62a5499aa23d4826e4a0d776f041c + md5: ea3b2d9d3b5d32361056e8c0eed7153c + sha256: 07397f3989ee6c50538f9c98b8b5ab7256ded48bfebe513c7c831945f0689364 category: main optional: false - name: blake3 @@ -1548,11 +1549,11 @@ package: manager: conda platform: osx-arm64 dependencies: - setuptools: '' packaging: '' - webencodings: '' python: '>=3.6' + setuptools: '' six: '>=1.9.0' + webencodings: '' url: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda hash: md5: 0ed9d7c0e9afa7c025807a9a8136ea3e @@ -1617,11 +1618,11 @@ package: category: main optional: false - name: bokeh - version: 3.3.4 + version: 3.4.0 manager: conda platform: linux-64 dependencies: - contourpy: '>=1' + contourpy: '>=1.2' jinja2: '>=2.9' numpy: '>=1.16' packaging: '>=16.8' @@ -1629,35 +1630,37 @@ package: pillow: '>=7.1.0' python: '>=3.9' pyyaml: '>=3.10' - tornado: '>=5.1' + tornado: '>=6.2' xyzservices: '>=2021.09.1' - url: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.3.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.0-pyhd8ed1ab_0.conda hash: - md5: 6cc92bba68b7bb5a3b180e96508f9480 - sha256: b9cf3b2d136ecdd32dfb97776c97ea92915caab759179ee94c6c1abbab806a62 + md5: eebbbfdb7eb885ddc751c790c3d0ad64 + sha256: a980687100456202425af0936185ef95c53309044e271daa60d2eeb009410f73 category: main optional: false - name: bokeh - version: 2.4.3 + version: 3.4.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' - pyyaml: '>=3.10' - tornado: '>=5.1' - typing_extensions: '>=3.10.0' - pillow: '>=7.1.0' - numpy: '>=1.11.3' - packaging: '>=16.8' + contourpy: '>=1.2' jinja2: '>=2.9' - url: https://conda.anaconda.org/conda-forge/noarch/bokeh-2.4.3-pyhd8ed1ab_3.tar.bz2 + numpy: '>=1.16' + packaging: '>=16.8' + pandas: '>=1.2' + pillow: '>=7.1.0' + python: '>=3.9' + pyyaml: '>=3.10' + tornado: '>=6.2' + xyzservices: '>=2021.09.1' + url: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.4.0-pyhd8ed1ab_0.conda hash: - md5: e4c6e6d99add99cede5328d811cacb21 - sha256: f37e33fb11ae76ff07ce726a3dbdf4cd26ffff1b52c126d2d2d136669d6b919f + md5: eebbbfdb7eb885ddc751c790c3d0ad64 + sha256: a980687100456202425af0936185ef95c53309044e271daa60d2eeb009410f73 category: main optional: false - name: botocore - version: 1.34.27 + version: 1.34.51 manager: conda platform: linux-64 dependencies: @@ -1665,25 +1668,25 @@ package: python: '>=3.8' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.27-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.51-pyge38_1234567_0.conda hash: - md5: 43ecc8130f9581ce52eeb31eef7261e5 - sha256: 3526e91ae310efee035a5c458f87a80b2aafe0faa15eb1cf815b726e789999d5 + md5: 79fc60a0a40d6254f67da7ce274c30a8 + sha256: b264cf2547f0730a4c3efaa771533be790a76b35e3dd5f0c19cc7f7a6aad6151 category: main optional: false - name: botocore - version: 1.34.27 + version: 1.34.51 manager: conda platform: osx-arm64 dependencies: + jmespath: '>=0.7.1,<2.0.0' python: '>=3.8' python-dateutil: '>=2.1,<3.0.0' - jmespath: '>=0.7.1,<2.0.0' urllib3: '>=1.25.4,<1.27' - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.27-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.51-pyge38_1234567_0.conda hash: - md5: 43ecc8130f9581ce52eeb31eef7261e5 - sha256: 3526e91ae310efee035a5c458f87a80b2aafe0faa15eb1cf815b726e789999d5 + md5: 79fc60a0a40d6254f67da7ce274c30a8 + sha256: b264cf2547f0730a4c3efaa771533be790a76b35e3dd5f0c19cc7f7a6aad6151 category: main optional: false - name: branca @@ -1704,8 +1707,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' jinja2: '>=3' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/branca-0.7.1-pyhd8ed1ab_0.conda hash: md5: 35fa1bfd27c4d4c3cd46501a9ca7bd78 @@ -1821,48 +1824,48 @@ package: category: main optional: false - name: c-ares - version: 1.26.0 + version: 1.27.0 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.26.0-hd590300_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.27.0-hd590300_0.conda hash: - md5: a86d90025198fd411845fc245ebc06c8 - sha256: 3771589a91303710a59d1d40bbcdca43743969fe993ea576538ba375ac8ab0fa + md5: f6afff0e9ee08d2f1b897881a4f38cdb + sha256: 2a5866b19d28cb963fab291a62ff1c884291b9d6f59de14643e52f103e255749 category: main optional: false - name: c-ares - version: 1.26.0 + version: 1.27.0 manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.26.0-h93a5062_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.27.0-h93a5062_0.conda hash: - md5: 58b9187431de0a2ffebc907f4590e2e5 - sha256: 1dfdbac985a74a905f2bcf62f13ce758a8356e50d4b28ddbc2027df8580717d8 + md5: d3579ba506791b1f8f8a16cfc2885326 + sha256: a168e53ee462980cd78b324e055afdd00080ded378ca974969a0917eb4ae1ccb category: main optional: false - name: ca-certificates - version: 2023.11.17 + version: 2024.2.2 manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda hash: - md5: 01ffc8d36f9eba0ce0b3c1955fa780ee - sha256: fb4b9f4b7d885002db0b93e22f44b5b03791ef3d4efdc9d0662185a0faafd6b6 + md5: 2f4327a1cbe7f022401b236e915a5fef + sha256: 91d81bfecdbb142c15066df70cc952590ae8991670198f92c66b62019b251aeb category: main optional: false - name: ca-certificates - version: 2023.11.17 + version: 2024.2.2 manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2023.11.17-hf0a4a13_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda hash: - md5: c01da7c77cfcba2107174e25c1d47384 - sha256: 75f4762a55f7e9453a603c967d549bfa0a7a9669d502d103cb6fbf8c86d993c6 + md5: fb416a1795f18dcc5a038bc2dc54edf9 + sha256: 49bc3439816ac72d0c0e0f144b8cc870fdcc4adec2e861407ec818d8116b2204 category: main optional: false - name: cached-property @@ -1914,27 +1917,27 @@ package: category: main optional: false - name: cachetools - version: 5.3.2 + version: 5.3.3 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/cachetools-5.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/cachetools-5.3.3-pyhd8ed1ab_0.conda hash: - md5: 185cc1bf1d5af90020292888a3c7eb5d - sha256: cb8a6688d5650e4546a5f3c5b825bfe3c82594f1f588a93817f1bdb23e74baad + md5: cd4c26c702a9bcdc70ff05b609ddacbe + sha256: 561b860cba68da76cab8c6504bb5bfb4756ecb2ec9f124d0c17e76caad4f6dfd category: main optional: false - name: cachetools - version: 5.3.2 + version: 5.3.3 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/cachetools-5.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/cachetools-5.3.3-pyhd8ed1ab_0.conda hash: - md5: 185cc1bf1d5af90020292888a3c7eb5d - sha256: cb8a6688d5650e4546a5f3c5b825bfe3c82594f1f588a93817f1bdb23e74baad + md5: cd4c26c702a9bcdc70ff05b609ddacbe + sha256: 561b860cba68da76cab8c6504bb5bfb4756ecb2ec9f124d0c17e76caad4f6dfd category: main optional: false - name: cairo @@ -1988,27 +1991,27 @@ package: category: main optional: false - name: certifi - version: 2023.11.17 + version: 2024.2.2 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.2.2-pyhd8ed1ab_0.conda hash: - md5: 2011bcf45376341dd1d690263fdbc789 - sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + md5: 0876280e409658fc6f9e75d035960333 + sha256: f1faca020f988696e6b6ee47c82524c7806380b37cfdd1def32f92c326caca54 category: main optional: false - name: certifi - version: 2023.11.17 + version: 2024.2.2 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.2.2-pyhd8ed1ab_0.conda hash: - md5: 2011bcf45376341dd1d690263fdbc789 - sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + md5: 0876280e409658fc6f9e75d035960333 + sha256: f1faca020f988696e6b6ee47c82524c7806380b37cfdd1def32f92c326caca54 category: main optional: false - name: cffi @@ -2193,8 +2196,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '' click: '>=3.0' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1-py_0.tar.bz2 hash: md5: 4fd2c6b53934bd7d96d1f3fdaf99b79f @@ -2219,8 +2222,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: <4.0 click: '>=4.0' + python: <4.0 url: https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_1.tar.bz2 hash: md5: a29b7c141d6b2de4bb67788a5f107734 @@ -2300,29 +2303,29 @@ package: category: main optional: false - name: comm - version: 0.2.1 + version: 0.2.2 manager: conda platform: linux-64 dependencies: python: '>=3.6' traitlets: '>=5.3' - url: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda hash: - md5: f4385072f4909bc974f6675a36e76796 - sha256: bd90a200e6f7092a89f02c4800729a4a6d2b2de49d70a9706aeb083a635308c1 + md5: 948d84721b578d426294e17a02e24cbb + sha256: e923acf02708a8a0b591f3bce4bdc11c8e63b73198b99b35fe6cd96bfb6a0dbe category: main optional: false - name: comm - version: 0.2.1 + version: 0.2.2 manager: conda platform: osx-arm64 dependencies: python: '>=3.6' traitlets: '>=5.3' - url: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.2-pyhd8ed1ab_0.conda hash: - md5: f4385072f4909bc974f6675a36e76796 - sha256: bd90a200e6f7092a89f02c4800729a4a6d2b2de49d70a9706aeb083a635308c1 + md5: 948d84721b578d426294e17a02e24cbb + sha256: e923acf02708a8a0b591f3bce4bdc11c8e63b73198b99b35fe6cd96bfb6a0dbe category: main optional: false - name: commonmark @@ -2343,8 +2346,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '' future: '>=0.14.0' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/commonmark-0.9.1-py_0.tar.bz2 hash: md5: 6aa0173c14befcd577ded130cf6f22f5 @@ -2352,27 +2355,27 @@ package: category: main optional: false - name: configparser - version: 5.3.0 + version: 6.0.1 manager: conda platform: linux-64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/configparser-5.3.0-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/configparser-6.0.1-pyhd8ed1ab_0.conda hash: - md5: c99fd5916160900dc5ff64204da99c4d - sha256: ce6ce9ee08437b46c284d52b076fb091cf6f2a9e12860d4a37546adbd5f53b28 + md5: 2a24e68637e51e2adf001e9d0af848b1 + sha256: e01107b458dd21f1915dcd9901f5ecc7d918a8157d9a9802020286ed83f9847e category: main optional: false - name: configparser - version: 5.3.0 + version: 6.0.1 manager: conda platform: osx-arm64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/configparser-5.3.0-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/configparser-6.0.1-pyhd8ed1ab_0.conda hash: - md5: c99fd5916160900dc5ff64204da99c4d - sha256: ce6ce9ee08437b46c284d52b076fb091cf6f2a9e12860d4a37546adbd5f53b28 + md5: 2a24e68637e51e2adf001e9d0af848b1 + sha256: e01107b458dd21f1915dcd9901f5ecc7d918a8157d9a9802020286ed83f9847e category: main optional: false - name: contourpy @@ -2408,7 +2411,7 @@ package: category: main optional: false - name: cookiecutter - version: 2.5.0 + version: 2.6.0 manager: conda platform: linux-64 dependencies: @@ -2421,89 +2424,131 @@ package: pyyaml: '>=5.3.1' requests: '>=2.23.0' rich: '' - url: https://conda.anaconda.org/conda-forge/noarch/cookiecutter-2.5.0-pyhca7485f_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/cookiecutter-2.6.0-pyhca7485f_0.conda hash: - md5: dd441f5f8ccf8d277ea2731b9523d341 - sha256: 7a58c9025e713e0227bfb9c8248cd40e116d84d17420e6ed23b916ee763230ee + md5: d6260b53b9db90017321af0b45cc00da + sha256: 5bed5805127757a4f03231eb7fe971cfe3c3411eeef036e670c41bfd8a42d91d category: main optional: false - name: cookiecutter - version: 2.5.0 + version: 2.6.0 manager: conda platform: osx-arm64 dependencies: - rich: '' arrow: '' + binaryornot: '>=0.4.4' + click: '>=7.0,<9.0.0' + jinja2: '>=2.7,<4.0.0' python: '>=3.7' + python-slugify: '>=4.0.0' pyyaml: '>=5.3.1' requests: '>=2.23.0' - python-slugify: '>=4.0.0' - binaryornot: '>=0.4.4' - jinja2: '>=2.7,<4.0.0' - click: '>=7.0,<9.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/cookiecutter-2.5.0-pyhca7485f_0.conda + rich: '' + url: https://conda.anaconda.org/conda-forge/noarch/cookiecutter-2.6.0-pyhca7485f_0.conda hash: - md5: dd441f5f8ccf8d277ea2731b9523d341 - sha256: 7a58c9025e713e0227bfb9c8248cd40e116d84d17420e6ed23b916ee763230ee + md5: d6260b53b9db90017321af0b45cc00da + sha256: 5bed5805127757a4f03231eb7fe971cfe3c3411eeef036e670c41bfd8a42d91d category: main optional: false - name: croniter - version: 2.0.1 + version: 2.0.2 manager: conda platform: linux-64 dependencies: python: '>=3.7' python-dateutil: '' pytz: '>2021.1' - url: https://conda.anaconda.org/conda-forge/noarch/croniter-2.0.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/croniter-2.0.2-pyhd8ed1ab_0.conda hash: - md5: f67f52c1f555785b86c3bd8e5de4c66f - sha256: 0a39004b6e4ddff1a323432c0790d61a8885f35af9e60cc7e76ad8f6d43e3f34 + md5: 81e82a2922ee960cc5e324b0102174d0 + sha256: e235c57e6070f5d2b161f7b496d00cb9e75796c5234cf62aff9e04258302940e category: main optional: false - name: croniter - version: 2.0.1 + version: 2.0.2 manager: conda platform: osx-arm64 dependencies: - python-dateutil: '' python: '>=3.7' + python-dateutil: '' pytz: '>2021.1' - url: https://conda.anaconda.org/conda-forge/noarch/croniter-2.0.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/croniter-2.0.2-pyhd8ed1ab_0.conda hash: - md5: f67f52c1f555785b86c3bd8e5de4c66f - sha256: 0a39004b6e4ddff1a323432c0790d61a8885f35af9e60cc7e76ad8f6d43e3f34 + md5: 81e82a2922ee960cc5e324b0102174d0 + sha256: e235c57e6070f5d2b161f7b496d00cb9e75796c5234cf62aff9e04258302940e category: main optional: false - name: cryptography - version: 41.0.7 + version: 42.0.5 manager: conda platform: linux-64 dependencies: cffi: '>=1.12' libgcc-ng: '>=12' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.1,<4.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py39he6105cc_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-42.0.5-py39hd4f0224_0.conda hash: - md5: c2503c6b2505714dd30d50717efe1826 - sha256: 704b189699c8eae0dff8b3d0886fb3ef5316b221676ee5d79d44575073bc9296 + md5: 74adeac31d6368a9dcf1a867a052cffa + sha256: dbde9bd3cc0400cdefbdfe7a41ddb7cb33efc472dbd291485308eb5f5830f1a9 category: main optional: false - name: cryptography - version: 41.0.7 + version: 42.0.5 manager: conda platform: osx-arm64 dependencies: cffi: '>=1.12' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.1,<4.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-41.0.7-py39hbc7c26c_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-42.0.5-py39h4720a30_0.conda + hash: + md5: 3640aac83789d76e083447489790a157 + sha256: 4ce400c11245a79feb9fea93e8179379c48af6e755347f3c91181c5fd54423e9 + category: main + optional: false +- name: cuda-version + version: '11.8' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/cuda-version-11.8-h70ddcb2_3.conda + hash: + md5: 670f0e1593b8c1d84f57ad5fe5256799 + sha256: 53e0ffc14ea2f2b8c12320fd2aa38b01112763eba851336ff5953b436ae61259 + category: main + optional: false +- name: cudatoolkit + version: 11.8.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda + hash: + md5: eb43f5f1f16e2fad2eba22219c3e499b + sha256: 1797bacaf5350f272413c7f50787c01aef0e8eb955df0f0db144b10be2819752 + category: main + optional: false +- name: cudnn + version: 8.9.7.29 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + cuda-version: '>=11.0,<12.0a0' + cudatoolkit: 11.* + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/cudnn-8.9.7.29-hbc23b4c_3.conda hash: - md5: 0511a9f0e97e23bf28fe345f92849237 - sha256: 291cf98d177a933b9ec6c35dc7630b181a73497c0fe9840e90c7a728716b5061 + md5: 4a2d5fab2871d95544de4e1752948d0f + sha256: c553234d447d9938556f067aba7a4686c8e5427e03e740e67199da3782cc420c category: main optional: false - name: cycler @@ -2531,7 +2576,7 @@ package: category: main optional: false - name: cytoolz - version: 0.12.2 + version: 0.12.3 manager: conda platform: linux-64 dependencies: @@ -2539,35 +2584,36 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* toolz: '>=0.10.0' - url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.2-py39hd1e30aa_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.3-py39hd1e30aa_0.conda hash: - md5: e5b62f0c1f96413116f16d33973f1a44 - sha256: dc9b9ddb29d61463e8c5c5098b7f8d8a370d6d1a65830029000ff9c2299495e0 + md5: dc0fb8e157c7caba4c98f1e1f9d2e5f4 + sha256: bbc7069221cb5ff29dd8f10f2ae32a6caa72394459a7c67ec2e19d9b9f42cd78 category: main optional: false - name: cytoolz - version: 0.12.2 + version: 0.12.3 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* toolz: '>=0.10.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.2-py39h0f82c59_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-0.12.3-py39h17cfd9d_0.conda hash: - md5: 55150781bf8d18e4df223e47abc4f1d7 - sha256: 4709ec855331b50230fbf09bec3fc833c744e2505e454c3513bdad18cbc0100c + md5: 819e2f7dc92fefbf1eb90c542d550259 + sha256: 2eb3a30850b04d63dfc8c0b15e276a1791ac6b0e87a6b34205118b12ce14def7 category: main optional: false - name: dask - version: 2024.1.1 + version: 2024.3.0 manager: conda platform: linux-64 dependencies: bokeh: '>=2.4.2,!=3.0.*' cytoolz: '>=0.11.0' - dask-core: '>=2024.1.1,<2024.1.2.0a0' - distributed: '>=2024.1.1,<2024.1.2.0a0' + dask-core: '>=2024.3.0,<2024.3.1.0a0' + dask-expr: '>=1.0,<1.1' + distributed: '>=2024.3.0,<2024.3.1.0a0' jinja2: '>=2.10.3' lz4: '>=4.3.2' numpy: '>=1.21' @@ -2575,34 +2621,37 @@ package: pyarrow: '>=7.0' pyarrow-hotfix: '' python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/dask-2024.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/dask-2024.3.0-pyhd8ed1ab_1.conda hash: - md5: c319bdbcfa9952e246f9d35e7c13a927 - sha256: 8f3d605b2d89eb0a9792576b385098ce7f9bdb827b88c6d5e2c9517914895bd0 + md5: 271447895d7d7f1bd28a74e6afc51be3 + sha256: 666cd081c8a33164aa2f20177cd2e3c952746936390f38558898269cf80cf8ed category: main optional: false - name: dask - version: 2023.2.0 + version: 2024.3.0 manager: conda platform: osx-arm64 dependencies: - jinja2: '' - lz4: '' - python: '>=3.8' - pandas: '>=1.0' - numpy: '>=1.18' - cytoolz: '>=0.8.2' - bokeh: '>=2.4.2,<3' - dask-core: '>=2023.2.0,<2023.2.1.0a0' - distributed: '>=2023.2.0,<2023.2.1.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/dask-2023.2.0-pyhd8ed1ab_0.conda + bokeh: '>=2.4.2,!=3.0.*' + cytoolz: '>=0.11.0' + dask-core: '>=2024.3.0,<2024.3.1.0a0' + dask-expr: '>=1.0,<1.1' + distributed: '>=2024.3.0,<2024.3.1.0a0' + jinja2: '>=2.10.3' + lz4: '>=4.3.2' + numpy: '>=1.21' + pandas: '>=1.3' + pyarrow: '>=7.0' + pyarrow-hotfix: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/dask-2024.3.0-pyhd8ed1ab_1.conda hash: - md5: c64c58bf99a686d8bdff8f9c4d33d615 - sha256: 8a0864a7ef94584f43be468d92f32a0f8a4ccab108b34168748c293847c51e67 + md5: 271447895d7d7f1bd28a74e6afc51be3 + sha256: 666cd081c8a33164aa2f20177cd2e3c952746936390f38558898269cf80cf8ed category: main optional: false - name: dask-core - version: 2024.1.1 + version: 2024.3.0 manager: conda platform: linux-64 dependencies: @@ -2615,29 +2664,60 @@ package: python: '>=3.9' pyyaml: '>=5.3.1' toolz: '>=0.10.0' - url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.3.0-pyhd8ed1ab_0.conda hash: - md5: 1a92a5bd77b2430796696e25c3d8dbcb - sha256: b9521f5fe75ec73b2be9227abd6d27e51d7d2698c614f46d4977e7135b003bef + md5: b6c573c271bf4c062873d7f3df97c3ba + sha256: b7c1514f0be3b447305440bad0d7cc5842f521d46b01788e1d9bbdbf623bc76a category: main optional: false - name: dask-core - version: 2023.2.0 + version: 2024.3.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - click: '>=7.0' + click: '>=8.1' + cloudpickle: '>=1.5.0' + fsspec: '>=2021.09.0' + importlib_metadata: '>=4.13.0' packaging: '>=20.0' + partd: '>=1.2.0' + python: '>=3.9' pyyaml: '>=5.3.1' - toolz: '>=0.8.2' - partd: '>=0.3.10' - fsspec: '>=0.6.0' - cloudpickle: '>=1.1.1' - url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.2.0-pyhd8ed1ab_0.conda + toolz: '>=0.10.0' + url: https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.3.0-pyhd8ed1ab_0.conda + hash: + md5: b6c573c271bf4c062873d7f3df97c3ba + sha256: b7c1514f0be3b447305440bad0d7cc5842f521d46b01788e1d9bbdbf623bc76a + category: main + optional: false +- name: dask-expr + version: 1.0.2 + manager: conda + platform: linux-64 + dependencies: + dask-core: 2024.3.0 + pandas: '>=2' + pyarrow: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.0.2-pyhd8ed1ab_0.conda + hash: + md5: 55fad7bd4735ae915926b7c14aed1d97 + sha256: 7d09a3b8499b3fb3f035977809959e212de669c4a4a0619e728e9f52a7bbc97b + category: main + optional: false +- name: dask-expr + version: 1.0.2 + manager: conda + platform: osx-arm64 + dependencies: + dask-core: 2024.3.0 + pandas: '>=2' + pyarrow: '' + python: '>=3.9' + url: https://conda.anaconda.org/conda-forge/noarch/dask-expr-1.0.2-pyhd8ed1ab_0.conda hash: - md5: 156fb994a4e07091c4fad2c148589eb2 - sha256: a88c3d56f1d4657cbd6265184b95a0191bfec10e870aa3f1483eca1f46e35ddc + md5: 55fad7bd4735ae915926b7c14aed1d97 + sha256: 7d09a3b8499b3fb3f035977809959e212de669c4a4a0619e728e9f52a7bbc97b category: main optional: false - name: databricks-cli @@ -2665,14 +2745,14 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' click: '>=7.0' - six: '>=1.10.0' - pyjwt: '>=1.7.0' - tabulate: '>=0.7.7' - requests: '>=2.17.3' configparser: '>=0.3.5' oauthlib: '>=3.1.0' + pyjwt: '>=1.7.0' + python: '>=3.7' + requests: '>=2.17.3' + six: '>=1.10.0' + tabulate: '>=0.7.7' urllib3: '>=1.26.7,<3' url: https://conda.anaconda.org/conda-forge/noarch/databricks-cli-0.18.0-pyhd8ed1ab_0.conda hash: @@ -2701,11 +2781,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - typing_inspect: '>=0.4.0' marshmallow: '>=3.3.0,<4.0.0' marshmallow-enum: '>=1.5.1,<2.0.0' + python: '>=3.6' stringcase: 1.2.0,<2.0.0 + typing_inspect: '>=0.4.0' url: https://conda.anaconda.org/conda-forge/noarch/dataclasses-json-0.5.7-pyhd8ed1ab_0.tar.bz2 hash: md5: 460d0446b90718c6b535bfe807eab1cd @@ -2713,57 +2793,57 @@ package: category: main optional: false - name: datasets - version: 2.16.1 + version: 2.18.0 manager: conda platform: linux-64 dependencies: aiohttp: '' - dill: '>=0.3.0,<0.3.8' - fsspec: '>=2023.1.0,<=2023.10.0' + dill: '>=0.3.0,<0.3.9' + filelock: '' + fsspec: '>=2023.1.0,<=2024.2.0' huggingface_hub: '>=0.19.4' - importlib-metadata: '' multiprocess: '' numpy: '>=1.17' packaging: '' pandas: '' - pyarrow: '>=8.0.0' + pyarrow: '>=12.0.0' pyarrow-hotfix: '' python: '>=3.8.0' python-xxhash: '' pyyaml: '>=5.1' requests: '>=2.19.0' tqdm: '>=4.62.1' - url: https://conda.anaconda.org/conda-forge/noarch/datasets-2.16.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/datasets-2.18.0-pyhd8ed1ab_0.conda hash: - md5: 99516e8430074c50911e058326eaa450 - sha256: ce835aeba2a2e987d6c5da996cf60d5d82a583ea903c410640382b45a00bbe43 + md5: 3482c9b417757df305ff4e3a7e4b7c10 + sha256: 2d792e6f8ecd3ac02921e13f0d5013f412c61d39bcbb8fad4a1f42d6cf6e7a53 category: main optional: false - name: datasets - version: 2.16.1 + version: 2.18.0 manager: conda platform: osx-arm64 dependencies: - pandas: '' - packaging: '' - importlib-metadata: '' aiohttp: '' - python-xxhash: '' + dill: '>=0.3.0,<0.3.9' + filelock: '' + fsspec: '>=2023.1.0,<=2024.2.0' + huggingface_hub: '>=0.19.4' multiprocess: '' + numpy: '>=1.17' + packaging: '' + pandas: '' + pyarrow: '>=12.0.0' pyarrow-hotfix: '' + python: '>=3.8.0' + python-xxhash: '' pyyaml: '>=5.1' - numpy: '>=1.17' - pyarrow: '>=8.0.0' requests: '>=2.19.0' - python: '>=3.8.0' tqdm: '>=4.62.1' - dill: '>=0.3.0,<0.3.8' - fsspec: '>=2023.1.0,<=2023.10.0' - huggingface_hub: '>=0.19.4' - url: https://conda.anaconda.org/conda-forge/noarch/datasets-2.16.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/datasets-2.18.0-pyhd8ed1ab_0.conda hash: - md5: 99516e8430074c50911e058326eaa450 - sha256: ce835aeba2a2e987d6c5da996cf60d5d82a583ea903c410640382b45a00bbe43 + md5: 3482c9b417757df305ff4e3a7e4b7c10 + sha256: 2d792e6f8ecd3ac02921e13f0d5013f412c61d39bcbb8fad4a1f42d6cf6e7a53 category: main optional: false - name: db-dtypes @@ -2787,11 +2867,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' - pandas: '>=0.24.2' + numpy: '>=1.16.6' packaging: '>=17.0' + pandas: '>=0.24.2' pyarrow: '>=3.0.0' - numpy: '>=1.16.6' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/db-dtypes-1.2.0-pyhd8ed1ab_0.conda hash: md5: d7dbb7a600bb820b5b7874b3a2a87990 @@ -2813,7 +2893,7 @@ package: category: main optional: false - name: debugpy - version: 1.8.0 + version: 1.8.1 manager: conda platform: linux-64 dependencies: @@ -2821,24 +2901,24 @@ package: libstdcxx-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.0-py39h3d6467e_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.1-py39h3d6467e_0.conda hash: - md5: 31e04f8c5eebb5306793482b5e0f8a78 - sha256: 804a293cdea90c8e95eb03ce2dfef14b0118c65fae9aff4326d8ce5e9a09bd7d + md5: d48142fba253b2a1074f8ddee84749cb + sha256: 17b1f8a3b4c4df1cf78ec1cdd46d53743ad9fe8bb34fa162dfaaee698f9a6864 category: main optional: false - name: debugpy - version: 1.8.0 + version: 1.8.1 manager: conda platform: osx-arm64 dependencies: - libcxx: '>=15.0.7' + libcxx: '>=16' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.0-py39hb198ff7_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.1-py39hf3050f2_0.conda hash: - md5: 69119da204eec5434903d22a62618b5c - sha256: cf1d778e659e848b0016d62d6661fdea7fe36f321c42902490bb242baa130651 + md5: ae2cf05cb8622294925f36417831f96e + sha256: 7d12db42e9ea189fd90c796af9a8b797084bc5fed1d5039ff16d5efa746efe59 category: main optional: false - name: decorator @@ -2890,27 +2970,27 @@ package: category: main optional: false - name: dill - version: 0.3.7 + version: 0.3.8 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda hash: - md5: 5e4f3466526c52bc9af2d2353a1460bd - sha256: 4ff20c6be028be2825235631c45d9e4a75bca1de65f8840c02dfb28ea0137c45 + md5: 78745f157d56877a2c6e7b386f66f3e2 + sha256: 482b5b566ca559119b504c53df12b08f3962a5ef8e48061d62fd58a47f8f2ec4 category: main optional: false - name: dill - version: 0.3.7 + version: 0.3.8 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.8-pyhd8ed1ab_0.conda hash: - md5: 5e4f3466526c52bc9af2d2353a1460bd - sha256: 4ff20c6be028be2825235631c45d9e4a75bca1de65f8840c02dfb28ea0137c45 + md5: 78745f157d56877a2c6e7b386f66f3e2 + sha256: 482b5b566ca559119b504c53df12b08f3962a5ef8e48061d62fd58a47f8f2ec4 category: main optional: false - name: diskcache @@ -2962,14 +3042,14 @@ package: category: main optional: false - name: distributed - version: 2024.1.1 + version: 2024.3.0 manager: conda platform: linux-64 dependencies: click: '>=8.0' cloudpickle: '>=1.5.0' cytoolz: '>=0.10.1' - dask-core: '>=2024.1.1,<2024.1.2.0a0' + dask-core: '>=2024.3.0,<2024.3.1.0a0' jinja2: '>=2.10.3' locket: '>=1.0.0' msgpack-python: '>=1.0.0' @@ -2983,38 +3063,62 @@ package: tornado: '>=6.0.4' urllib3: '>=1.24.3' zict: '>=3.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.3.0-pyhd8ed1ab_0.conda hash: - md5: 81039f39690f341dcb0a68bf62e812be - sha256: 097b27d3a2d79ef437711203d872da2cbb0b52610213c6f1dfa69c6142bab061 + md5: e4736ce580a5b289f7412f14ae8df42a + sha256: d13ee04cb06fa760b7b1fab4ce3b1d4bef37013daafb49aad6d28cb7c7dae906 category: main optional: false - name: distributed - version: 2023.2.0 + version: 2024.3.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - click: '>=7.0' - packaging: '>=20.0' - pyyaml: '>=5.3.1' + click: '>=8.0' cloudpickle: '>=1.5.0' - urllib3: '>=1.24.3' - msgpack-python: '>=1.0.0' - toolz: '>=0.10.0' + cytoolz: '>=0.10.1' + dask-core: '>=2024.3.0,<2024.3.1.0a0' jinja2: '>=2.10.3' - tblib: '>=1.6.0' locket: '>=1.0.0' - psutil: '>=5.7.0' - tornado: '>=6.0.3' + msgpack-python: '>=1.0.0' + packaging: '>=20.0' + psutil: '>=5.7.2' + python: '>=3.9' + pyyaml: '>=5.3.1' sortedcontainers: '>=2.0.5' - cytoolz: '>=0.10.0' - zict: '>=2.1.0' - dask-core: '>=2023.2.0,<2023.2.1.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/distributed-2023.2.0-pyhd8ed1ab_0.conda + tblib: '>=1.6.0' + toolz: '>=0.10.0' + tornado: '>=6.0.4' + urllib3: '>=1.24.3' + zict: '>=3.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/distributed-2024.3.0-pyhd8ed1ab_0.conda + hash: + md5: e4736ce580a5b289f7412f14ae8df42a + sha256: d13ee04cb06fa760b7b1fab4ce3b1d4bef37013daafb49aad6d28cb7c7dae906 + category: main + optional: false +- name: distro + version: 1.9.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda + hash: + md5: bbdb409974cd6cb30071b1d978302726 + sha256: ae1c13d709c8001331b5b9345e4bcd77e9ae712d25f7958b2ebcbe0b068731b7 + category: main + optional: false +- name: distro + version: 1.9.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda hash: - md5: 908e176bdb542b900f1c044bac70683b - sha256: 5551a2f3d05f3ca595ae93c3c59dbcda13fc0183d49dfb01c84bd482e7ae19a4 + md5: bbdb409974cd6cb30071b1d978302726 + sha256: ae1c13d709c8001331b5b9345e4bcd77e9ae712d25f7958b2ebcbe0b068731b7 category: main optional: false - name: docker-py @@ -3040,13 +3144,13 @@ package: manager: conda platform: osx-arm64 dependencies: - pywin32-on-windows: '' + packaging: '>=14.0' + paramiko: '>=2.4.3' python: '>=3.7' + pywin32-on-windows: '' requests: '>=2.26.0' urllib3: '>=1.26.0' websocket-client: '>=0.32.0' - packaging: '>=14.0' - paramiko: '>=2.4.3' url: https://conda.anaconda.org/conda-forge/noarch/docker-py-6.1.3-pyhd8ed1ab_0.conda hash: md5: c95d23d8bae7e21491868cc7772d7c73 @@ -3054,27 +3158,27 @@ package: category: main optional: false - name: docstring_parser - version: '0.15' + version: '0.16' manager: conda platform: linux-64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/docstring_parser-0.15-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/docstring_parser-0.16-pyhd8ed1ab_0.conda hash: - md5: 031fcb28b8e80c1f7bec22ccdf4904b2 - sha256: 9b22e1f1d0decc26cc0743ce929e1a7e233fd7921d1b5c390db0691b8042a706 + md5: 1541834779ec03de593eb3c35f393632 + sha256: da4fcb232504392344a2ddae6863cbbbbf2a876ddd6d00c8f1dfcdefc29f7f2a category: main optional: false - name: docstring_parser - version: '0.15' + version: '0.16' manager: conda platform: osx-arm64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/docstring_parser-0.15-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/docstring_parser-0.16-pyhd8ed1ab_0.conda hash: - md5: 031fcb28b8e80c1f7bec22ccdf4904b2 - sha256: 9b22e1f1d0decc26cc0743ce929e1a7e233fd7921d1b5c390db0691b8042a706 + md5: 1541834779ec03de593eb3c35f393632 + sha256: da4fcb232504392344a2ddae6863cbbbbf2a876ddd6d00c8f1dfcdefc29f7f2a category: main optional: false - name: docutils @@ -3176,32 +3280,32 @@ package: category: main optional: false - name: expat - version: 2.5.0 + version: 2.6.2 manager: conda platform: linux-64 dependencies: - libexpat: 2.5.0 + libexpat: 2.6.2 libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda hash: - md5: 8b9b5aca60558d02ddaa09d599e55920 - sha256: 36dfeb4375059b3bba75ce9b38c29c69fd257342a79e6cf20e9f25c1523f785f + md5: 53fb86322bdb89496d7579fe3f02fd61 + sha256: 89916c536ae5b85bb8bf0cfa27d751e274ea0911f04e4a928744735c14ef5155 category: main optional: false - name: expat - version: 2.5.0 + version: 2.6.2 manager: conda platform: osx-arm64 dependencies: - libexpat: 2.5.0 - url: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.5.0-hb7217d7_1.conda + libexpat: 2.6.2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/expat-2.6.2-hebf3989_0.conda hash: - md5: 624fa0dd6fdeaa650b71a62296fdfedf - sha256: 9f06afbe4604decf6a2e8e7e87f5ca218a3e9049d57d5b3fcd538ca6240d21a0 + md5: de0cff0ec74f273c4b6aa281479906c3 + sha256: 9ac22553a4d595d7e4c9ca9aa09a0b38da65314529a7a7008edc73d3f9e7904a category: main optional: false - name: fastavro - version: 1.9.3 + version: 1.9.4 manager: conda platform: linux-64 dependencies: @@ -3209,24 +3313,24 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* pytz: '' - url: https://conda.anaconda.org/conda-forge/linux-64/fastavro-1.9.3-py39hd1e30aa_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/fastavro-1.9.4-py39hd1e30aa_0.conda hash: - md5: c3ace3a23beb653d3d3575fef56bf009 - sha256: 0c133b55206a64f6ea89105d7d946554ad27f967f7ad3f967d74f732a0c5793f + md5: d8978b7abb07cccb145a2f26518841a5 + sha256: d60e58580c4202d1f1787c8fe1cdc783e297ebb192aaf89cc84b29eb348ea224 category: main optional: false - name: fastavro - version: 1.9.3 + version: 1.9.4 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* pytz: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/fastavro-1.9.3-py39h17cfd9d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/fastavro-1.9.4-py39h17cfd9d_0.conda hash: - md5: 8579c8c7faf69742670ace1605dd8d27 - sha256: a6c73461740cbfcdb62b7cdeb740e2821cb515132e5fda0a8054ffba325099ec + md5: 4ea9f7f6fe7164403b8c5d335e4036ca + sha256: 2b28b62773ffce6b3926d5c866e564e45f7c6946741241c75e754940a4560a36 category: main optional: false - name: filelock @@ -3254,54 +3358,54 @@ package: category: main optional: false - name: fiona - version: 1.9.5 + version: 1.9.6 manager: conda platform: linux-64 dependencies: attrs: '>=19.2.0' + certifi: '' click: '>=8.0,<9.dev0' click-plugins: '>=1.0' cligj: '>=0.5' gdal: '' importlib-metadata: '' libgcc-ng: '>=12' - libgdal: '>=3.8.2,<3.9.0a0' + libgdal: '>=3.8.4,<3.9.0a0' libstdcxx-ng: '>=12' numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - setuptools: '' shapely: '' six: '' - url: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.5-py39hcfcd403_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.6-py39hcfcd403_0.conda hash: - md5: 4cbedb0d1f0add97a71a9482c15a8122 - sha256: fa3e5ff7c316a94bc8b3f6ebf61c28421a0c339a4318af1b754bfe5b05144508 + md5: 37555ce3fc10c4edc5b5a063bc6449aa + sha256: 89e29d589bd8f749471a7286cfd275f6b27c37bdf7b87a2f81bac24c025018d3 category: main optional: false - name: fiona - version: 1.9.5 + version: 1.9.6 manager: conda platform: osx-arm64 dependencies: attrs: '>=19.2.0' + certifi: '' click: '>=8.0,<9.dev0' click-plugins: '>=1.0' cligj: '>=0.5' gdal: '' importlib-metadata: '' - libcxx: '>=15' - libgdal: '>=3.8.2,<3.9.0a0' + libcxx: '>=16' + libgdal: '>=3.8.4,<3.9.0a0' numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - setuptools: '' shapely: '' six: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.9.5-py39h97e6c39_3.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.9.6-py39h97e6c39_0.conda hash: - md5: aa93d96a2e30536aa523a3fbd2c0225f - sha256: 7e9223d6d2bfb98e94e3415ad9f7a77a7d187e416a3158f354a5f77c0cf24833 + md5: fb93009e38c4555de317ad0c9a50d04a + sha256: 3215709fc32d55092f7e640b4ce6db06360ab8fd322981f1c38d6a19ea0851c5 category: main optional: false - name: flask @@ -3327,12 +3431,12 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' + blinker: '>=1.6.2' click: '>=8.1.3' - jinja2: '>=3.1.2' importlib-metadata: '>=3.6.0' itsdangerous: '>=2.1.2' - blinker: '>=1.6.2' + jinja2: '>=3.1.2' + python: '>=3.8' werkzeug: '>=2.3.7' url: https://conda.anaconda.org/conda-forge/noarch/flask-2.3.3-pyhd8ed1ab_0.conda hash: @@ -3366,41 +3470,41 @@ package: category: main optional: false - name: flyteidl - version: 1.10.6 + version: 1.11.0 manager: conda platform: linux-64 dependencies: googleapis-common-protos: '' protobuf: '>=4.21.1,<5.0.0' - protoc-gen-swagger: '' + protoc-gen-openapiv2: '' python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/flyteidl-1.10.6-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/flyteidl-1.11.0-pyhd8ed1ab_0.conda hash: - md5: 94aef87e09529f57d4454d64f67ade17 - sha256: 2b3db247e15ae613248afceae3b3c291125a21c0220082a260babbf7b061d095 + md5: 131db08709c41ff9dcb9d9a9d0b1b06c + sha256: 20bdb20e0cecfc3ac3c55a435f5be794f87497984fc8a25ae1c9378e8f11fa5d category: main optional: false - name: flyteidl - version: 1.10.6 + version: 1.11.0 manager: conda platform: osx-arm64 dependencies: googleapis-common-protos: '' - protoc-gen-swagger: '' - python: '>=3.8' protobuf: '>=4.21.1,<5.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/flyteidl-1.10.6-pyhd8ed1ab_0.conda + protoc-gen-openapiv2: '' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/flyteidl-1.11.0-pyhd8ed1ab_0.conda hash: - md5: 94aef87e09529f57d4454d64f67ade17 - sha256: 2b3db247e15ae613248afceae3b3c291125a21c0220082a260babbf7b061d095 + md5: 131db08709c41ff9dcb9d9a9d0b1b06c + sha256: 20bdb20e0cecfc3ac3c55a435f5be794f87497984fc8a25ae1c9378e8f11fa5d category: main optional: false - name: flytekit - version: 1.10.2 + version: 1.11.0 manager: conda platform: linux-64 dependencies: - adlfs: '' + adlfs: '>=2023.3.0' click: '>=6.6,<9.0' cloudpickle: '>=2.0.0' cookiecutter: '>=1.7.3' @@ -3409,122 +3513,122 @@ package: diskcache: '>=5.2.1' docker-py: '>=4.0.0,<7.0.0' docstring_parser: '>=0.9.0' - flyteidl: '>=1.10.0' - fsspec: '>=2023.3.0,<=2023.9.2' - gcsfs: '' + flyteidl: '>=1.11.0b1' + fsspec: '>=2023.3.0' + gcsfs: '>=2023.3.0' googleapis-common-protos: '>=1.57' grpcio: '' grpcio-status: '' importlib-metadata: '' + isodate: '' joblib: '' jsonpickle: '' keyring: '>=18.0.1' + markdown-it-py: '' marshmallow-enum: '' marshmallow-jsonschema: '>=0.12.0' mashumaro: '>=3.9.1' - numpy: '' - pandas: '>=1.0.0,<2.0.0' - protobuf: <4.25.0 - pyarrow: '>=4.0.0' + protobuf: '!=4.25.0' + pyarrow: '' + pygments: '' python: '>=3.8,<3.12' python-json-logger: '>=2.0.0' - python-kubernetes: '>=12.0.1' pytimeparse: '>=1.1.8,<2.0.0' pyyaml: '!=6.0.0,!=5.4.0,!=5.4.1' requests: '>=2.18.4,<3.0.0' rich: '' rich-click: '' - s3fs: '>=0.6.0' + s3fs: '>=2023.3.0' statsd: '>=3.0.0,<4.0.0' typing-extensions: '' urllib3: '>=1.22,<2.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/flytekit-1.10.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/flytekit-1.11.0-pyhd8ed1ab_0.conda hash: - md5: 02846f149ea2ccc8d579e4bf28e86dcf - sha256: 827316c5fe11b43f7c3b0ed74d92f3faf36a7dfd4f33091421e209a0ad544ee9 + md5: acf5fdc7bc5aeed83f7f8500b02d68d5 + sha256: 2df4e56f582f1e9800f7fc304c043b0165d989fae705ac82875e82f04d0d0d18 category: main optional: false - name: flytekit - version: 1.10.2 + version: 1.11.0 manager: conda platform: osx-arm64 dependencies: - numpy: '' - typing-extensions: '' - importlib-metadata: '' - joblib: '' - rich: '' - gcsfs: '' - jsonpickle: '' - grpcio: '' - adlfs: '' - rich-click: '' - grpcio-status: '' - marshmallow-enum: '' - python: '>=3.8,<3.12' - diskcache: '>=5.2.1' - pyarrow: '>=4.0.0' - pandas: '>=1.0.0,<2.0.0' - python-json-logger: '>=2.0.0' + adlfs: '>=2023.3.0' + click: '>=6.6,<9.0' cloudpickle: '>=2.0.0' - python-kubernetes: '>=12.0.1' cookiecutter: '>=1.7.3' croniter: '>=0.3.20,<4.0.0' + dataclasses-json: '>=0.5.2,<0.5.12' + diskcache: '>=5.2.1' + docker-py: '>=4.0.0,<7.0.0' docstring_parser: '>=0.9.0' + flyteidl: '>=1.11.0b1' + fsspec: '>=2023.3.0' + gcsfs: '>=2023.3.0' + googleapis-common-protos: '>=1.57' + grpcio: '' + grpcio-status: '' + importlib-metadata: '' + isodate: '' + joblib: '' + jsonpickle: '' keyring: '>=18.0.1' + markdown-it-py: '' + marshmallow-enum: '' marshmallow-jsonschema: '>=0.12.0' + mashumaro: '>=3.9.1' + protobuf: '!=4.25.0' + pyarrow: '' + pygments: '' + python: '>=3.8,<3.12' + python-json-logger: '>=2.0.0' pytimeparse: '>=1.1.8,<2.0.0' + pyyaml: '!=6.0.0,!=5.4.0,!=5.4.1' requests: '>=2.18.4,<3.0.0' + rich: '' + rich-click: '' + s3fs: '>=2023.3.0' statsd: '>=3.0.0,<4.0.0' + typing-extensions: '' urllib3: '>=1.22,<2.0.0' - click: '>=6.6,<9.0' - googleapis-common-protos: '>=1.57' - docker-py: '>=4.0.0,<7.0.0' - s3fs: '>=0.6.0' - pyyaml: '!=6.0.0,!=5.4.0,!=5.4.1' - dataclasses-json: '>=0.5.2,<0.5.12' - fsspec: '>=2023.3.0,<=2023.9.2' - mashumaro: '>=3.9.1' - flyteidl: '>=1.10.0' - protobuf: <4.25.0 - url: https://conda.anaconda.org/conda-forge/noarch/flytekit-1.10.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/flytekit-1.11.0-pyhd8ed1ab_0.conda hash: - md5: 02846f149ea2ccc8d579e4bf28e86dcf - sha256: 827316c5fe11b43f7c3b0ed74d92f3faf36a7dfd4f33091421e209a0ad544ee9 + md5: acf5fdc7bc5aeed83f7f8500b02d68d5 + sha256: 2df4e56f582f1e9800f7fc304c043b0165d989fae705ac82875e82f04d0d0d18 category: main optional: false - name: folium - version: 0.15.1 + version: 0.16.0 manager: conda platform: linux-64 dependencies: - branca: '>=0.7.0' + branca: '>=0.6.0' jinja2: '>=2.9' numpy: '' python: '>=3.7' requests: '' xyzservices: '' - url: https://conda.anaconda.org/conda-forge/noarch/folium-0.15.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/folium-0.16.0-pyhd8ed1ab_0.conda hash: - md5: 4fdfc338f6fb875b1078a7e20dbc99e2 - sha256: c0730ddfaf35e39ac92b7fd07315843e7948b2ce3361d164ec1b722dd0440c2b + md5: cb1d2aa705a5b1f0fbdabd1beebce205 + sha256: 9696ffafd873a40815312e9ea245a863b7796b73dd2759f93174cd65d6bf2144 category: main optional: false - name: folium - version: 0.15.1 + version: 0.16.0 manager: conda platform: osx-arm64 dependencies: + branca: '>=0.6.0' + jinja2: '>=2.9' numpy: '' + python: '>=3.7' requests: '' xyzservices: '' - python: '>=3.7' - jinja2: '>=2.9' - branca: '>=0.7.0' - url: https://conda.anaconda.org/conda-forge/noarch/folium-0.15.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/folium-0.16.0-pyhd8ed1ab_0.conda hash: - md5: 4fdfc338f6fb875b1078a7e20dbc99e2 - sha256: c0730ddfaf35e39ac92b7fd07315843e7948b2ce3361d164ec1b722dd0440c2b + md5: cb1d2aa705a5b1f0fbdabd1beebce205 + sha256: 9696ffafd873a40815312e9ea245a863b7796b73dd2759f93174cd65d6bf2144 category: main optional: false - name: font-ttf-dejavu-sans-mono @@ -3689,10 +3793,10 @@ package: manager: conda platform: osx-arm64 dependencies: + font-ttf-dejavu-sans-mono: '' font-ttf-inconsolata: '' font-ttf-source-code-pro: '' font-ttf-ubuntu: '' - font-ttf-dejavu-sans-mono: '' url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 hash: md5: f766549260d6815b0c52253f1fb1bb29 @@ -3700,7 +3804,7 @@ package: category: main optional: false - name: fonttools - version: 4.47.2 + version: 4.49.0 manager: conda platform: linux-64 dependencies: @@ -3710,14 +3814,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* unicodedata2: '>=14.0.0' - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.2-py39hd1e30aa_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.49.0-py39hd1e30aa_0.conda hash: - md5: 4e2b802b69be81944fdcd71018b74226 - sha256: f0834381dcabbaa5df8124bee63c6e26c642000a6f3fe80f521b3c95b1342f27 + md5: dd1b02484cc8c31d4093111a82b6efb2 + sha256: 142a8d3288855101804d0c0d2a998dbca1b56c0d9e0e745cbee86878baaac2ea category: main optional: false - name: fonttools - version: 4.47.2 + version: 4.49.0 manager: conda platform: osx-arm64 dependencies: @@ -3726,10 +3830,10 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* unicodedata2: '>=14.0.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.47.2-py39h17cfd9d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.49.0-py39h17cfd9d_0.conda hash: - md5: cb2b258b7d021ac1e9692e16909a435f - sha256: 3ad5d03952cb87c70d008ac5e4ee15aecd3f66a8fda906a346419ff275826bb9 + md5: 0ea078a1395ab6ddc465e755fe6273ac + sha256: 765f5f689df8ff4bf888b0434e50bf426dcf869c9537dab05678e96a863b2685 category: main optional: false - name: fqdn @@ -3892,27 +3996,27 @@ package: category: main optional: false - name: fsspec - version: 2023.9.2 + version: 2024.2.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.9.2-pyh1a96a4e_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.2.0-pyhca7485f_0.conda hash: - md5: 9d15cd3a0e944594ab528da37dc72ecc - sha256: d95d11d1f501cb69528bb2b620b728f12caf872cb23837bc9bdd6ef405b4ecfb + md5: fad86b90138cf5d82c6f5a2ed6e683d9 + sha256: 3f7e123dd82fe99450d1e0ffa389e8218ef8c9ee257c836e21b489548c039ae6 category: main optional: false - name: fsspec - version: 2023.9.2 + version: 2024.2.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.9.2-pyh1a96a4e_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.2.0-pyhca7485f_0.conda hash: - md5: 9d15cd3a0e944594ab528da37dc72ecc - sha256: d95d11d1f501cb69528bb2b620b728f12caf872cb23837bc9bdd6ef405b4ecfb + md5: fad86b90138cf5d82c6f5a2ed6e683d9 + sha256: 3f7e123dd82fe99450d1e0ffa389e8218ef8c9ee257c836e21b489548c039ae6 category: main optional: false - name: furo @@ -3940,11 +4044,11 @@ package: dependencies: beautifulsoup4: '' myst-parser: '' - sphinx-inline-tabs: '' - sphinx-basic-ng: '' - python: '>=3.6' pygments: '>=2.7' + python: '>=3.6' sphinx: '>=4' + sphinx-basic-ng: '' + sphinx-inline-tabs: '' url: https://conda.anaconda.org/conda-forge/noarch/furo-2023.5.20-pyhd8ed1ab_0.conda hash: md5: 786e474a83de249aecf767102d7fd87d @@ -3952,27 +4056,27 @@ package: category: main optional: false - name: future - version: 0.18.3 + version: 1.0.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/future-0.18.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda hash: - md5: fec8329fc739090f26a7d7803db254f1 - sha256: b3d34bf4924cb80363c1ab57ac821393f118ffaa94f05368bf4044941163b65e + md5: 650a7807e689642dddd3590eb817beed + sha256: 8c918a63595ae01575b738ddf0bff10dc23a5002d4af4c8b445d1179a76a8efd category: main optional: false - name: future - version: 0.18.3 + version: 1.0.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/future-0.18.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda hash: - md5: fec8329fc739090f26a7d7803db254f1 - sha256: b3d34bf4924cb80363c1ab57ac821393f118ffaa94f05368bf4044941163b65e + md5: 650a7807e689642dddd3590eb817beed + sha256: 8c918a63595ae01575b738ddf0bff10dc23a5002d4af4c8b445d1179a76a8efd category: main optional: false - name: gast @@ -4000,80 +4104,80 @@ package: category: main optional: false - name: gcsfs - version: 2023.9.2 + version: 2024.2.0 manager: conda platform: linux-64 dependencies: aiohttp: '' decorator: '>4.1.2' - fsspec: 2023.9.2 + fsspec: 2024.2.0 google-auth: '>=1.2' google-auth-oauthlib: '' google-cloud-storage: '>1.40' python: '>=3.7' requests: '' - url: https://conda.anaconda.org/conda-forge/noarch/gcsfs-2023.9.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/gcsfs-2024.2.0-pyhd8ed1ab_0.conda hash: - md5: c9deedf93585c3d5ce5525a89bf7287e - sha256: 54a7de26739f764159e7799b83a7b4c135e684c5220a9ca853e7cfe2b6d636f6 + md5: babf81bf8ff3af8bd8ad83ed5b9603a4 + sha256: eeb396cfaa15eecb1ec34d44801df8b6036c3b4beacf13d08d038f87e8d451e8 category: main optional: false - name: gcsfs - version: 2023.9.2 + version: 2024.2.0 manager: conda platform: osx-arm64 dependencies: - requests: '' aiohttp: '' - google-auth-oauthlib: '' - python: '>=3.7' - google-auth: '>=1.2' decorator: '>4.1.2' + fsspec: 2024.2.0 + google-auth: '>=1.2' + google-auth-oauthlib: '' google-cloud-storage: '>1.40' - fsspec: 2023.9.2 - url: https://conda.anaconda.org/conda-forge/noarch/gcsfs-2023.9.2-pyhd8ed1ab_0.conda + python: '>=3.7' + requests: '' + url: https://conda.anaconda.org/conda-forge/noarch/gcsfs-2024.2.0-pyhd8ed1ab_0.conda hash: - md5: c9deedf93585c3d5ce5525a89bf7287e - sha256: 54a7de26739f764159e7799b83a7b4c135e684c5220a9ca853e7cfe2b6d636f6 + md5: babf81bf8ff3af8bd8ad83ed5b9603a4 + sha256: eeb396cfaa15eecb1ec34d44801df8b6036c3b4beacf13d08d038f87e8d451e8 category: main optional: false - name: gdal - version: 3.8.3 + version: 3.8.4 manager: conda platform: linux-64 dependencies: hdf5: '>=1.14.3,<1.14.4.0a0' libgcc-ng: '>=12' - libgdal: 3.8.3 + libgdal: 3.8.4 libstdcxx-ng: '>=12' - libxml2: '>=2.12.3,<3.0.0a0' + libxml2: '>=2.12.5,<3.0a0' numpy: '>=1.22.4,<2.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.8.3-py39h14df8fe_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gdal-3.8.4-py39he9866c7_0.conda hash: - md5: 9f556acdeaf436764dfc23a43de35864 - sha256: 449306555264d3bdfd3af16f3ad48541da5755ddeb1b9694b476830f05ca20aa + md5: 43d464d6710f81b189dfe84fe7b62af4 + sha256: 64d5b859a4b10a45a0a7eab22e8143f178d9a44f935c8aa32ee75d6111a0b5f9 category: main optional: false - name: gdal - version: 3.8.3 + version: 3.8.4 manager: conda platform: osx-arm64 dependencies: hdf5: '>=1.14.3,<1.14.4.0a0' - libcxx: '>=15' - libgdal: 3.8.3 - libxml2: '>=2.12.3,<3.0.0a0' + libcxx: '>=16' + libgdal: 3.8.4 + libxml2: '>=2.12.5,<3.0a0' numpy: '>=1.22.4,<2.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.8.3-py39h46f8cc7_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/gdal-3.8.4-py39hbdf0d01_0.conda hash: - md5: 3b0371ffadf43f722814a003a6530b6d - sha256: 948a26e95fec4eb6f4e473c1c38ea8ea77b0a5b2c25faabfe095d9973088abcb + md5: c3cabe605daca9c837cb749824f0b7d7 + sha256: 5bfcd01360bd0961c9af7c54696e2d15d6f25f5604bd6cef9ac69761426b9b60 category: main optional: false - name: gdk-pixbuf @@ -4081,16 +4185,14 @@ package: manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=12' - libglib: '>=2.78.0,<3.0a0' + libglib: '>=2.78.4,<3.0a0' libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.39,<1.7.0a0' + libpng: '>=1.6.43,<1.7.0a0' libtiff: '>=4.6.0,<4.7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h829c605_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h829c605_5.conda hash: - md5: 252a696860674caf7a855e16f680d63a - sha256: 884992d0665a0a5c728943d99b5fba30fd6911bb84eee622fa7ad8a4fa9f6cf7 + md5: 8fdb82e5d9694dd8e9ed9ac8fdf48a26 + sha256: bacd1cc3ed77699dec11ea5a670160db3cf701f1b19f34f1a19be36cae25c396 category: main optional: false - name: gdk-pixbuf @@ -4098,15 +4200,14 @@ package: manager: conda platform: osx-arm64 dependencies: - libglib: '>=2.78.0,<3.0a0' + libglib: '>=2.78.4,<3.0a0' libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.39,<1.7.0a0' + libpng: '>=1.6.43,<1.7.0a0' libtiff: '>=4.6.0,<4.7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.42.10-h15fa40c_4.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.42.10-hcea6d13_5.conda hash: - md5: ed5cfaa924087471c439d94a0e393364 - sha256: d0ec06b17a6c9aa13e56b7ce188b061ffb11f5e964cade7e4757156dca2aa5a7 + md5: bbf4bb664dedbec6d3a8fb8b6d90b710 + sha256: 1259c6a32269074b85e870a2afaa426f96cba6ebad547c3e152c941e46036e3a category: main optional: false - name: geopandas @@ -4129,22 +4230,22 @@ package: category: main optional: false - name: geopandas - version: 0.13.2 + version: 0.14.3 manager: conda platform: osx-arm64 dependencies: + fiona: '>=1.8.21' + folium: '' + geopandas-base: 0.14.3 + mapclassify: '>=2.4.0' matplotlib-base: '' + python: '>=3.9' rtree: '' - folium: '' xyzservices: '' - python: '>=3.8' - mapclassify: '>=2.4.0' - fiona: '>=1.8.19' - geopandas-base: 0.13.2 - url: https://conda.anaconda.org/conda-forge/noarch/geopandas-0.13.2-pyhd8ed1ab_1.conda + url: https://conda.anaconda.org/conda-forge/noarch/geopandas-0.14.3-pyhd8ed1ab_0.conda hash: - md5: 47226a55e4ae3bc9feb3a17925874817 - sha256: 789415051d8b7342f65342fa0270eb8bdc3131e841fdd8892f3efad335dc6bb5 + md5: d8e208e375441bf1404e9693f13f3c25 + sha256: 15bdc3d85ffa9c6601f57dd5e2780dbcbe52ca5da70164fb5bb1bb4c72b92010 category: main optional: false - name: geopandas-base @@ -4164,19 +4265,19 @@ package: category: main optional: false - name: geopandas-base - version: 0.13.2 + version: 0.14.3 manager: conda platform: osx-arm64 dependencies: packaging: '' - python: '>=3.8' - pandas: '>=1.1.0' - shapely: '>=1.7.1' - pyproj: '>=3.0.1' - url: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-0.13.2-pyha770c72_1.conda + pandas: '>=1.4.0' + pyproj: '>=3.3.0' + python: '>=3.9' + shapely: '>=1.8.0' + url: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-0.14.3-pyha770c72_0.conda hash: - md5: c6036236caae7d8ac684c41c64073b9e - sha256: fc1442a799f837961c3423466ac5f7c84d49b295c76290a7983dab903546a5a7 + md5: fbac4b2194c962b97324a3f5dd7d2696 + sha256: 0a8fb5a368d19fd08f7f65dfcff563322cb34e47947cabab8fc7f187d9bc9269 category: main optional: false - name: geos @@ -4340,31 +4441,31 @@ package: category: main optional: false - name: gitpython - version: 3.1.41 + version: 3.1.42 manager: conda platform: linux-64 dependencies: gitdb: '>=4.0.1,<5' python: '>=3.7' typing_extensions: '>=3.7.4.3' - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.41-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.42-pyhd8ed1ab_0.conda hash: - md5: 84874a90c312088f7b5e63402fc44a58 - sha256: cf3c45156feec1fe8adfd3552ed70f4218e9771643cca8dd2673bca9dea04c9c + md5: 6bc8e496351bafd761c0922c3ebd989a + sha256: a11e1cf4404157467d0f51906d1db80bcb8bfe4bb3d3eba703b28e981ea7e308 category: main optional: false - name: gitpython - version: 3.1.41 + version: 3.1.42 manager: conda platform: osx-arm64 dependencies: + gitdb: '>=4.0.1,<5' python: '>=3.7' typing_extensions: '>=3.7.4.3' - gitdb: '>=4.0.1,<5' - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.41-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.42-pyhd8ed1ab_0.conda hash: - md5: 84874a90c312088f7b5e63402fc44a58 - sha256: cf3c45156feec1fe8adfd3552ed70f4218e9771643cca8dd2673bca9dea04c9c + md5: 6bc8e496351bafd761c0922c3ebd989a + sha256: a11e1cf4404157467d0f51906d1db80bcb8bfe4bb3d3eba703b28e981ea7e308 category: main optional: false - name: glog @@ -4401,10 +4502,10 @@ package: dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-h59595ed_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-h59595ed_1.conda hash: - md5: 0e33ef437202db431aa5a928248cf2e8 - sha256: 2a50495b6bbbacb03107ea0b752d8358d4a40b572d124a8cade068c147f344f5 + md5: e358c7c5f6824c272b5034b3816438a7 + sha256: cfc4202c23d6895d9c84042d08d5cda47d597772df870d4d2a10fc86dded5576 category: main optional: false - name: gmp @@ -4412,12 +4513,11 @@ package: manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' - libcxx: '>=16.0.6' - url: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h965bd2d_0.conda + libcxx: '>=16' + url: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-hebf3989_1.conda hash: - md5: bb8f17b25ebdb9d8819c2c5bf3ccb180 - sha256: d13f09ba46dc4732a3513da76da2352b9a6b71376dc3ba8210bbf1ca0c2e51e3 + md5: 64f45819921ba710398706e1a6404eb5 + sha256: 0ed5aff70675dc0ed5c2f39bb02b908b864e8eee4ceb56e1c798ba8d7509551f category: main optional: false - name: gmpy2 @@ -4454,7 +4554,7 @@ package: category: main optional: false - name: google-api-core - version: 2.16.1 + version: 2.17.1 manager: conda platform: linux-64 dependencies: @@ -4463,58 +4563,58 @@ package: protobuf: '>=3.19.5,<5.0.0.dev0,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' python: '>=3.7' requests: '>=2.18.0,<3.0.0.dev0' - url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.16.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.17.1-pyhd8ed1ab_0.conda hash: - md5: ba1b4d187955032ffcfa6352c7195725 - sha256: a97adfa4e587ac2f6fd69f4ea0b35be4449ecb17fd5895145d5347fb746e1d25 + md5: b505c957ab68e07800aaba6287ca008e + sha256: a92bf55d70fe4868c7c50163ed876939028ba3a2b513c5742282d8fc12a61074 category: main optional: false - name: google-api-core - version: 2.16.1 + version: 2.17.1 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' google-auth: '>=2.14.1,<3.0.dev0' googleapis-common-protos: '>=1.56.2,<2.0.dev0' protobuf: '>=3.19.5,<5.0.0.dev0,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' + python: '>=3.7' requests: '>=2.18.0,<3.0.0.dev0' - url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.16.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.17.1-pyhd8ed1ab_0.conda hash: - md5: ba1b4d187955032ffcfa6352c7195725 - sha256: a97adfa4e587ac2f6fd69f4ea0b35be4449ecb17fd5895145d5347fb746e1d25 + md5: b505c957ab68e07800aaba6287ca008e + sha256: a92bf55d70fe4868c7c50163ed876939028ba3a2b513c5742282d8fc12a61074 category: main optional: false - name: google-api-core-grpc - version: 2.16.1 + version: 2.17.1 manager: conda platform: linux-64 dependencies: - google-api-core: 2.16.1 + google-api-core: 2.17.1 grpcio: '>=1.49.1,<2.0.dev0' grpcio-status: '>=1.49.1,<2.0.dev0' - url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-grpc-2.16.1-hd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-grpc-2.17.1-hd8ed1ab_0.conda hash: - md5: 0b2c1310eafb68277a2a0db9bd5bdbb9 - sha256: 24843e06d9f2b4ff3c904c59ff2f2a417ce797858c26ac8370bf332e2e8063bf + md5: 9dcac80e562d6471fdbc234604dab09c + sha256: f86d21641f1d44c67a81cfa68aca0031c762aaef7220f4ebca161f0455625c2c category: main optional: false - name: google-api-core-grpc - version: 2.16.1 + version: 2.17.1 manager: conda platform: osx-arm64 dependencies: + google-api-core: 2.17.1 grpcio: '>=1.49.1,<2.0.dev0' grpcio-status: '>=1.49.1,<2.0.dev0' - google-api-core: 2.16.1 - url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-grpc-2.16.1-hd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-api-core-grpc-2.17.1-hd8ed1ab_0.conda hash: - md5: 0b2c1310eafb68277a2a0db9bd5bdbb9 - sha256: 24843e06d9f2b4ff3c904c59ff2f2a417ce797858c26ac8370bf332e2e8063bf + md5: 9dcac80e562d6471fdbc234604dab09c + sha256: f86d21641f1d44c67a81cfa68aca0031c762aaef7220f4ebca161f0455625c2c category: main optional: false - name: google-auth - version: 2.27.0 + version: 2.28.2 manager: conda platform: linux-64 dependencies: @@ -4527,30 +4627,30 @@ package: pyu2f: '>=0.1.5' requests: '>=2.20.0,<3.0.0' rsa: '>=3.1.4,<5' - url: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.27.0-pyhca7485f_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.28.2-pyhca7485f_0.conda hash: - md5: 8c9223d9a28c81c1be6a5fccc8f5358e - sha256: c9adad5b13fae467b0748c3ad9c639d5224fedccbb7e4bdc46b90a44f8d7a70a + md5: f8879cf0e5b8f7761d01bce40ce7c089 + sha256: b1ccc8d5110092867c6f58e044248f55836848b06acea280138b1adcae690dff category: main optional: false - name: google-auth - version: 2.27.0 + version: 2.28.2 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' + aiohttp: '>=3.6.2,<4.0.0' + cachetools: '>=2.0.0,<6.0' + cryptography: '>=38.0.3' pyasn1-modules: '>=0.2.1' - rsa: '>=3.1.4,<5' pyopenssl: '>=20.0.0' + python: '>=3.7' pyu2f: '>=0.1.5' requests: '>=2.20.0,<3.0.0' - cachetools: '>=2.0.0,<6.0' - aiohttp: '>=3.6.2,<4.0.0' - cryptography: '>=38.0.3' - url: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.27.0-pyhca7485f_0.conda + rsa: '>=3.1.4,<5' + url: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.28.2-pyhca7485f_0.conda hash: - md5: 8c9223d9a28c81c1be6a5fccc8f5358e - sha256: c9adad5b13fae467b0748c3ad9c639d5224fedccbb7e4bdc46b90a44f8d7a70a + md5: f8879cf0e5b8f7761d01bce40ce7c089 + sha256: b1ccc8d5110092867c6f58e044248f55836848b06acea280138b1adcae690dff category: main optional: false - name: google-auth-oauthlib @@ -4573,10 +4673,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - requests-oauthlib: '>=0.7.0' click: '>=6.0.0' google-auth: '>=2.15.0' + python: '>=3.6' + requests-oauthlib: '>=0.7.0' url: https://conda.anaconda.org/conda-forge/noarch/google-auth-oauthlib-1.2.0-pyhd8ed1ab_0.conda hash: md5: 2057f12885a73b4d621c075423cec969 @@ -4584,13 +4684,13 @@ package: category: main optional: false - name: google-cloud-bigquery - version: 3.17.1 + version: 3.19.0 manager: conda platform: linux-64 dependencies: db-dtypes: '>=0.3.0,<2.0.0dev' geopandas: '>=0.9.0,<1.0dev' - google-cloud-bigquery-core: 3.17.1 + google-cloud-bigquery-core: 3.19.0 google-cloud-bigquery-storage: '>=2.6.0,<3.0.0dev' grpcio: '>=1.49.1,<2.0dev' ipykernel: '>=6.0.0' @@ -4603,72 +4703,74 @@ package: python: '>=3.8' shapely: '>=1.8.4,<3.0.0dev' tqdm: '>=4.7.4,<=5.0.0dev' - url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-3.17.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-3.19.0-pyhd8ed1ab_0.conda hash: - md5: 81c510cb122c86fde736d9e35c2db4f4 - sha256: 537f9cc40d83bfc4c10ddb10b5bb63d23cbfee6997e82e772f487ce6b3a1b1b5 + md5: dd4a8cca66b72bee53373e2926f1d39c + sha256: a134a103b50285e521eeaa5bffd6b0b7efb69e6ab2e15f46354105e0d6ede412 category: main optional: false - name: google-cloud-bigquery - version: 3.17.1 + version: 3.19.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - protobuf: '>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' - pandas: '>=1.1.0' - tqdm: '>=4.7.4,<=5.0.0dev' - proto-plus: '>=1.15.0,<2.0.0dev' - geopandas: '>=0.9.0,<1.0dev' - pyarrow: '>=3.0.0' db-dtypes: '>=0.3.0,<2.0.0dev' + geopandas: '>=0.9.0,<1.0dev' + google-cloud-bigquery-core: 3.19.0 + google-cloud-bigquery-storage: '>=2.6.0,<3.0.0dev' grpcio: '>=1.49.1,<2.0dev' - ipywidgets: '>=7.7.0' ipykernel: '>=6.0.0' ipython: '>=7.23.1,!=8.1.0' - google-cloud-bigquery-storage: '>=2.6.0,<3.0.0dev' + ipywidgets: '>=7.7.0' + pandas: '>=1.1.0' + proto-plus: '>=1.15.0,<2.0.0dev' + protobuf: '>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' + pyarrow: '>=3.0.0' + python: '>=3.8' shapely: '>=1.8.4,<3.0.0dev' - google-cloud-bigquery-core: 3.17.1 - url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-3.17.1-pyhd8ed1ab_0.conda + tqdm: '>=4.7.4,<=5.0.0dev' + url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-3.19.0-pyhd8ed1ab_0.conda hash: - md5: 81c510cb122c86fde736d9e35c2db4f4 - sha256: 537f9cc40d83bfc4c10ddb10b5bb63d23cbfee6997e82e772f487ce6b3a1b1b5 + md5: dd4a8cca66b72bee53373e2926f1d39c + sha256: a134a103b50285e521eeaa5bffd6b0b7efb69e6ab2e15f46354105e0d6ede412 category: main optional: false - name: google-cloud-bigquery-core - version: 3.17.1 + version: 3.19.0 manager: conda platform: linux-64 dependencies: - google-api-core: '>=1.31.5,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0' + google-api-core-grpc: '>=1.34.1,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*' + google-auth: '>=2.14.1,<3.0.0dev' google-cloud-core: '>=1.6.0,<3.0.0dev' google-resumable-media: '>=0.6.0,<3.0dev' packaging: '>=20.0.0' python: '>=3.8' python-dateutil: '>=2.7.2,<3.0dev' requests: '>=2.21.0,<3.0.0dev' - url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-core-3.17.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-core-3.19.0-pyhd8ed1ab_0.conda hash: - md5: 4a60cd48f748cd5864e5eeac17232c94 - sha256: c5830d27b5d1a97223ab1e22273c0f3dec5865bdba39a056e2ca90aa0f41a7c4 + md5: e9a57c9845bcbaf6df5cb006b399d690 + sha256: 910415a2a06c29585957638f83837c6f5fb7b901de27eebbebff1cceecbdd682 category: main optional: false - name: google-cloud-bigquery-core - version: 3.17.1 + version: 3.19.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' + google-api-core-grpc: '>=1.34.1,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*' + google-auth: '>=2.14.1,<3.0.0dev' + google-cloud-core: '>=1.6.0,<3.0.0dev' google-resumable-media: '>=0.6.0,<3.0dev' - google-api-core: '>=1.31.5,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0' + packaging: '>=20.0.0' + python: '>=3.8' python-dateutil: '>=2.7.2,<3.0dev' requests: '>=2.21.0,<3.0.0dev' - packaging: '>=20.0.0' - google-cloud-core: '>=1.6.0,<3.0.0dev' - url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-core-3.17.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-core-3.19.0-pyhd8ed1ab_0.conda hash: - md5: 4a60cd48f748cd5864e5eeac17232c94 - sha256: c5830d27b5d1a97223ab1e22273c0f3dec5865bdba39a056e2ca90aa0f41a7c4 + md5: e9a57c9845bcbaf6df5cb006b399d690 + sha256: 910415a2a06c29585957638f83837c6f5fb7b901de27eebbebff1cceecbdd682 category: main optional: false - name: google-cloud-bigquery-storage @@ -4692,11 +4794,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - pyarrow: '>=0.15.0' fastavro: '>=0.21.2' - pandas: '>=0.21.1' google-cloud-bigquery-storage-core: 2.24.0.* + pandas: '>=0.21.1' + pyarrow: '>=0.15.0' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-storage-2.24.0-pyhca7485f_0.conda hash: md5: 86a0630f1f8b18915d909503f17ca1e0 @@ -4723,10 +4825,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' + google-api-core-grpc: '>=1.34.0,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*' proto-plus: '>=1.22.0,<2.0.0dev' protobuf: '>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' - google-api-core-grpc: '>=1.34.0,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-bigquery-storage-core-2.24.0-pyhca7485f_0.conda hash: md5: 1d1a6f7938f1a29044e676d112c0b424 @@ -4753,10 +4855,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - google-auth: '>=1.25.0,<3.0dev' google-api-core: '>=1.31.6,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0' + google-auth: '>=1.25.0,<3.0dev' grpcio: '>=1.38.0,<2.0.0dev' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.4.1-pyhd8ed1ab_0.conda hash: md5: 1853cdebbfe25fb6ee253855a44945a6 @@ -4787,14 +4889,14 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - requests: '>=2.18.0,<3.0.0dev' google-api-core: '>=1.31.5,<3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0' + google-auth: '>=2.23.3,<3.0dev' google-cloud-core: '>=2.3.0,<3.0dev' google-crc32c: '>=1.0,<2.0dev' - protobuf: <5.0.0dev google-resumable-media: '>=2.6.0' - google-auth: '>=2.23.3,<3.0dev' + protobuf: <5.0.0dev + python: '>=3.6' + requests: '>=2.18.0,<3.0.0dev' url: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-2.14.0-pyhca7485f_0.conda hash: md5: 7b2a2b429fd0b5571544019a6814cfe4 @@ -4876,8 +4978,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' google-crc32c: '>=1.0,<2.0.0dev' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.7.0-pyhd8ed1ab_0.conda hash: md5: 28d1e160d8b2e405b16bb40773135225 @@ -4885,29 +4987,29 @@ package: category: main optional: false - name: googleapis-common-protos - version: 1.62.0 + version: 1.63.0 manager: conda platform: linux-64 dependencies: protobuf: '>=3.19.5,<5.0.0dev0,!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.62.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.63.0-pyhd8ed1ab_0.conda hash: - md5: ca3d0c7ba3a15e943d9c715aba03ae62 - sha256: 70da3fc08a742022c666d9807f0caba60be1ddbf09b6642c168001bace18c724 + md5: 058e77f4f0285aa4945c5539de931ff0 + sha256: 41d3eea46623836e2be7234bdbfc0e7a42fc0853229c687cea6d7b652bb4a4fa category: main optional: false - name: googleapis-common-protos - version: 1.62.0 + version: 1.63.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' protobuf: '>=3.19.5,<5.0.0dev0,!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5' - url: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.62.0-pyhd8ed1ab_0.conda + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.63.0-pyhd8ed1ab_0.conda hash: - md5: ca3d0c7ba3a15e943d9c715aba03ae62 - sha256: 70da3fc08a742022c666d9807f0caba60be1ddbf09b6642c168001bace18c724 + md5: 058e77f4f0285aa4945c5539de931ff0 + sha256: 41d3eea46623836e2be7234bdbfc0e7a42fc0853229c687cea6d7b652bb4a4fa category: main optional: false - name: graphite2 @@ -4986,12 +5088,12 @@ package: category: main optional: false - name: great-expectations - version: 0.18.8 + version: 0.18.11 manager: conda platform: linux-64 dependencies: altair: '>=4.2.1,<5.0.0' - click: '>=7.1.2,!=8.1.4' + click: '>=7.1.2' colorama: '>=0.4.3' cryptography: '>=3.2' ipython: '>=7.16.3' @@ -5019,50 +5121,50 @@ package: typing-extensions: '>=3.10.0.0' tzlocal: '>=1.2' urllib3: '>=1.26' - url: https://conda.anaconda.org/conda-forge/noarch/great-expectations-0.18.8-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/great-expectations-0.18.11-pyhd8ed1ab_0.conda hash: - md5: aec88c7640df4638b89356cc72732d67 - sha256: 85f91a1d5ed6e80653a7f9d3564a4fdb5d67e1947e51479006ebd674c4bbb669 + md5: f5fec30dfe5c45d15f7de3dac276d965 + sha256: 3c95a8573889782fc227cc6e5273e80cba9fde10af314d86e5868ae9cae74bfe category: main optional: false - name: great-expectations - version: 0.18.8 + version: 0.18.11 manager: conda platform: osx-arm64 dependencies: - packaging: '' - python: '>=3.8' - requests: '>=2.20' - jinja2: '>=2.10' - pandas: '>=1.1.0' - python-dateutil: '>=2.8.1' - ipywidgets: '>=7.5.1' + altair: '>=4.2.1,<5.0.0' + click: '>=7.1.2' colorama: '>=0.4.3' - jsonschema: '>=2.5.1' - tqdm: '>=4.59.0' - tzlocal: '>=1.2' - scipy: '>=1.6.0' + cryptography: '>=3.2' + ipython: '>=7.16.3' + ipywidgets: '>=7.5.1' + jinja2: '>=2.10' jsonpatch: '>=1.22' + jsonschema: '>=2.5.1' + makefun: '>=1.7.0,<2' + marshmallow: '>=3.7.1,<4.0.0' mistune: '>=0.8.4' - typing-extensions: '>=3.10.0.0' - pytz: '>=2021.3' nbformat: '>=5.0' - ruamel.yaml: '>=0.16,<0.17.18' - ipython: '>=7.16.3' - urllib3: '>=1.26' - cryptography: '>=3.2' notebook: '>=6.4.10' - pyparsing: '>=2.4' - makefun: '>=1.7.0,<2' - marshmallow: '>=3.7.1,<4.0.0' numpy: '>=1.20.3' - altair: '>=4.2.1,<5.0.0' - click: '>=7.1.2,!=8.1.4' + packaging: '' + pandas: '>=1.1.0' pydantic: '>=1.9.2' - url: https://conda.anaconda.org/conda-forge/noarch/great-expectations-0.18.8-pyhd8ed1ab_0.conda + pyparsing: '>=2.4' + python: '>=3.8' + python-dateutil: '>=2.8.1' + pytz: '>=2021.3' + requests: '>=2.20' + ruamel.yaml: '>=0.16,<0.17.18' + scipy: '>=1.6.0' + tqdm: '>=4.59.0' + typing-extensions: '>=3.10.0.0' + tzlocal: '>=1.2' + urllib3: '>=1.26' + url: https://conda.anaconda.org/conda-forge/noarch/great-expectations-0.18.11-pyhd8ed1ab_0.conda hash: - md5: aec88c7640df4638b89356cc72732d67 - sha256: 85f91a1d5ed6e80653a7f9d3564a4fdb5d67e1947e51479006ebd674c4bbb669 + md5: f5fec30dfe5c45d15f7de3dac276d965 + sha256: 3c95a8573889782fc227cc6e5273e80cba9fde10af314d86e5868ae9cae74bfe category: main optional: false - name: greenlet @@ -5116,16 +5218,15 @@ package: manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' - libcxx: '>=16.0.6' + libcxx: '>=16' libgrpc: 1.59.3 libzlib: '>=1.2.13,<1.3.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.59.3-py39h52f163a_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.59.3-py39h047a24b_0.conda hash: - md5: 65c1499ad010b38f0acab66e753f43b8 - sha256: 9939546b8eaf9a5666b31f872e6d70950139b108a557f3a1a3f14f0548af1fb3 + md5: 1afaf768107e5ab3284afb7d64d4a99c + sha256: 9f508baa6330ecf5a4a8129049e25ae40b2e534979a52995a6df08d8b65b7651 category: main optional: false - name: grpcio-status @@ -5148,10 +5249,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' googleapis-common-protos: '>=1.5.5' - protobuf: '>=4.21.6' grpcio: '>=1.59.3' + protobuf: '>=4.21.6' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.59.3-pyhd8ed1ab_0.conda hash: md5: 667999da148378ada5b9f13e7f3850c3 @@ -5165,15 +5266,21 @@ package: dependencies: atk-1.0: '>=2.38.0' cairo: '>=1.18.0,<2.0a0' + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' gdk-pixbuf: '>=2.42.10,<3.0a0' - gettext: '>=0.21.1,<1.0a0' + harfbuzz: '>=8.3.0,<9.0a0' libgcc-ng: '>=12' - libglib: '>=2.78.3,<3.0a0' + libglib: '>=2.78.4,<3.0a0' pango: '>=1.50.14,<2.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h7f000aa_3.conda + xorg-libx11: '>=1.8.7,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h280cfa0_4.conda hash: - md5: 0abfa7f9241a0f4fd732bc15773cfb0c - sha256: e659f5eca2a5f21d5fe859d8d1dae132a284800eb017b8b4e2286b252a230527 + md5: 410f86e58e880dcc7b0e910a8e89c05c + sha256: b946ba60d177d72157cad8af51723f1d081a4794741d35debe53f8b2c807f3af category: main optional: false - name: gtk2 @@ -5185,12 +5292,12 @@ package: cairo: '>=1.18.0,<2.0a0' gdk-pixbuf: '>=2.42.10,<3.0a0' gettext: '>=0.21.1,<1.0a0' - libglib: '>=2.78.3,<3.0a0' + libglib: '>=2.78.4,<3.0a0' pango: '>=1.50.14,<2.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/gtk2-2.24.33-h7895bb2_3.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/gtk2-2.24.33-h7895bb2_4.conda hash: - md5: e3d35c8b7a8fdb840c286ccaf0f082b2 - sha256: 63062472f3173991ce521f045f3a5dd5c7e147d127476b0c3a20a2aca03339e6 + md5: 9c1ba062d59f3f49a2d32d9611d72686 + sha256: fab8403a67273f69780b1e9b5f1db1aff74ff9472acc9f6df6d9b50fc252bd50 category: main optional: false - name: gts @@ -5250,6 +5357,60 @@ package: sha256: 6dbbb2958d2c369bcab4a8a52ac0734b7fce477d9ba86d623d60e34666421f6e category: main optional: false +- name: h11 + version: 0.14.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3' + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21ed0883505ba1910994f1df031a428 + sha256: 817d2c77d53afe3f3d9cf7f6eb8745cdd8ea76c7adaa9d7ced75c455a2c2c085 + category: main + optional: false +- name: h11 + version: 0.14.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3' + typing_extensions: '' + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21ed0883505ba1910994f1df031a428 + sha256: 817d2c77d53afe3f3d9cf7f6eb8745cdd8ea76c7adaa9d7ced75c455a2c2c085 + category: main + optional: false +- name: h2 + version: 4.1.0 + manager: conda + platform: linux-64 + dependencies: + hpack: '>=4.0,<5' + hyperframe: '>=6.0,<7' + python: '>=3.6.1' + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b748fbf7060927a6e82df7cb5ee8f097 + sha256: bfc6a23849953647f4e255c782e74a0e18fe16f7e25c7bb0bc57b83bb6762c7a + category: main + optional: false +- name: h2 + version: 4.1.0 + manager: conda + platform: osx-arm64 + dependencies: + hpack: '>=4.0,<5' + hyperframe: '>=6.0,<7' + python: '>=3.6.1' + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b748fbf7060927a6e82df7cb5ee8f097 + sha256: bfc6a23849953647f4e255c782e74a0e18fe16f7e25c7bb0bc57b83bb6762c7a + category: main + optional: false - name: h5py version: 3.10.0 manager: conda @@ -5386,8 +5547,100 @@ package: sha256: 22331a0ac71a4dd1868f05f8197c36815a41a9f2dcfd01b73ff0d87d9e0ea087 category: main optional: false +- name: hpack + version: 4.0.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 914d6646c4dbb1fd3ff539830a12fd71 + sha256: 5dec948932c4f740674b1afb551223ada0c55103f4c7bf86a110454da3d27cb8 + category: main + optional: false +- name: hpack + version: 4.0.0 + manager: conda + platform: osx-arm64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 914d6646c4dbb1fd3ff539830a12fd71 + sha256: 5dec948932c4f740674b1afb551223ada0c55103f4c7bf86a110454da3d27cb8 + category: main + optional: false +- name: httpcore + version: 1.0.4 + manager: conda + platform: linux-64 + dependencies: + anyio: '>=3.0,<5.0' + certifi: '' + h11: '>=0.13,<0.15' + h2: '>=3,<5' + python: '>=3.8' + sniffio: 1.* + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.4-pyhd8ed1ab_0.conda + hash: + md5: 20f047662cf4fa8b97836111df87dbb4 + sha256: dec07ca00223d52433e7c20c71d5e645a7828b3e50206d855ad7a540869341f2 + category: main + optional: false +- name: httpcore + version: 1.0.4 + manager: conda + platform: osx-arm64 + dependencies: + anyio: '>=3.0,<5.0' + certifi: '' + h11: '>=0.13,<0.15' + h2: '>=3,<5' + python: '>=3.8' + sniffio: 1.* + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.4-pyhd8ed1ab_0.conda + hash: + md5: 20f047662cf4fa8b97836111df87dbb4 + sha256: dec07ca00223d52433e7c20c71d5e645a7828b3e50206d855ad7a540869341f2 + category: main + optional: false +- name: httpx + version: 0.27.0 + manager: conda + platform: linux-64 + dependencies: + anyio: '' + certifi: '' + httpcore: 1.* + idna: '' + python: '>=3.8' + sniffio: '' + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda + hash: + md5: 9f359af5a886fd6ca6b2b6ea02e58332 + sha256: fdaf341fb2630b7afe8238315448fc93947f77ebfa4da68bb349e1bcf820af58 + category: main + optional: false +- name: httpx + version: 0.27.0 + manager: conda + platform: osx-arm64 + dependencies: + anyio: '' + certifi: '' + httpcore: 1.* + idna: '' + python: '>=3.8' + sniffio: '' + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.0-pyhd8ed1ab_0.conda + hash: + md5: 9f359af5a886fd6ca6b2b6ea02e58332 + sha256: fdaf341fb2630b7afe8238315448fc93947f77ebfa4da68bb349e1bcf820af58 + category: main + optional: false - name: huggingface_hub - version: 0.20.2 + version: 0.21.4 manager: conda platform: linux-64 dependencies: @@ -5399,29 +5652,53 @@ package: requests: '' tqdm: '>=4.42.1' typing-extensions: '>=3.7.4.3' - url: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.20.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.21.4-pyhd8ed1ab_0.conda hash: - md5: 3f4e4c828523dcac4829d7362b60ef8f - sha256: 3d036f2cf10e8bea177514b667a21912774d339aa8403b85c6883b61ca041e09 + md5: d47cf217a7bcc3a03dd1c6169c3f0f98 + sha256: e748e5f1ed8cbcbdcc4dd0e0da14063687bb1c3b65c4266f81b73cb56801805e category: main optional: false - name: huggingface_hub - version: 0.20.2 + version: 0.21.4 manager: conda platform: osx-arm64 dependencies: - requests: '' filelock: '' + fsspec: '>=2023.5.0' + packaging: '>=20.9' python: '>=3.8' pyyaml: '>=5.1' - packaging: '>=20.9' - typing-extensions: '>=3.7.4.3' - fsspec: '>=2023.5.0' + requests: '' tqdm: '>=4.42.1' - url: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.20.2-pyhd8ed1ab_0.conda + typing-extensions: '>=3.7.4.3' + url: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.21.4-pyhd8ed1ab_0.conda hash: - md5: 3f4e4c828523dcac4829d7362b60ef8f - sha256: 3d036f2cf10e8bea177514b667a21912774d339aa8403b85c6883b61ca041e09 + md5: d47cf217a7bcc3a03dd1c6169c3f0f98 + sha256: e748e5f1ed8cbcbdcc4dd0e0da14063687bb1c3b65c4266f81b73cb56801805e + category: main + optional: false +- name: hyperframe + version: 6.0.1 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 9f765cbfab6870c8435b9eefecd7a1f4 + sha256: e374a9d0f53149328134a8d86f5d72bca4c6dcebed3c0ecfa968c02996289330 + category: main + optional: false +- name: hyperframe + version: 6.0.1 + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 9f765cbfab6870c8435b9eefecd7a1f4 + sha256: e374a9d0f53149328134a8d86f5d72bca4c6dcebed3c0ecfa968c02996289330 category: main optional: false - name: icu @@ -5449,29 +5726,29 @@ package: category: main optional: false - name: identify - version: 2.5.33 + version: 2.5.35 manager: conda platform: linux-64 dependencies: python: '>=3.6' ukkonen: '' - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.35-pyhd8ed1ab_0.conda hash: - md5: 93c8f8ceb83827d88deeba796f07fba7 - sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f + md5: 9472bfd206a2b7bb8143835e37667054 + sha256: 971683b13d1b820157bef9993c63dd8b0611d2d60fc4b522da163aee2e70e518 category: main optional: false - name: identify - version: 2.5.33 + version: 2.5.35 manager: conda platform: osx-arm64 dependencies: - ukkonen: '' python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda + ukkonen: '' + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.35-pyhd8ed1ab_0.conda hash: - md5: 93c8f8ceb83827d88deeba796f07fba7 - sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f + md5: 9472bfd206a2b7bb8143835e37667054 + sha256: 971683b13d1b820157bef9993c63dd8b0611d2d60fc4b522da163aee2e70e518 category: main optional: false - name: idna @@ -5549,29 +5826,29 @@ package: category: main optional: false - name: importlib-resources - version: 6.1.1 + version: 6.3.0 manager: conda platform: linux-64 dependencies: - importlib_resources: '>=6.1.1,<6.1.2.0a0' + importlib_resources: '>=6.3.0,<6.3.1.0a0' python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.3.0-pyhd8ed1ab_0.conda hash: - md5: d04bd1b5bed9177dd7c3cef15e2b6710 - sha256: 89492a6619776e83d30fcdc6915fcb3a657cd345abcf68fdf6655540494ab0f0 + md5: 828e394294c4a0e31872a9f420cf92f7 + sha256: ed401d44578cec3bf8bd924bee7867c6d86c0707e55dd543b99640fa0fc85e47 category: main optional: false - name: importlib-resources - version: 6.1.1 + version: 6.3.0 manager: conda platform: osx-arm64 dependencies: + importlib_resources: '>=6.3.0,<6.3.1.0a0' python: '>=3.8' - importlib_resources: '>=6.1.1,<6.1.2.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.3.0-pyhd8ed1ab_0.conda hash: - md5: d04bd1b5bed9177dd7c3cef15e2b6710 - sha256: 89492a6619776e83d30fcdc6915fcb3a657cd345abcf68fdf6655540494ab0f0 + md5: 828e394294c4a0e31872a9f420cf92f7 + sha256: ed401d44578cec3bf8bd924bee7867c6d86c0707e55dd543b99640fa0fc85e47 category: main optional: false - name: importlib_metadata @@ -5599,33 +5876,33 @@ package: category: main optional: false - name: importlib_resources - version: 6.1.1 + version: 6.3.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' zipp: '>=3.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.3.0-pyhd8ed1ab_0.conda hash: - md5: 3d5fa25cf42f3f32a12b2d874ace8574 - sha256: e584f9ae08fb2d242af0ce7e19e3cd2f85f362d8523119e08f99edb962db99ed + md5: 18850e65ca439066484607b26ed09ecd + sha256: 8ad2fdd72f6a0ebefaa1496d2f43f100596f1733468fd9b549891f6195a5b8cb category: main optional: false - name: importlib_resources - version: 6.1.1 + version: 6.3.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' zipp: '>=3.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.3.0-pyhd8ed1ab_0.conda hash: - md5: 3d5fa25cf42f3f32a12b2d874ace8574 - sha256: e584f9ae08fb2d242af0ce7e19e3cd2f85f362d8523119e08f99edb962db99ed + md5: 18850e65ca439066484607b26ed09ecd + sha256: 8ad2fdd72f6a0ebefaa1496d2f43f100596f1733468fd9b549891f6195a5b8cb category: main optional: false - name: ipykernel - version: 6.29.0 + version: 6.29.3 manager: conda platform: linux-64 dependencies: @@ -5643,36 +5920,36 @@ package: pyzmq: '>=24' tornado: '>=6.1' traitlets: '>=5.4.0' - url: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.0-pyhd33586a_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.3-pyhd33586a_0.conda hash: - md5: 10915bfa94b94f4ad0f347efd124a339 - sha256: fa82aa089d474d11e63deb4b433acb9618294fe6b3b08123d7a269f72c0cc8ca + md5: e0deff12c601ce5cb7476f93718f3168 + sha256: 0314f15e666fd9a4fb653aae37d2cf4dc6bc3a18c0d9c2671a6a0783146adcfa category: main optional: false - name: ipykernel - version: 6.29.0 + version: 6.29.3 manager: conda platform: osx-arm64 dependencies: - packaging: '' - psutil: '' - nest-asyncio: '' __osx: '' appnope: '' - python: '>=3.8' - tornado: '>=6.1' + comm: '>=0.1.1' + debugpy: '>=1.6.5' + ipython: '>=7.23.1' jupyter_client: '>=6.1.12' jupyter_core: '>=4.12,!=5.0.*' - ipython: '>=7.23.1' matplotlib-inline: '>=0.1' - debugpy: '>=1.6.5' - comm: '>=0.1.1' - traitlets: '>=5.4.0' + nest-asyncio: '' + packaging: '' + psutil: '' + python: '>=3.8' pyzmq: '>=24' - url: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.0-pyh3cd1d5f_0.conda + tornado: '>=6.1' + traitlets: '>=5.4.0' + url: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.3-pyh3cd1d5f_0.conda hash: - md5: 17b1e24f82177f01ac7c6c518288612c - sha256: 6df088b8d356281347a71388315c7bbf49f0a5a10e6b16000553a43d74f5222d + md5: 28e74fca8d8abf09c1ed0d190a17e307 + sha256: ef2f9c1d83afd693db3793c368c5c6afcd37a416958ece490a2e1fbcd85012eb category: main optional: false - name: ipython @@ -5704,19 +5981,19 @@ package: manager: conda platform: osx-arm64 dependencies: - typing_extensions: '' __unix: '' decorator: '' exceptiongroup: '' - stack_data: '' + jedi: '>=0.16' matplotlib-inline: '' + pexpect: '>4.3' pickleshare: '' - python: '>=3.9' + prompt-toolkit: '>=3.0.41,<3.1.0' pygments: '>=2.4.0' + python: '>=3.9' + stack_data: '' traitlets: '>=5' - jedi: '>=0.16' - pexpect: '>4.3' - prompt-toolkit: '>=3.0.41,<3.1.0' + typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.18.1-pyh707e725_3.conda hash: md5: 15c6f45a45f7ac27f6d60b0b084f6761 @@ -5724,37 +6001,37 @@ package: category: main optional: false - name: ipywidgets - version: 8.1.1 + version: 8.1.2 manager: conda platform: linux-64 dependencies: comm: '>=0.1.3' ipython: '>=6.1.0' - jupyterlab_widgets: '>=3.0.9,<3.1.0' + jupyterlab_widgets: '>=3.0.10,<3.1.0' python: '>=3.7' traitlets: '>=4.3.1' - widgetsnbextension: '>=4.0.9,<4.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.1-pyhd8ed1ab_0.conda + widgetsnbextension: '>=4.0.10,<4.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.2-pyhd8ed1ab_0.conda hash: - md5: 2605fae5ee27100e5f10037baebf4d41 - sha256: 8136defec115396ba992273a77f814d74eeafd9cc099f5430d109c60785a7f02 + md5: 67f86478c78637f68c1f3858973021f2 + sha256: 0be846f1374faa2d9b6f5e100187d56afa9268221f7c7815265f30aa008da8ca category: main optional: false - name: ipywidgets - version: 8.1.1 + version: 8.1.2 manager: conda platform: osx-arm64 dependencies: + comm: '>=0.1.3' + ipython: '>=6.1.0' + jupyterlab_widgets: '>=3.0.10,<3.1.0' python: '>=3.7' traitlets: '>=4.3.1' - ipython: '>=6.1.0' - comm: '>=0.1.3' - jupyterlab_widgets: '>=3.0.9,<3.1.0' - widgetsnbextension: '>=4.0.9,<4.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.1-pyhd8ed1ab_0.conda + widgetsnbextension: '>=4.0.10,<4.1.0' + url: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.2-pyhd8ed1ab_0.conda hash: - md5: 2605fae5ee27100e5f10037baebf4d41 - sha256: 8136defec115396ba992273a77f814d74eeafd9cc099f5430d109c60785a7f02 + md5: 67f86478c78637f68c1f3858973021f2 + sha256: 0be846f1374faa2d9b6f5e100187d56afa9268221f7c7815265f30aa008da8ca category: main optional: false - name: isodate @@ -5775,8 +6052,8 @@ package: manager: conda platform: osx-arm64 dependencies: - six: '' python: '>=3.6' + six: '' url: https://conda.anaconda.org/conda-forge/noarch/isodate-0.6.1-pyhd8ed1ab_0.tar.bz2 hash: md5: 4a62c93c1b5c0b920508ae3fd285eaf5 @@ -5801,8 +6078,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' arrow: '>=0.15.0' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 hash: md5: 4cb68948e0b8429534380243d063a27a @@ -5834,29 +6111,29 @@ package: category: main optional: false - name: jaraco.classes - version: 3.3.0 + version: 3.3.1 manager: conda platform: linux-64 dependencies: more-itertools: '' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.1-pyhd8ed1ab_0.conda hash: - md5: e9f79248d30e942f7c358ff21a1790f5 - sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + md5: c541ae264c9f1f21d83fc30dffb908ee + sha256: 232b40de8176fa7fb66a893653f8ae03c29616e04a83dae5a47df94b74e256ca category: main optional: false - name: jaraco.classes - version: 3.3.0 + version: 3.3.1 manager: conda platform: osx-arm64 dependencies: more-itertools: '' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.1-pyhd8ed1ab_0.conda hash: - md5: e9f79248d30e942f7c358ff21a1790f5 - sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + md5: c541ae264c9f1f21d83fc30dffb908ee + sha256: 232b40de8176fa7fb66a893653f8ae03c29616e04a83dae5a47df94b74e256ca category: main optional: false - name: jedi @@ -5877,8 +6154,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' parso: '>=0.8.3,<0.9.0' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda hash: md5: 81a3be0b2023e1ea8555781f0ad904a2 @@ -5915,8 +6192,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' markupsafe: '>=2.0' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda hash: md5: e7d8df6509ba635247ff9aea31134262 @@ -5965,8 +6242,8 @@ package: manager: conda platform: osx-arm64 dependencies: - setuptools: '' python: '>=3.7' + setuptools: '' url: https://conda.anaconda.org/conda-forge/noarch/joblib-1.3.2-pyhd8ed1ab_0.conda hash: md5: 4da50d410f553db77e62ab62ffaa1abc @@ -5997,27 +6274,27 @@ package: category: main optional: false - name: json5 - version: 0.9.14 + version: 0.9.24 manager: conda platform: linux-64 dependencies: python: '>=3.7,<4.0' - url: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.14-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.24-pyhd8ed1ab_0.conda hash: - md5: dac1dabba2b5a9d1aee175c5fcc7b436 - sha256: 41514104208c092959bef0713cbd795e72c535f2f939b7903d8c97809f2adaa7 + md5: fc9780a517b51ea3798fc011c17ffd51 + sha256: 148a427d4867ecd367b2bb9c2ef11ae7795abeabc8454f802f28ff692b3ce1aa category: main optional: false - name: json5 - version: 0.9.14 + version: 0.9.24 manager: conda platform: osx-arm64 dependencies: python: '>=3.7,<4.0' - url: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.14-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.24-pyhd8ed1ab_0.conda hash: - md5: dac1dabba2b5a9d1aee175c5fcc7b436 - sha256: 41514104208c092959bef0713cbd795e72c535f2f939b7903d8c97809f2adaa7 + md5: fc9780a517b51ea3798fc011c17ffd51 + sha256: 148a427d4867ecd367b2bb9c2ef11ae7795abeabc8454f802f28ff692b3ce1aa category: main optional: false - name: jsonpatch @@ -6038,8 +6315,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' jsonpointer: '>=1.9' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda hash: md5: bfdb7c5c6ad1077c82a69a8642c87aff @@ -6121,11 +6398,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' attrs: '>=22.2.0' importlib_resources: '>=1.4.0' - pkgutil-resolve-name: '>=1.3.10' jsonschema-specifications: '>=2023.03.6' + pkgutil-resolve-name: '>=1.3.10' + python: '>=3.8' referencing: '>=0.28.4' rpds-py: '>=0.7.1' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda @@ -6153,8 +6430,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' importlib_resources: '>=1.4.0' + python: '>=3.8' referencing: '>=0.31.0' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda hash: @@ -6188,16 +6465,16 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '' - idna: '' - rfc3339-validator: '' - uri-template: '' fqdn: '' + idna: '' isoduration: '' jsonpointer: '>1.13' - webcolors: '>=1.11' - rfc3986-validator: '>0.1.0' jsonschema: '>=4.21.1,<4.21.2.0a0' + python: '' + rfc3339-validator: '' + rfc3986-validator: '>0.1.0' + uri-template: '' + webcolors: '>=1.11' url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.21.1-pyhd8ed1ab_0.conda hash: md5: 26bce4b5405738c09304d4f4796b2c2a @@ -6227,13 +6504,13 @@ package: manager: conda platform: osx-arm64 dependencies: - ipywidgets: '' - notebook: '' - nbconvert: '' ipykernel: '' - qtconsole-base: '' + ipywidgets: '' jupyter_console: '' + nbconvert: '' + notebook: '' python: '>=3.6' + qtconsole-base: '' url: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.0.0-pyhd8ed1ab_10.conda hash: md5: 056b8cc3d9b03f54fc49e6d70d7dc359 @@ -6265,15 +6542,15 @@ package: manager: conda platform: osx-arm64 dependencies: - pyyaml: '' + attrs: '' click: '' importlib-metadata: '' - tabulate: '' - attrs: '' + nbclient: '>=0.2,<0.8' nbformat: '' python: '>=3.8' + pyyaml: '' sqlalchemy: '>=1.3.12,<3' - nbclient: '>=0.2,<0.8' + tabulate: '' url: https://conda.anaconda.org/conda-forge/noarch/jupyter-cache-0.6.1-pyhd8ed1ab_0.conda hash: md5: 2e360820ae68e3d28e1a5a9d2714ca5c @@ -6281,35 +6558,35 @@ package: category: main optional: false - name: jupyter-lsp - version: 2.2.2 + version: 2.2.4 manager: conda platform: linux-64 dependencies: importlib-metadata: '>=4.8.3' jupyter_server: '>=1.1.2' python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.4-pyhd8ed1ab_0.conda hash: - md5: ed56b103cac2db68f22909e9f5cca6b6 - sha256: d8ab253be3df67be1b31fe040a8386e071ff065ef4442b94a722a45fa3562fbe + md5: 91f93e1ebf6535be518715432d89fd92 + sha256: 8000b1904a2a10cf039b46305781128e1a93da4c2fd857445b4924ecf3535bdb category: main optional: false - name: jupyter-lsp - version: 2.2.2 + version: 2.2.4 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' importlib-metadata: '>=4.8.3' jupyter_server: '>=1.1.2' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.2-pyhd8ed1ab_0.conda + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.4-pyhd8ed1ab_0.conda hash: - md5: ed56b103cac2db68f22909e9f5cca6b6 - sha256: d8ab253be3df67be1b31fe040a8386e071ff065ef4442b94a722a45fa3562fbe + md5: 91f93e1ebf6535be518715432d89fd92 + sha256: 8000b1904a2a10cf039b46305781128e1a93da4c2fd857445b4924ecf3535bdb category: main optional: false - name: jupyter_client - version: 8.6.0 + version: 8.6.1 manager: conda platform: linux-64 dependencies: @@ -6320,28 +6597,28 @@ package: pyzmq: '>=23.0' tornado: '>=6.2' traitlets: '>=5.3' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.1-pyhd8ed1ab_0.conda hash: - md5: 6bd3f1069cdebb44c7ae9efb900e312d - sha256: 86cbb9070862cf23a245451efce539ca214e610849d0950bb8ac90c545bd158d + md5: c03972cfce69ad913d520c652e5ed908 + sha256: c7d10d7941fd2e61480e49d3b2b21a530af4ae4b0d449a1746a72a38bacb63e2 category: main optional: false - name: jupyter_client - version: 8.6.0 + version: 8.6.1 manager: conda platform: osx-arm64 dependencies: + importlib_metadata: '>=4.8.3' + jupyter_core: '>=4.12,!=5.0.*' python: '>=3.8' python-dateutil: '>=2.8.2' - jupyter_core: '>=4.12,!=5.0.*' - traitlets: '>=5.3' - importlib_metadata: '>=4.8.3' pyzmq: '>=23.0' tornado: '>=6.2' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.0-pyhd8ed1ab_0.conda + traitlets: '>=5.3' + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.1-pyhd8ed1ab_0.conda hash: - md5: 6bd3f1069cdebb44c7ae9efb900e312d - sha256: 86cbb9070862cf23a245451efce539ca214e610849d0950bb8ac90c545bd158d + md5: c03972cfce69ad913d520c652e5ed908 + sha256: c7d10d7941fd2e61480e49d3b2b21a530af4ae4b0d449a1746a72a38bacb63e2 category: main optional: false - name: jupyter_console @@ -6369,15 +6646,15 @@ package: manager: conda platform: osx-arm64 dependencies: + ipykernel: '>=6.14' ipython: '' + jupyter_client: '>=7.0.0' + jupyter_core: '>=4.12,!=5.0.*' + prompt_toolkit: '>=3.0.30' pygments: '' python: '>=3.7' pyzmq: '>=17' - jupyter_core: '>=4.12,!=5.0.*' - jupyter_client: '>=7.0.0' - ipykernel: '>=6.14' traitlets: '>=5.4' - prompt_toolkit: '>=3.0.30' url: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_0.conda hash: md5: 7cf6f52a66f8e3cd9d8b6c231262dcab @@ -6385,7 +6662,7 @@ package: category: main optional: false - name: jupyter_core - version: 5.7.1 + version: 5.7.2 manager: conda platform: linux-64 dependencies: @@ -6393,14 +6670,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* traitlets: '>=5.3' - url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.1-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.2-py39hf3d152e_0.conda hash: - md5: 0195c150e0768bc4caccdff46a12075c - sha256: 7527ebd9196d4d22c428854e065dc336a8d184bbd1f7264fa1139af493d3f7d6 + md5: 612f7a003a8a407955572c0d53952ceb + sha256: fbe43f4db84cd4eb0b3eed971a197237c9a0d53fa90b695a7fa82e4ccd193cbf category: main optional: false - name: jupyter_core - version: 5.7.1 + version: 5.7.2 manager: conda platform: osx-arm64 dependencies: @@ -6408,14 +6685,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* traitlets: '>=5.3' - url: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.1-py39h2804cbe_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.2-py39h2804cbe_0.conda hash: - md5: 7a804a3d9c0a04e3b0e0ce1a9f3fdc03 - sha256: e4cb996a1878b0cace1a8e4d05543099fe0a9c691c3932662c04709a4197ce95 + md5: 4466162887415f41a30c5c70776bee76 + sha256: 8f76dc3754b315d16b1c3a64e387477c4ea4556358b87c80b4b7f37314a25ea9 category: main optional: false - name: jupyter_events - version: 0.9.0 + version: 0.9.1 manager: conda platform: linux-64 dependencies: @@ -6427,33 +6704,33 @@ package: rfc3339-validator: '' rfc3986-validator: '>=0.1.1' traitlets: '>=5.3' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.9.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.9.1-pyhd8ed1ab_0.conda hash: - md5: 00ba25993f0dba38cf72a7224e33289f - sha256: 713f0cc927a862862a6d35bfb29c4114f987e4f59e2a8a14f71f23fcd7edfec3 + md5: 331ea2fc883fc5f2fc002a4e66e38bc5 + sha256: 9054dea8926daf867ee0f366b3b45579e1bd16cbc7667d1f7541531d037fdbfd category: main optional: false - name: jupyter_events - version: 0.9.0 + version: 0.9.1 manager: conda platform: osx-arm64 dependencies: - rfc3339-validator: '' - referencing: '' + jsonschema-with-format-nongpl: '>=4.18.0' python: '>=3.8' + python-json-logger: '>=2.0.4' pyyaml: '>=5.3' + referencing: '' + rfc3339-validator: '' rfc3986-validator: '>=0.1.1' traitlets: '>=5.3' - python-json-logger: '>=2.0.4' - jsonschema-with-format-nongpl: '>=4.18.0' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.9.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.9.1-pyhd8ed1ab_0.conda hash: - md5: 00ba25993f0dba38cf72a7224e33289f - sha256: 713f0cc927a862862a6d35bfb29c4114f987e4f59e2a8a14f71f23fcd7edfec3 + md5: 331ea2fc883fc5f2fc002a4e66e38bc5 + sha256: 9054dea8926daf867ee0f366b3b45579e1bd16cbc7667d1f7541531d037fdbfd category: main optional: false - name: jupyter_server - version: 2.12.5 + version: 2.13.0 manager: conda platform: linux-64 dependencies: @@ -6476,74 +6753,75 @@ package: tornado: '>=6.2.0' traitlets: '>=5.6.0' websocket-client: '' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.12.5-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.13.0-pyhd8ed1ab_0.conda hash: - md5: 755177a956fa6dd90d5cfcbbb5084de2 - sha256: 43dcd238c656c7ecf3228be8735def530cad5181f990c042ba202b9e383d2b1f + md5: e242df505f194c4932fbb840a99207e2 + sha256: 7e3259506b1b8500ebac4b4b097629ca8c32ee70d1c1df122052fea65c7cbae0 category: main optional: false - name: jupyter_server - version: 2.12.5 + version: 2.13.0 manager: conda platform: osx-arm64 dependencies: - packaging: '' - jinja2: '' - prometheus_client: '' - websocket-client: '' + anyio: '>=3.1.0' argon2-cffi: '' - overrides: '' + jinja2: '' + jupyter_client: '>=7.4.4' + jupyter_core: '>=4.12,!=5.0.*' + jupyter_events: '>=0.9.0' jupyter_server_terminals: '' + nbconvert-core: '>=6.4.4' + nbformat: '>=5.3.0' + overrides: '' + packaging: '' + prometheus_client: '' python: '>=3.8' + pyzmq: '>=24' + send2trash: '>=1.8.2' terminado: '>=0.8.3' - jupyter_core: '>=4.12,!=5.0.*' tornado: '>=6.2.0' - nbconvert-core: '>=6.4.4' - pyzmq: '>=24' - jupyter_client: '>=7.4.4' - nbformat: '>=5.3.0' traitlets: '>=5.6.0' - anyio: '>=3.1.0' - send2trash: '>=1.8.2' - jupyter_events: '>=0.9.0' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.12.5-pyhd8ed1ab_0.conda + websocket-client: '' + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.13.0-pyhd8ed1ab_0.conda hash: - md5: 755177a956fa6dd90d5cfcbbb5084de2 - sha256: 43dcd238c656c7ecf3228be8735def530cad5181f990c042ba202b9e383d2b1f + md5: e242df505f194c4932fbb840a99207e2 + sha256: 7e3259506b1b8500ebac4b4b097629ca8c32ee70d1c1df122052fea65c7cbae0 category: main optional: false - name: jupyter_server_terminals - version: 0.5.2 + version: 0.5.3 manager: conda platform: linux-64 dependencies: python: '>=3.8' terminado: '>=0.8.3' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda hash: - md5: a0152d13c9deb13639fc84df884d50b6 - sha256: a625150744fdffb646fb4451edc68b3eff56eeace4e86b83dc4a860479c9857c + md5: 219b3833aa8ed91d47d1be6ca03f30be + sha256: 038efbc7e4b2e72d49ed193cfb2bbbe9fbab2459786ce9350301f466a32567db category: main optional: false - name: jupyter_server_terminals - version: 0.5.2 + version: 0.5.3 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' terminado: '>=0.8.3' - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_0.conda hash: - md5: a0152d13c9deb13639fc84df884d50b6 - sha256: a625150744fdffb646fb4451edc68b3eff56eeace4e86b83dc4a860479c9857c + md5: 219b3833aa8ed91d47d1be6ca03f30be + sha256: 038efbc7e4b2e72d49ed193cfb2bbbe9fbab2459786ce9350301f466a32567db category: main optional: false - name: jupyterlab - version: 4.0.12 + version: 4.1.5 manager: conda platform: linux-64 dependencies: async-lru: '>=1.0.0' + httpx: '>=0.25.0' importlib_metadata: '>=4.8.3' importlib_resources: '>=1.4' ipykernel: '' @@ -6558,36 +6836,37 @@ package: tomli: '' tornado: '>=6.2.0' traitlets: '' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.0.12-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.1.5-pyhd8ed1ab_0.conda hash: - md5: be2dcb121242a2f045ef8e8240e2b29d - sha256: b94fac375d239da7f56a7bcc48bfef9dff54033e272ec60946998950ea8ad1a0 + md5: 04b1ca9d7ac414b3f5c3fb16066c6861 + sha256: b098b79ef34d5c6a9ef7fc482bd2373072820006757ed7db33328af88fb91496 category: main optional: false - name: jupyterlab - version: 4.0.12 + version: 4.1.5 manager: conda platform: osx-arm64 dependencies: - packaging: '' - traitlets: '' - tomli: '' - ipykernel: '' - jupyter_core: '' - python: '>=3.8' - tornado: '>=6.2.0' - jinja2: '>=3.0.3' + async-lru: '>=1.0.0' + httpx: '>=0.25.0' importlib_metadata: '>=4.8.3' - jupyter_server: '>=2.4.0,<3' importlib_resources: '>=1.4' + ipykernel: '' + jinja2: '>=3.0.3' jupyter-lsp: '>=2.0.0' - async-lru: '>=1.0.0' + jupyter_core: '' + jupyter_server: '>=2.4.0,<3' jupyterlab_server: '>=2.19.0,<3' notebook-shim: '>=0.2' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.0.12-pyhd8ed1ab_0.conda + packaging: '' + python: '>=3.8' + tomli: '' + tornado: '>=6.2.0' + traitlets: '' + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.1.5-pyhd8ed1ab_0.conda hash: - md5: be2dcb121242a2f045ef8e8240e2b29d - sha256: b94fac375d239da7f56a7bcc48bfef9dff54033e272ec60946998950ea8ad1a0 + md5: 04b1ca9d7ac414b3f5c3fb16066c6861 + sha256: b098b79ef34d5c6a9ef7fc482bd2373072820006757ed7db33328af88fb91496 category: main optional: false - name: jupyterlab_pygments @@ -6597,10 +6876,10 @@ package: dependencies: pygments: '>=2.4.1,<3' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda hash: - md5: 3f0915b1fb2252ab73686a533c5f9d3f - sha256: 6ee596138a778a841261476408435da78e3000661f3ee025fb6c3ed17d28c8b3 + md5: afcd1b53bcac8844540358e33f33d28f + sha256: 4aa622bbcf97e44cd1adf0100b7ff71b7e20268f043bdf6feae4d16152f1f242 category: main optional: false - name: jupyterlab_pygments @@ -6608,16 +6887,16 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' pygments: '>=2.4.1,<3' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_0.conda + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_1.conda hash: - md5: 3f0915b1fb2252ab73686a533c5f9d3f - sha256: 6ee596138a778a841261476408435da78e3000661f3ee025fb6c3ed17d28c8b3 + md5: afcd1b53bcac8844540358e33f33d28f + sha256: 4aa622bbcf97e44cd1adf0100b7ff71b7e20268f043bdf6feae4d16152f1f242 category: main optional: false - name: jupyterlab_server - version: 2.25.2 + version: 2.25.4 manager: conda platform: linux-64 dependencies: @@ -6630,54 +6909,54 @@ package: packaging: '>=21.3' python: '>=3.8' requests: '>=2.31' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.25.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.25.4-pyhd8ed1ab_0.conda hash: - md5: f45557d5551b54dc2a74133a310bc1ba - sha256: 51c13a87072a64df1a0ae14fbb470bc4e36becf4d50693ffab53174199ca4f4b + md5: ffd61670ae09d2d3c637f6afd29db443 + sha256: d0336d0c0223a66d648b24cfd1512fd7aebc85550d47f55ad5edbd53f482e7e5 category: main optional: false - name: jupyterlab_server - version: 2.25.2 + version: 2.25.4 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - packaging: '>=21.3' - jinja2: '>=3.0.3' - importlib-metadata: '>=4.8.3' - jupyter_server: '>=1.21,<3' babel: '>=2.10' + importlib-metadata: '>=4.8.3' + jinja2: '>=3.0.3' json5: '>=0.9.0' - requests: '>=2.31' jsonschema: '>=4.18' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.25.2-pyhd8ed1ab_0.conda + jupyter_server: '>=1.21,<3' + packaging: '>=21.3' + python: '>=3.8' + requests: '>=2.31' + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.25.4-pyhd8ed1ab_0.conda hash: - md5: f45557d5551b54dc2a74133a310bc1ba - sha256: 51c13a87072a64df1a0ae14fbb470bc4e36becf4d50693ffab53174199ca4f4b + md5: ffd61670ae09d2d3c637f6afd29db443 + sha256: d0336d0c0223a66d648b24cfd1512fd7aebc85550d47f55ad5edbd53f482e7e5 category: main optional: false - name: jupyterlab_widgets - version: 3.0.9 + version: 3.0.10 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.9-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.10-pyhd8ed1ab_0.conda hash: - md5: 8370e0a9dc443f9b45a23fd30e7a6b3b - sha256: ec66991d2175f7b1f35973d6c4f56ad9a49666f77acf1037d72f3bc6e37224f3 + md5: 16b73b2c4ff7dda8bbecf88aadfe2027 + sha256: 7c14d0b377ddd2e21f23d2f55fbd827aca726860e504a131b67ef936aef2b8c4 category: main optional: false - name: jupyterlab_widgets - version: 3.0.9 + version: 3.0.10 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.9-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.10-pyhd8ed1ab_0.conda hash: - md5: 8370e0a9dc443f9b45a23fd30e7a6b3b - sha256: ec66991d2175f7b1f35973d6c4f56ad9a49666f77acf1037d72f3bc6e37224f3 + md5: 16b73b2c4ff7dda8bbecf88aadfe2027 + sha256: 7c14d0b377ddd2e21f23d2f55fbd827aca726860e504a131b67ef936aef2b8c4 category: main optional: false - name: jupytext @@ -6703,13 +6982,13 @@ package: manager: conda platform: osx-arm64 dependencies: - pyyaml: '' - packaging: '' - toml: '' - nbformat: '' + markdown-it-py: '>=1.0' mdit-py-plugins: '' + nbformat: '' + packaging: '' python: '>=3.8' - markdown-it-py: '>=1.0' + pyyaml: '' + toml: '' url: https://conda.anaconda.org/conda-forge/noarch/jupytext-1.16.1-pyhd8ed1ab_0.conda hash: md5: 14a45070afec994235a23ae09b098cce @@ -6768,7 +7047,7 @@ package: category: main optional: false - name: keyring - version: 24.3.0 + version: 24.3.1 manager: conda platform: linux-64 dependencies: @@ -6778,14 +7057,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* secretstorage: '>=3.2' - url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.0-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.1-py39hf3d152e_0.conda hash: - md5: 1426c4f9994cb7e55859b44b98bc7b3e - sha256: a7538a914feb54dc3e7ee46431af5f0a40e668b29224998e6d3be044a1a7606e + md5: 2482396e5d629d60526bce6268cfde6a + sha256: 8d231971f2ab5a9ab17d0b792021e287b982cb28c5258a93076a7fb937fa40c5 category: main optional: false - name: keyring - version: 24.3.0 + version: 24.3.1 manager: conda platform: osx-arm64 dependencies: @@ -6793,10 +7072,10 @@ package: jaraco.classes: '' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/keyring-24.3.0-py39h2804cbe_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/keyring-24.3.1-py39h2804cbe_0.conda hash: - md5: 20cfef7aef2c344c6136baec5495cf1c - sha256: 68b8474cab4f80f1e287399f85736f09b724d41d972257a61f7c96a4ded266fe + md5: 692efb054402209710ffea6a93960f33 + sha256: 8182aa6970a92eed22d05e2a007d07c64cae655bf51538fa36cf00623e47bf8c category: main optional: false - name: keyutils @@ -7220,10 +7499,10 @@ package: manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.84.0-ha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.84.0-ha770c72_1.conda hash: - md5: 9c595e87653a36aa4d8c71b4e2f7e586 - sha256: f6a6eb40a33b32eaab5d9ab36567b126f54c0b2112fe53131cf7b55afff2d0d9 + md5: 63a2690ffde5448bd8bbf19b5d1d366c + sha256: f5ac6b12768e5c735d2c8e4e1e05093b105d649a68f02f6a5349f5cb61719b9c category: main optional: false - name: libboost-headers @@ -7231,10 +7510,10 @@ package: manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.84.0-hce30654_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.84.0-hce30654_1.conda hash: - md5: 284cebe4165a186462c4471c11f5ee96 - sha256: ca1bcaac05608ed420650c1cb329bbab7bb0a059dce7f7803a592fcc414d4604 + md5: 6e665d044322dfffd437d7c6090e64f2 + sha256: 006d0e4e266b806eb2280c6e3250e79a011428c21a706ee7d3e4251f66d1f278 category: main optional: false - name: libbrotlicommon @@ -7360,7 +7639,7 @@ package: category: main optional: false - name: libcurl - version: 8.5.0 + version: 8.6.0 manager: conda platform: linux-64 dependencies: @@ -7369,16 +7648,16 @@ package: libnghttp2: '>=1.58.0,<2.0a0' libssh2: '>=1.11.0,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.5.0-hca28451_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.6.0-hca28451_0.conda hash: - md5: 7144d5a828e2cae218e0e3c98d8a0aeb - sha256: 00a6bea5ff90ca58eeb15ebc98e08ffb88bddaff27396bb62640064f59d29cf0 + md5: 704739398d858872cb91610f49f0ef29 + sha256: 357ce806adf1818dc8dccdcd64627758e1858eb0d8a9c91aae4a0eeee2a44608 category: main optional: false - name: libcurl - version: 8.5.0 + version: 8.6.0 manager: conda platform: osx-arm64 dependencies: @@ -7386,12 +7665,12 @@ package: libnghttp2: '>=1.58.0,<2.0a0' libssh2: '>=1.11.0,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.5.0-h2d989ff_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.6.0-h2d989ff_0.conda hash: - md5: f1211ed00947a84e15a964a8f459f620 - sha256: f1c04be217aaf161ce3c99a8d618871295b5dc1eae2f7ff7b32078af50303f5b + md5: 3c0b1d8a9c8952e97c240fe0133dd27e + sha256: 85d2cbba4b0435a6fbf22963a50d2fd8cf2124eb76118e62d616ef355003c5a5 category: main optional: false - name: libcxx @@ -7502,26 +7781,26 @@ package: category: main optional: false - name: libexpat - version: 2.5.0 + version: 2.6.2 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda hash: - md5: 6305a3dd2752c76335295da4e581f2fd - sha256: 74c98a563777ae2ad71f1f74d458a8ab043cee4a513467c159ccf159d0e461f3 + md5: e7ba12deb7020dd080c6c70e7b6f6a3d + sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19 category: main optional: false - name: libexpat - version: 2.5.0 + version: 2.6.2 manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.5.0-hb7217d7_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda hash: - md5: 5a097ad3d17e42c148c9566280481317 - sha256: 7d143a9c991579ad4207f84c632650a571c66329090daa32b3c87cf7311c3381 + md5: e3cde7cfa87f82f7cb13d482d5e0ad09 + sha256: ba7173ac30064ea901a4c9fb5a51846dcc25512ceb565759be7d18cbf3e5415e category: main optional: false - name: libffi @@ -7554,10 +7833,35 @@ package: dependencies: _libgcc_mutex: '0.1' _openmp_mutex: '>=4.5' - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda + hash: + md5: d4ff227c46917d3b4565302a2bbb276b + sha256: d32f78bfaac282cfe5205f46d558704ad737b8dbf71f9227788a5ca80facaba4 + category: main + optional: false +- name: libgcrypt + version: 1.10.3 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libgpg-error: '>=1.47,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.10.3-hd590300_0.conda + hash: + md5: 32d16ad533c59bb0a3c5ffaf16110829 + sha256: d1bd47faa29fec7288c7b212198432b07f890d3d6f646078da93b059c2e9daff + category: main + optional: false +- name: libgcrypt + version: 1.10.3 + manager: conda + platform: osx-arm64 + dependencies: + libgpg-error: '>=1.47,<2.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgcrypt-1.10.3-h93a5062_0.conda hash: - md5: e0dee4121cc9d961b3740e3759b02d13 - sha256: 827c0326a88a042a4b50399c60971a882663c769afcbdfcf64850a9d3f48aaff + md5: f34c7930dcef689658226d4fbf7b3b41 + sha256: 420cf4c920de90d66d0f4d1df8496a08e15193c1c39ab961e6fdc1d42e7bb436 category: main optional: false - name: libgd @@ -7611,7 +7915,7 @@ package: category: main optional: false - name: libgdal - version: 3.8.3 + version: 3.8.4 manager: conda platform: linux-64 dependencies: @@ -7637,35 +7941,35 @@ package: libjpeg-turbo: '>=3.0.0,<4.0a0' libkml: '>=1.3.0,<1.4.0a0' libnetcdf: '>=4.9.2,<4.9.3.0a0' - libpng: '>=1.6.39,<1.7.0a0' - libpq: '>=16.1,<17.0a0' + libpng: '>=1.6.42,<1.7.0a0' + libpq: '>=16.2,<17.0a0' libspatialite: '>=5.1.0,<5.2.0a0' - libsqlite: '>=3.44.2,<4.0a0' + libsqlite: '>=3.45.1,<4.0a0' libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' libuuid: '>=2.38.1,<3.0a0' libwebp-base: '>=1.3.2,<2.0a0' - libxml2: '>=2.12.3,<3.0.0a0' + libxml2: '>=2.12.5,<3.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' openjpeg: '>=2.5.0,<3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' pcre2: '>=10.42,<10.43.0a0' - poppler: '>=23.12.0,<23.13.0a0' + poppler: '>=24.2.0,<24.3.0a0' postgresql: '' proj: '>=9.3.1,<9.3.2.0a0' - tiledb: '>=2.19.0,<2.20.0a0' + tiledb: '>=2.20.0,<2.21.0a0' xerces-c: '>=3.2.5,<3.3.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.8.3-hcd1fc54_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.8.4-h9323651_0.conda hash: - md5: ef5ae0528509a7987cf29e8827f46938 - sha256: 70b40ec4c171010895920000bf877b7454474df0d7473117277b22a0727b7aa4 + md5: f0444ecc68c3f7d0855c9dd6bc3424a7 + sha256: af88738b2eda7d388daad5bd7dd8fe66efbaba300921ecb6fb03d9c5823a950d category: main optional: false - name: libgdal - version: 3.8.3 + version: 3.8.4 manager: conda platform: osx-arm64 dependencies: @@ -7683,36 +7987,36 @@ package: libaec: '>=1.1.2,<2.0a0' libarchive: '>=3.7.2,<3.8.0a0' libcurl: '>=8.5.0,<9.0a0' - libcxx: '>=15' + libcxx: '>=16' libdeflate: '>=1.19,<1.20.0a0' libexpat: '>=2.5.0,<3.0a0' libiconv: '>=1.17,<2.0a0' libjpeg-turbo: '>=3.0.0,<4.0a0' libkml: '>=1.3.0,<1.4.0a0' libnetcdf: '>=4.9.2,<4.9.3.0a0' - libpng: '>=1.6.39,<1.7.0a0' - libpq: '>=16.1,<17.0a0' + libpng: '>=1.6.42,<1.7.0a0' + libpq: '>=16.2,<17.0a0' libspatialite: '>=5.1.0,<5.2.0a0' - libsqlite: '>=3.44.2,<4.0a0' + libsqlite: '>=3.45.1,<4.0a0' libtiff: '>=4.6.0,<4.7.0a0' libwebp-base: '>=1.3.2,<2.0a0' - libxml2: '>=2.12.3,<3.0.0a0' + libxml2: '>=2.12.5,<3.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' openjpeg: '>=2.5.0,<3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' pcre2: '>=10.42,<10.43.0a0' - poppler: '>=23.12.0,<23.13.0a0' + poppler: '>=24.2.0,<24.3.0a0' postgresql: '' proj: '>=9.3.1,<9.3.2.0a0' - tiledb: '>=2.19.0,<2.20.0a0' + tiledb: '>=2.20.0,<2.21.0a0' xerces-c: '>=3.2.5,<3.3.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.8.3-h7e86f1f_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-3.8.4-ha86f356_0.conda hash: - md5: dd42aa63e28b0e8c5d4af6d7995ab151 - sha256: fa94cfe093975c61b426c5d9bcde7e0d52d9623cd515a21bc14b941f024eec31 + md5: a5d5f05fd2c03b0f1ba4863c8a1a0632 + sha256: bff62d710f8a3ae6a0c4671c0584a7680e9e3a468003367ddf5bee8c90ff0079 category: main optional: false - name: libgfortran @@ -7721,10 +8025,10 @@ package: platform: osx-arm64 dependencies: libgfortran5: 13.2.0 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_2.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda hash: - md5: 50c44da4cd89e99a5b18382f565585d8 - sha256: 8af9f94c34150567f2993392c7c1036c99b6844625aea0338535293e4d7b5d23 + md5: 4a55d9e169114b2b90d3ec4604cd7bbf + sha256: 44e541b4821c96b28b27fef5630883a60ce4fee91fd9c79f25a199f8f73f337b category: main optional: false - name: libgfortran-ng @@ -7733,10 +8037,10 @@ package: platform: linux-64 dependencies: libgfortran5: 13.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_5.conda hash: - md5: 4956aae564e90a1fc96f3bc58152c2b2 - sha256: 751dccc714cc6a444e1be1474da2aab19e1a64c73ba3f133165f3d7d71eacc19 + md5: e73e9cfd1191783392131e6238bdb3e9 + sha256: 238c16c84124d58307376715839aa152bd4a1bf5a043052938ad6c3137d30245 category: main optional: false - name: libgfortran5 @@ -7745,10 +8049,10 @@ package: platform: linux-64 dependencies: libgcc-ng: '>=13.2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_5.conda hash: - md5: e661d5238ba69d8fe2e488bbde6f9cc4 - sha256: d3cd28683be2129665bf93eac011476b9903e0d7000bff8e224f857e06d750ee + md5: 7a6bd7a12a4bd359e2afe6c0fa1acace + sha256: ba8d94e8493222ce155bb264d9de4200e41498a458e866fedf444de809bde8b6 category: main optional: false - name: libgfortran5 @@ -7757,14 +8061,43 @@ package: platform: osx-arm64 dependencies: llvm-openmp: '>=8.0.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_2.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda + hash: + md5: 66ac81d54e95c534ae488726c1f698ea + sha256: bafc679eedb468a86aa4636061c55966186399ee0a04b605920d208d97ac579a + category: main + optional: false +- name: libgirepository + version: 1.78.1 + manager: conda + platform: linux-64 + dependencies: + cairo: '>=1.16.0,<2.0a0' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.0,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgirepository-1.78.1-h003a4f0_1.conda + hash: + md5: 806406c7008aab9b295d0cea4d5f90e0 + sha256: 1393f41401f5858e12ec77476e844b86c4d11cc0d82150adaca74f0401cd1b87 + category: main + optional: false +- name: libgirepository + version: 1.78.1 + manager: conda + platform: osx-arm64 + dependencies: + cairo: '>=1.16.0,<2.0a0' + libffi: '>=3.4,<4.0a0' + libglib: '>=2.78.0,<3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgirepository-1.78.1-h10adf5e_1.conda hash: - md5: 55c6859a3606c1516d89768a05ce9074 - sha256: 0b7e069f0227402deef36d04a2695411b0302ef99fe6bf8a9488e472d2e217c1 + md5: fd4b5c5d7a92c2b00027c595dc5dcd8b + sha256: b9a1d9b99a4aefdd4e5cf8cb226413c31a987f1cc641a56bdd8be1f543268e0c category: main optional: false - name: libglib - version: 2.78.3 + version: 2.78.4 manager: conda platform: linux-64 dependencies: @@ -7775,28 +8108,27 @@ package: libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' pcre2: '>=10.42,<10.43.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.4-h783c2da_0.conda hash: - md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 - sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 + md5: d86baf8740d1a906b9716f2a0bac2f2d + sha256: 3a03a5254d2fd29c1e0ffda7250e22991dfbf2c854301fd56c408d97a647cfbd category: main optional: false - name: libglib - version: 2.78.3 + version: 2.78.4 manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' gettext: '>=0.21.1,<1.0a0' - libcxx: '>=16.0.6' + libcxx: '>=16' libffi: '>=3.4,<4.0a0' libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' pcre2: '>=10.42,<10.43.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.78.3-hb438215_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.78.4-h1635a5e_0.conda hash: - md5: 8c98b7018b434236e2c0f14d7cf3c113 - sha256: f26afb1003e810e768138b0c849e9408c0ae8635062aeaf7abae381903a84e53 + md5: 537ff7a85b63d478e563530dfe66a71e + sha256: 8229251ab78074d16c372b5995f19f967321328fdf8723feab7efec66fe6cc03 category: main optional: false - name: libgoogle-cloud @@ -7837,6 +8169,33 @@ package: sha256: 22122939a462f64a82ca2f305c43e5e5cf5a55f1ae12979c2445f9dc196b7047 category: main optional: false +- name: libgpg-error + version: '1.48' + manager: conda + platform: linux-64 + dependencies: + gettext: '>=0.21.1,<1.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.48-h71f35ed_0.conda + hash: + md5: 4d18d86916705d352d5f4adfb7f0edd3 + sha256: c448c6d86d27e10b9e844172000540e9cbfe9c28f968db87f949ba05add9bd50 + category: main + optional: false +- name: libgpg-error + version: '1.48' + manager: conda + platform: osx-arm64 + dependencies: + gettext: '>=0.21.1,<1.0a0' + libcxx: '>=16' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgpg-error-1.48-h91a1ebb_0.conda + hash: + md5: 63e8c65e9782a6580b116e56ec185502 + sha256: 74b738a3e606870c9412d3177690681321b38733f1e592a0c273192f1422f5ef + category: main + optional: false - name: libgrpc version: 1.59.3 manager: conda @@ -7862,19 +8221,18 @@ package: manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' - c-ares: '>=1.21.0,<2.0a0' + c-ares: '>=1.26.0,<2.0a0' libabseil: '>=20230802.1,<20230803.0a0' - libcxx: '>=16.0.6' + libcxx: '>=16' libprotobuf: '>=4.24.4,<4.24.5.0a0' libre2-11: '>=2023.6.2,<2024.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.1,<4.0a0' re2: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.59.3-hbcf6334_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.59.3-h9560976_0.conda hash: - md5: e9c7cbc84af929dd47501629a5e19713 - sha256: 54cacd1fc7503d48c135301a775568f15089b537b3c56804767c627a89a20c30 + md5: 31e7f059601587954b1370fe172d3114 + sha256: 9c0291bf797df0cee46d870bd410968e5955b0573c6b603c0ee7a5fcac06ad91 category: main optional: false - name: libhwloc @@ -7994,6 +8352,43 @@ package: sha256: a917e99f26d205df1ec22d7a9fff0d2f2f3c7ba06ea2be886dc220a8340d5917 category: main optional: false +- name: libmagma + version: 2.7.2 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17' + _openmp_mutex: '>=4.5' + cudatoolkit: '>=11.8,<12' + libblas: '>=3.9.0,<4.0a0' + libgcc-ng: '>=12' + liblapack: '>=3.9.0,<4.0a0' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libmagma-2.7.2-h09b5827_2.conda + hash: + md5: f6de79234f35c2fcc2e49dc66436601d + sha256: 4dd54775f2cfa9c09f4b4cc58a6db00bad50b30e65adf62ffe4213a30d962766 + category: main + optional: false +- name: libmagma_sparse + version: 2.7.2 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17' + _openmp_mutex: '>=4.5' + cudatoolkit: '>=11.8,<12' + libblas: '>=3.9.0,<4.0a0' + libgcc-ng: '>=12' + liblapack: '>=3.9.0,<4.0a0' + libmagma: '>=2.7.2,<2.7.3.0a0' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libmagma_sparse-2.7.2-h09b5827_3.conda + hash: + md5: 53157a5777c664896654d8dbc9fd6bf9 + sha256: ee4a2367446763e6a4ef6d2fa5aea06adfd4ff44853f7390a02b0da77c6f129c + category: main + optional: false - name: libnetcdf version: 4.9.2 manager: conda @@ -8102,18 +8497,6 @@ package: sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 category: main optional: false -- name: libnuma - version: 2.0.16 - manager: conda - platform: linux-64 - dependencies: - libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libnuma-2.0.16-h0b41bf4_1.conda - hash: - md5: 28bfe2cb11357ccc5be21101a6b7ce86 - sha256: 814a50cba215548ec3ebfb53033ffb9b3b070b2966570ff44910b8d9ba1c359d - category: main - optional: false - name: libopenblas version: 0.3.26 manager: conda @@ -8143,55 +8526,55 @@ package: category: main optional: false - name: libpng - version: 1.6.42 + version: 1.6.43 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.42-h2797004_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda hash: - md5: d67729828dc6ff7ba44a61062ad79880 - sha256: 1a0c3a4b7fd1e101cb37dd6d2f8b5ec93409c8cae422f04470fe39a01ef59024 + md5: 009981dd9cfcaa4dbfa25ffaed86bcae + sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 category: main optional: false - name: libpng - version: 1.6.42 + version: 1.6.43 manager: conda platform: osx-arm64 dependencies: libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.42-h091b4b1_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.43-h091b4b1_0.conda hash: - md5: 308b6746e691265c21cb013960c74ae6 - sha256: 6df48b05868437377a0717b486d9f57396a45cb6e3a044453944c8e597b03370 + md5: 77e684ca58d82cae9deebafb95b1a2b8 + sha256: 66c4713b07408398f2221229a1c1d5df57d65dc0902258113f2d9ecac4772495 category: main optional: false - name: libpq - version: '16.1' + version: '16.2' manager: conda platform: linux-64 dependencies: krb5: '>=1.21.2,<1.22.0a0' libgcc-ng: '>=12' - openssl: '>=3.2.0,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.1-h33b98f1_7.conda + openssl: '>=3.2.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.2-h33b98f1_0.conda hash: - md5: 675317e46167caea24542d85c72f19a3 - sha256: 833fd96338dffc6784fb5f79ab805fa5a4c2cabf5c08c4f1d5caf4e290e39c28 + md5: fe0e297faf462ee579c95071a5211665 + sha256: 352748b0499a22e2a8e103f071b8d9357e1fb710c0aec0f79895d3ba03dccb03 category: main optional: false - name: libpq - version: '16.1' + version: '16.2' manager: conda platform: osx-arm64 dependencies: krb5: '>=1.21.2,<1.22.0a0' - openssl: '>=3.2.0,<4.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.1-h0f8b458_7.conda + openssl: '>=3.2.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-16.2-h0f8b458_0.conda hash: - md5: c94283997b390fc897936edf2c1f0d55 - sha256: 2e71c5efc57ec7da59efcb747b615ccde1f70d12eb25128720817a3f3482d622 + md5: fea5d30234a7158f4eaa915b5a6e0c9c + sha256: 0ad2265131a6d79fcfe8c5b7a04884f7377f981d18af775ebb71bc61b0c938b6 category: main optional: false - name: libprotobuf @@ -8224,31 +8607,30 @@ package: category: main optional: false - name: libre2-11 - version: 2023.06.02 + version: 2023.09.01 manager: conda platform: linux-64 dependencies: libabseil: '>=20230802.1,<20230803.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.06.02-h7a70373_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h7a70373_1.conda hash: - md5: c0e7eacd9694db3ef5ef2979a7deea70 - sha256: 22b0b2169c80b65665ba0d6418bd5d3d4c7d89915ee0f9613403efe871c27db8 + md5: e61d774293f3ccfb82561a627e846de4 + sha256: 63ebe0a3244b5f1c61337b5b387a2bacd1ca88cd894229a8cd538ef9a4b51d1a category: main optional: false - name: libre2-11 - version: 2023.06.02 + version: 2023.09.01 manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' libabseil: '>=20230802.1,<20230803.0a0' - libcxx: '>=16.0.6' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.06.02-h1753957_0.conda + libcxx: '>=16' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2023.09.01-h741fcf5_1.conda hash: - md5: 3b8652db4bf4e27fa1446526f7a78498 - sha256: 8bafee8f8ef27f4cb0afffe5404dd1abfc5fd6eac1ee9b4847a756d440bd7aa7 + md5: f3d62e2191ef99037a003e89eb195a3d + sha256: 7f13d83b2d9a5b246dc292c40b33c119fdc6fba6bbd872f5679a43c1a72279bf category: main optional: false - name: librsvg @@ -8314,6 +8696,34 @@ package: sha256: 00f016e7b7d4f68ddefc4e857b63c963402e66aeff8bb560a8bacdd6d51c6508 category: main optional: false +- name: libsecret + version: 0.18.8 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libgcrypt: '>=1.10.1,<2.0a0' + libglib: '>=2.70.2,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsecret-0.18.8-h329b89f_2.tar.bz2 + hash: + md5: 9d6698e3c9585a75156d86f7ef229093 + sha256: c3ffd1ff0d2fa1626a4270ee50a687d25424e8812024d92f88445a2ac9f13931 + category: main + optional: false +- name: libsecret + version: 0.18.8 + manager: conda + platform: osx-arm64 + dependencies: + gettext: '>=0.19.8.1,<1.0a0' + libgcrypt: '>=1.10.1,<2.0a0' + libglib: '>=2.70.2,<3.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsecret-0.18.8-h2b036b6_2.tar.bz2 + hash: + md5: ce9e56544d99ec53cf73839b9d61216e + sha256: 1a86748681f1435763d981ec965e87c4bb281c5e463cd80c82a2841d3553be89 + category: main + optional: false - name: libsodium version: 1.0.18 manager: conda @@ -8408,28 +8818,28 @@ package: category: main optional: false - name: libsqlite - version: 3.44.2 + version: 3.45.2 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.44.2-h2797004_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.2-h2797004_0.conda hash: - md5: 3b6a9f225c3dbe0d24f4fedd4625c5bf - sha256: ee2c4d724a3ed60d5b458864d66122fb84c6ce1df62f735f90d8db17b66cd88a + md5: 866983a220e27a80cb75e85cb30466a1 + sha256: 8cdbeb7902729e319510a82d7c642402981818702b58812af265ef55d1315473 category: main optional: false - name: libsqlite - version: 3.44.2 + version: 3.45.2 manager: conda platform: osx-arm64 dependencies: libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.44.2-h091b4b1_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.45.2-h091b4b1_0.conda hash: - md5: d7e1af696cfadec251a0abdd7b79ed77 - sha256: f0dc2fe69eddb4bab72ff6bb0da51d689294f466ee1b01e80ced1e7878a21aa5 + md5: 9d07427ee5bd9afd1e11ce14368a48d6 + sha256: 7c234320a1a2132b9cc972aaa06bb215bb220a5b1addb0bed7a5a321c805920e category: main optional: false - name: libssh2 @@ -8464,10 +8874,10 @@ package: manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_4.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda hash: - md5: f6a3a9c67eb8030555d04066bcd65320 - sha256: a93f6e0ccffadea286ba8fd0cac04708b9389425ae39c760dd5e501ac8bf8f76 + md5: f6f6600d18a4047b54f803cf708b868a + sha256: a56c5b11f1e73a86e120e6141a42d9e935a99a2098491ac9e15347a1476ce777 category: main optional: false - name: libthrift @@ -8547,38 +8957,23 @@ package: dependencies: __glibc: '>=2.17,<3.0.a0' _openmp_mutex: '>=4.5' + cudatoolkit: '>=11.8,<12' + cudnn: '>=8.8.0.121,<9.0a0' libcblas: '>=3.9.0,<4.0a0' libgcc-ng: '>=12' + libmagma: '>=2.7.2,<2.7.3.0a0' + libmagma_sparse: '>=2.7.2,<2.7.3.0a0' libprotobuf: '>=4.24.4,<4.24.5.0a0' libstdcxx-ng: '>=12' libuv: '>=1.46.0,<2.0a0' + magma: '>=2.7.2,<2.7.3.0a0' mkl: '>=2023.2.0,<2024.0a0' + nccl: '>=2.19.4.1,<3.0a0' sleef: '>=3.5.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.1.2-cpu_mkl_hadc400e_100.conda - hash: - md5: 54f228509c64d8de523ee6ab19e5f3e9 - sha256: e904bb9260816595e34c5fed07ce8d1ae5572bce36c283425fbec0bddcd3ce88 - category: main - optional: false -- name: libtorch - version: 2.1.2 - manager: conda - platform: osx-arm64 - dependencies: - libcblas: '>=3.9.0,<4.0a0' - libcxx: '>=14' - liblapack: '>=3.9.0,<4.0a0' - libprotobuf: '>=4.24.4,<4.24.5.0a0' - libuv: '>=1.46.0,<2.0a0' - llvm-openmp: '>=16.0.6' - numpy: '>=1.22.4,<2.0a0' - python: '>=3.9,<3.10.0a0' - python_abi: 3.9.* - sleef: '>=3.5.1,<4.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libtorch-2.1.2-cpu_generic_hd9c544a_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.1.2-cuda118_h3d7bd98_300.conda hash: - md5: 9b65a96d6b8ec78cda4a5182a970f970 - sha256: 1e85acec55f3bd1af9af46a45bce917c3e0d980b3dc59242c4254fbeab5a79f5 + md5: 19f2c0ac4037db9622363dbdcdd21df0 + sha256: 80c47ee854a10b028841f581c8651b85ed2453d086b8a8a784326606bbb7a945 category: main optional: false - name: libutf8proc @@ -8617,26 +9012,26 @@ package: category: main optional: false - name: libuv - version: 1.46.0 + version: 1.48.0 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.46.0-hd590300_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.48.0-hd590300_0.conda hash: - md5: d23c76f7e6dcd6243d1b6ef5e62d17d2 - sha256: 4bc4c946e9a532c066442714eeeeb1ffbd03cd89789c4047293f5e782b5fedd7 + md5: 7e8b914b1062dd4386e3de4d82a3ead6 + sha256: b7c0e8a0c93c2621be7645b37123d4e8d27e8a974da26a3fba47a9c37711aa7f category: main optional: false - name: libuv - version: 1.46.0 + version: 1.48.0 manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.46.0-hb547adb_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.48.0-h93a5062_0.conda hash: - md5: 5f1d535f82e8210ac80d191610b92325 - sha256: f2fe8e22a99f91761c16dc7b00408bff0f5c30d4cccc6ea562db00a4041c5579 + md5: abfd49e80f13453b62a56be226120ea8 + sha256: 60bed2a7a85096387ab0381cbc32ea2da7f8dd99bd90e440983019c0cdd96ad1 category: main optional: false - name: libwebp @@ -8737,7 +9132,7 @@ package: category: main optional: false - name: libxml2 - version: 2.12.4 + version: 2.12.6 manager: conda platform: linux-64 dependencies: @@ -8746,14 +9141,14 @@ package: libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.6-h232c23b_0.conda hash: - md5: 53e951fab78d7e3bab40745f7b3d1620 - sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 + md5: d86653ff5ccb88bf7f13833fdd8789e0 + sha256: 4646ae14fb226080d2bfeb89510147abebd603bab1c80bb6b3c02a01c10c6ee5 category: main optional: false - name: libxml2 - version: 2.12.4 + version: 2.12.6 manager: conda platform: osx-arm64 dependencies: @@ -8761,10 +9156,10 @@ package: libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.4-h0d0cfa8_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.6-h0d0cfa8_0.conda hash: - md5: 2ce68362b6ba7e78a066abce22811df7 - sha256: 70863a5554cbdd573cf852571a6ef015e5376f8969068725523a01dff7ff4de3 + md5: 4713f0d8bb1e50cc4757c118b6fe20d5 + sha256: 38a5e25e1fd3b59fd31301f39a0f02ca28925d7d102348921b9366e580cd810c category: main optional: false - name: libzip @@ -8820,27 +9215,27 @@ package: category: main optional: false - name: llvm-openmp - version: 17.0.6 + version: 18.1.1 manager: conda platform: linux-64 dependencies: libzlib: '>=1.2.13,<1.3.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-17.0.6-h4dfa4b3_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-18.1.1-h4dfa4b3_0.conda hash: - md5: c1665f9c1c9f6c93d8b4e492a6a39056 - sha256: 18a9db4cc139e72e8eac80a34f6536491fe318d3785bc2c35fac42cd00676376 + md5: 89023cfc92c7e9dd2e822ebdb4f753b0 + sha256: a85cadbb1b00d181a6462700c3d1da7092c53b3f1f90c76ec560fef34aff226b category: main optional: false - name: llvm-openmp - version: 17.0.6 + version: 18.1.1 manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-17.0.6-hcd81f8e_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.1-hcd81f8e_0.conda hash: - md5: 52019d2fa0eddbbc4e6dcd30fae0c0a4 - sha256: 0c217326c5931c1416b82f98169b8a8a52139f6f5f299dbb2efa7b21f65f225a + md5: 4f878f28804ed85e5191132c12c1fca5 + sha256: 38cf66997aae1bb20575ca829c322cb255c23652609576f76590f4ab7e35572a category: main optional: false - name: locket @@ -8944,6 +9339,21 @@ package: sha256: ae029e5c16893071d29a11ddbfdbdb01b2ebf10d1785f54370934439d8b71817 category: main optional: false +- name: magma + version: 2.7.2 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17' + cudatoolkit: '>=11.8,<12' + libmagma: '>=2.7.2,<2.7.3.0a0' + libmagma_sparse: 2.7.2 + url: https://conda.anaconda.org/conda-forge/linux-64/magma-2.7.2-h4aca40b_3.conda + hash: + md5: fe218300f1dfb9fbedbd210b3b9e020e + sha256: 9e3240a60a16269c986bcd3d1bee9e35cf81a843ff33b68ee6a2a1e7cbb7fd1c + category: main + optional: false - name: makefun version: 1.15.2 manager: conda @@ -8988,8 +9398,8 @@ package: platform: osx-arm64 dependencies: importlib-metadata: '' - python: '>=3.6' markupsafe: '>=0.9.2' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/mako-1.3.2-pyhd8ed1ab_0.conda hash: md5: a6b5f0124bc6d061350edd6d7f96dd05 @@ -9014,46 +9424,46 @@ package: category: main optional: false - name: mapclassify - version: 2.5.0 + version: 2.6.1 manager: conda platform: osx-arm64 dependencies: - scikit-learn: '' - networkx: '' - python: '>=3.6' - pandas: '>=1.0' - scipy: '>=1.0' - numpy: '>=1.3' - url: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.5.0-pyhd8ed1ab_1.conda + networkx: '>=2.7' + numpy: '>=1.23' + pandas: '>=1.4,!=1.5.0' + python: '>=3.9' + scikit-learn: '>=1.0' + scipy: '>=1.8' + url: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.6.1-pyhd8ed1ab_0.conda hash: - md5: db1aeaff6e248db425e049feffded7a9 - sha256: 78aadbd9953976678b6e3298ac26a63cf9390a8794db3ff71f3fe5b6d13a35ca + md5: 6aceae1ad4f16cf7b73ee04189947f98 + sha256: 204ab8b242229d422b33cfec07ea61cefa8bd22375a16658afbabaafce031d64 category: main optional: false - name: markdown - version: 3.5.2 + version: '3.6' manager: conda platform: linux-64 dependencies: importlib-metadata: '>=4.4' python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/markdown-3.5.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/markdown-3.6-pyhd8ed1ab_0.conda hash: - md5: db7b48fa4eeb0c21b2f3f5b1f7d9ebcf - sha256: fbc70dc01b361fe46e7b4e102e725f99ba60bf9903c2fa86b53ad6b70ded677a + md5: 06e9bebf748a0dea03ecbe1f0e27e909 + sha256: fce1fde00359696983989699c00f9891194c4ebafea647a8d21b7e2e3329b56e category: main optional: false - name: markdown - version: 3.5.2 + version: '3.6' manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' importlib-metadata: '>=4.4' - url: https://conda.anaconda.org/conda-forge/noarch/markdown-3.5.2-pyhd8ed1ab_0.conda + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/markdown-3.6-pyhd8ed1ab_0.conda hash: - md5: db7b48fa4eeb0c21b2f3f5b1f7d9ebcf - sha256: fbc70dc01b361fe46e7b4e102e725f99ba60bf9903c2fa86b53ad6b70ded677a + md5: 06e9bebf748a0dea03ecbe1f0e27e909 + sha256: fce1fde00359696983989699c00f9891194c4ebafea647a8d21b7e2e3329b56e category: main optional: false - name: markdown-it-py @@ -9075,9 +9485,9 @@ package: manager: conda platform: osx-arm64 dependencies: + mdurl: '>=0.1,<1' python: '>=3.7' typing_extensions: '>=3.7.4' - mdurl: '>=0.1,<1' url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-2.2.0-pyhd8ed1ab_0.conda hash: md5: b2928a6c6d52d7e3562b4a59c3214e3a @@ -9085,56 +9495,56 @@ package: category: main optional: false - name: markupsafe - version: 2.1.4 + version: 2.1.5 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py39hd1e30aa_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.5-py39hd1e30aa_0.conda hash: - md5: 847ad1c2bcbef1e2febfdaa3b199c2a4 - sha256: e3019f819f354cc7ac080704ae9faa87618f5bbf536dc5b82f52296eb7f80459 + md5: 9a9a22eb1f83c44953319ee3b027769f + sha256: 855d305ceda4751cdd495923104dd34da5a6be45e4fd50a4e80361d9f95bcb38 category: main optional: false - name: markupsafe - version: 2.1.4 + version: 2.1.5 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.4-py39h17cfd9d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.5-py39h17cfd9d_0.conda hash: - md5: 5d9372d65ab80b7542335e023aabf572 - sha256: 92064bb9afdf6bbb95977f3deb8056d974213b75c91bde0af638da9e9b89d730 + md5: 554a0bcb046e1bac7887a92f33b96acc + sha256: e18591162cb401bc651a69bd2545a679b69c54405d778d05778f43ba76c6a4dd category: main optional: false - name: marshmallow - version: 3.20.2 + version: 3.21.1 manager: conda platform: linux-64 dependencies: packaging: '>=17.0' - python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/marshmallow-3.20.2-pyhd8ed1ab_0.conda + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/marshmallow-3.21.1-pyhd8ed1ab_0.conda hash: - md5: 1c5717a601c50f58452839773f3a1485 - sha256: 9f9eb62e87eae91de3763d519475cc883ebe2fdc3e429283cd2abf8cba6120d0 + md5: ae303aa7dc100bc3bc01b5a3b7ca3567 + sha256: d1c825bebd47db2327819562d23560b1e9cb50c73e964848a6f2e58f61d962d1 category: main optional: false - name: marshmallow - version: 3.20.2 + version: 3.21.1 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' packaging: '>=17.0' - url: https://conda.anaconda.org/conda-forge/noarch/marshmallow-3.20.2-pyhd8ed1ab_0.conda + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/marshmallow-3.21.1-pyhd8ed1ab_0.conda hash: - md5: 1c5717a601c50f58452839773f3a1485 - sha256: 9f9eb62e87eae91de3763d519475cc883ebe2fdc3e429283cd2abf8cba6120d0 + md5: ae303aa7dc100bc3bc01b5a3b7ca3567 + sha256: d1c825bebd47db2327819562d23560b1e9cb50c73e964848a6f2e58f61d962d1 category: main optional: false - name: marshmallow-enum @@ -9155,8 +9565,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '' marshmallow: '>=2.0.0' + python: '' url: https://conda.anaconda.org/conda-forge/noarch/marshmallow-enum-1.5.1-pyh9f0ad1d_3.tar.bz2 hash: md5: 67c5202bf14543cd1bb97f129d3f26dd @@ -9181,8 +9591,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' marshmallow: '>=3.11' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/marshmallow-jsonschema-0.13.0-pyhd8ed1ab_0.tar.bz2 hash: md5: bd47c87386365fcaf782c9c407b50507 @@ -9216,7 +9626,7 @@ package: category: main optional: false - name: matplotlib-base - version: 3.8.2 + version: 3.8.3 manager: conda platform: linux-64 dependencies: @@ -9237,18 +9647,17 @@ package: python-dateutil: '>=2.7' python_abi: 3.9.* tk: '>=8.6.13,<8.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.2-py39he9076e7_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.3-py39he9076e7_0.conda hash: - md5: 6085411aa2f0b2b801d3b46e1d3b83c5 - sha256: f5e1275e1e7f644d5c91780c08f9868153b8b1a00703e7b03f4b171be02879e1 + md5: 5456bdfe5809ebf5689eda6c808b686e + sha256: 6a430a5816f189b7277182b6c251236c5af22e254b8253eeb6ffcb06a8ea7087 category: main optional: false - name: matplotlib-base - version: 3.8.2 + version: 3.8.3 manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' certifi: '>=2020.06.20' contourpy: '>=1.0.1' cycler: '>=0.10' @@ -9256,7 +9665,7 @@ package: freetype: '>=2.12.1,<3.0a0' importlib-resources: '>=3.2.0' kiwisolver: '>=1.3.1' - libcxx: '>=16.0.6' + libcxx: '>=16' numpy: '>=1.22.4,<2.0a0' packaging: '>=20.0' pillow: '>=8' @@ -9264,10 +9673,10 @@ package: python: '>=3.9,<3.10.0a0' python-dateutil: '>=2.7' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.2-py39h1a09f3e_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.8.3-py39hbab7938_0.conda hash: - md5: 98e278f5a585b596276064e25affcf11 - sha256: 904f0e7c2a88fc55407560bcd94d44b54ec916e57540c5f53ca631eb276df5f0 + md5: c8a05fdf66e3f0bfc087d29461da56e5 + sha256: 698ac01f950fb5646275c94c2719782e3a77d26164a5491c4ad4dfc6d9be1b71 category: main optional: false - name: matplotlib-inline @@ -9288,8 +9697,8 @@ package: manager: conda platform: osx-arm64 dependencies: - traitlets: '' python: '>=3.6' + traitlets: '' url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 hash: md5: b21613793fcc81d944c76c9f2864a7de @@ -9314,8 +9723,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' markdown-it-py: '>=1.0.0,<4.0.0' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/mdit-py-plugins-0.4.0-pyhd8ed1ab_0.conda hash: md5: 6c5358a10873a15398b6f15f60cb5e1f @@ -9347,7 +9756,7 @@ package: category: main optional: false - name: minizip - version: 4.0.4 + version: 4.0.5 manager: conda platform: linux-64 dependencies: @@ -9356,31 +9765,31 @@ package: libiconv: '>=1.17,<2.0a0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.4-h0ab5242_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.5-h0ab5242_0.conda hash: - md5: 813bc75d9c33ddd9c9d5b8d9c560e152 - sha256: e25d24c4841aa85ed2153f826ae58e56ae4d12704fd9e52005a3d7edfeb3b95a + md5: 557396140c71eba588e96d597e0c61aa + sha256: 1a56549751f4c4a7998e0a8bcff367c3992cb832c0b211d775cfd644e1ef5e6b category: main optional: false - name: minizip - version: 4.0.4 + version: 4.0.5 manager: conda platform: osx-arm64 dependencies: bzip2: '>=1.0.8,<2.0a0' - libcxx: '>=15' + libcxx: '>=16' libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' xz: '>=5.2.6,<6.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.4-hc35e051_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.5-hc35e051_0.conda hash: - md5: 293ad87f065d0e1dc011ccafeb1bb0be - sha256: 0fbf65095148cfe9dab8b32b533b3d2752a66bbf459816345773ed73844a448b + md5: 3698392e5f0823e563c306dde1d3a800 + sha256: 7ad93499e224d49c4f342afb85e24681fa3ef8405e2b1e0a4cb549e90eb8486d category: main optional: false - name: mistune @@ -9535,66 +9944,99 @@ package: category: main optional: false - name: modin - version: 0.22.3 + version: 0.28.0 manager: conda platform: linux-64 dependencies: - modin-dask: 0.22.3 + modin-dask: 0.28.0 python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/modin-0.22.3-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/modin-0.28.0-py39hf3d152e_0.conda hash: - md5: 88b3e075452ea617716af838a80237df - sha256: a169089f9fbaa73eec10fe27b3a2bf15e5251bec930fc09fca6b39642765dc75 + md5: 690520f01db06a532051adca1206c3de + sha256: 6e99d2506b6943549283b7e48f1e529c085ac9b5ef52b2e617efb2ea20e6562a category: main optional: false - name: modin - version: 0.8.2 + version: 0.28.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - dask: '>=2.1.0' - distributed: '>=2.3.2' - pandas: 1.1.4 - url: https://conda.anaconda.org/conda-forge/noarch/modin-0.8.2-pyhd8ed1ab_0.tar.bz2 + modin-dask: 0.28.0 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/modin-0.28.0-py39hdf13c20_0.conda hash: - md5: a42e5ad474f76e75db0469cdb7da8b59 - sha256: 20347140b5feb242d756bbfbf25b5bee7636d3ff87c9001b7c95e6a55fc7e2df + md5: 2c0aa1fd11be5bf5b1bdbc915e0b9e40 + sha256: 9d886effb42c46ef14cb266e9b99853312ddabed3ada104dd30539e165f70932 category: main optional: false - name: modin-core - version: 0.22.3 + version: 0.28.0 manager: conda platform: linux-64 dependencies: - fsspec: '' - numpy: '>=1.18.5' - packaging: '' - pandas: 1.5.3 - psutil: '' + fsspec: '>=2022.11.0' + numpy: '>=1.22.4' + packaging: '>=21.0' + pandas: '>=2.2,<2.3' + psutil: '>=5.8.0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/modin-core-0.22.3-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/modin-core-0.28.0-py39hf3d152e_0.conda hash: - md5: 821b7983b179c259abe5295f59c079ea - sha256: d9c8a8425c255048e911934af8b1009509c9a5b5ff1f3cdbac84e6b3bdc1a82a + md5: 88880e1fc6ba6b759e7d0429fed741f8 + sha256: c9fbb625f88191618fd9cd8b9c4ba7b490a12c87b283bc1115d34b698190f4c7 + category: main + optional: false +- name: modin-core + version: 0.28.0 + manager: conda + platform: osx-arm64 + dependencies: + fsspec: '>=2022.11.0' + numpy: '>=1.22.4' + packaging: '>=21.0' + pandas: '>=2.2,<2.3' + psutil: '>=5.8.0' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/modin-core-0.28.0-py39h2804cbe_0.conda + hash: + md5: d378d3a53862f2adb93bd6873bf2d0d0 + sha256: 426aba167d8b471578ee94fedfa72c19c7275bc305116e38613597ead256e61e category: main optional: false - name: modin-dask - version: 0.22.3 + version: 0.28.0 manager: conda platform: linux-64 dependencies: dask: '>=2.22.0' distributed: '>=2.22.0' - modin-core: 0.22.3 + modin-core: 0.28.0 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/linux-64/modin-dask-0.28.0-py39hf3d152e_0.conda + hash: + md5: 16ab25beae69cde03b76e72f061d2bf6 + sha256: 97c4ba6e462c1dd227bd1cf1e3af156ba7eb2136e31db40832650c117d9e9ec2 + category: main + optional: false +- name: modin-dask + version: 0.28.0 + manager: conda + platform: osx-arm64 + dependencies: + dask: '>=2.22.0' + distributed: '>=2.22.0' + modin-core: 0.28.0 python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/modin-dask-0.22.3-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/modin-dask-0.28.0-py39hdf13c20_0.conda hash: - md5: 4f514fb1232a6b05d0e5b198337a2bca - sha256: aada21014ca8b7bf3790bec16184120c06dbea78f0f5d550a9b28749c6032c23 + md5: f82af6f891bd9e583c2cdfef3ffe599b + sha256: 3902dd09fee2184faeb98ed87942a5db64e53736959a03e048aae6b5e82aa157 category: main optional: false - name: more-itertools @@ -9698,61 +10140,69 @@ package: category: main optional: false - name: msal - version: 1.26.0 + version: 1.27.0 manager: conda platform: linux-64 dependencies: - cryptography: <44,>=0.6 + cryptography: <45,>=0.6 pyjwt: <3,>=1.0.0 python: '>=3.6' requests: <3,>=2.0.0 - url: https://conda.anaconda.org/conda-forge/noarch/msal-1.26.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/msal-1.27.0-pyhd8ed1ab_0.conda hash: - md5: 9d9b0ef23f5dbe0d612ca037b9bfb410 - sha256: e0eb5606b4a164964d663d7a215ac9cd18db1ce1eca544aa61348e0a2bda94a9 + md5: 95a138b82ec36756dd8c4bd25e564597 + sha256: e3f5876e8ea2078aba5b34d6dde53910afc8f88bf6d9eec11c0bee9eb9ba6ea8 category: main optional: false - name: msal - version: 1.26.0 + version: 1.27.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - cryptography: <44,>=0.6 + cryptography: <45,>=0.6 pyjwt: <3,>=1.0.0 + python: '>=3.6' requests: <3,>=2.0.0 - url: https://conda.anaconda.org/conda-forge/noarch/msal-1.26.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/msal-1.27.0-pyhd8ed1ab_0.conda hash: - md5: 9d9b0ef23f5dbe0d612ca037b9bfb410 - sha256: e0eb5606b4a164964d663d7a215ac9cd18db1ce1eca544aa61348e0a2bda94a9 + md5: 95a138b82ec36756dd8c4bd25e564597 + sha256: e3f5876e8ea2078aba5b34d6dde53910afc8f88bf6d9eec11c0bee9eb9ba6ea8 category: main optional: false - name: msal_extensions - version: 1.0.0 + version: 1.1.0 manager: conda platform: linux-64 dependencies: + libsecret: '' msal: '>=0.4.1,<2.0' + packaging: '' portalocker: '>=1.6,<3.0' - python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/msal_extensions-1.0.0-pyhd8ed1ab_0.tar.bz2 + pygobject: '>=3,<4' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/linux-64/msal_extensions-1.1.0-py39hf3d152e_1.conda hash: - md5: db0e3cc6e5e99baf237a2ab73898f553 - sha256: 73096cb7f0939595651fb1555a201b3a31adb3dfeb833e70af2d4313015dd51f + md5: 74312f2baf4e602530545e5c2b532fbe + sha256: 650f8abd6ffb20e2d07dcebe98cee4f4aa1e14194ac6f19e5f6af75642122b33 category: main optional: false - name: msal_extensions - version: 1.0.0 + version: 1.1.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' + libsecret: '' msal: '>=0.4.1,<2.0' + packaging: '' portalocker: '>=1.6,<3.0' - url: https://conda.anaconda.org/conda-forge/noarch/msal_extensions-1.0.0-pyhd8ed1ab_0.tar.bz2 + pygobject: '>=3,<4' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/msal_extensions-1.1.0-py39h2804cbe_1.conda hash: - md5: db0e3cc6e5e99baf237a2ab73898f553 - sha256: 73096cb7f0939595651fb1555a201b3a31adb3dfeb833e70af2d4313015dd51f + md5: 7831a31c47eb638655443b96be8bb381 + sha256: 7276a31aec8ab862ccfa30c371dc761ea9fe78fbb6d2b8e656d4247f75643815 category: main optional: false - name: msgpack-python @@ -9786,30 +10236,30 @@ package: category: main optional: false - name: multidict - version: 6.0.4 + version: 6.0.5 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/multidict-6.0.4-py39hd1e30aa_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/multidict-6.0.5-py39hd1e30aa_0.conda hash: - md5: 6c87066b599dc8d932437abdc65ed4b9 - sha256: fc292f5174cf9f8669fe144e8ed4c1b79d3061a92e60bca58d189194e65f4959 + md5: e2005168d5a334f88a1d95d02e139239 + sha256: 9d07c952bd052b95155942d07d30d95eb0d8dfecfc9b0b40b8ba50323dc719da category: main optional: false - name: multidict - version: 6.0.4 + version: 6.0.5 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.0.4-py39h02fc5c5_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.0.5-py39h02fc5c5_0.conda hash: - md5: a73bf93d2051be85485b381570dfd1da - sha256: 9bf0acebfa00647f98593179927751e3f9b5ff2bb052419e677f143314543bc1 + md5: 634fe6827968117d1fe51b025849fd99 + sha256: ccf5b7bd1f858a8bf7dfea38e2a69ba4ca89c7c95bced47a98e5bf186b59b3ae category: main optional: false - name: multimethod @@ -9837,32 +10287,32 @@ package: category: main optional: false - name: multiprocess - version: 0.70.15 + version: 0.70.16 manager: conda platform: linux-64 dependencies: - dill: '>=0.3.6' + dill: '>=0.3.8' libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/multiprocess-0.70.15-py39hd1e30aa_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/multiprocess-0.70.16-py39hd1e30aa_0.conda hash: - md5: ba981804a87d06ba9899e938c3178ed2 - sha256: 7f9c6d04b5ec3df502599ebd3e86a95194bb7358d70c23374f8b71a89040194a + md5: 9cef252eafc7a1a0ddba737290a1c4e2 + sha256: 805bc36c1aa37d80757b96cae7f12944343f1099c68813606416e35486c703d3 category: main optional: false - name: multiprocess - version: 0.70.15 + version: 0.70.16 manager: conda platform: osx-arm64 dependencies: - dill: '>=0.3.6' + dill: '>=0.3.8' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/multiprocess-0.70.15-py39h0f82c59_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/multiprocess-0.70.16-py39h17cfd9d_0.conda hash: - md5: 3b94f36e225c5b5fe8d37ce3577cf72c - sha256: 0675aaf60406afb644f42b714f58979feaa99892e98aca83b81b8376df7b5997 + md5: 785e3f2fca33cf22a899ad2f25b1f6df + sha256: 9d9d0ebe8f7ab624ff3951ef2ca9a12a46ce2fae9a17f78596322fa043f4290b category: main optional: false - name: munkres @@ -9940,17 +10390,17 @@ package: manager: conda platform: osx-arm64 dependencies: - pyyaml: '' - typing_extensions: '' - ipython: '' importlib-metadata: '' ipykernel: '' + ipython: '' + jupyter-cache: '>=0.5.0,<0.7.0' + myst-parser: '>=0.18.0,<0.19.0' nbclient: '' - python: '>=3.7' nbformat: '>=5.0,<6' + python: '>=3.7' + pyyaml: '' sphinx: '>=4,<6' - myst-parser: '>=0.18.0,<0.19.0' - jupyter-cache: '>=0.5.0,<0.7.0' + typing_extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/myst-nb-0.17.2-pyhd8ed1ab_0.conda hash: md5: 40190b7d06f86b63d28fa78aaa39c023 @@ -9981,14 +10431,14 @@ package: manager: conda platform: osx-arm64 dependencies: - pyyaml: '' - typing-extensions: '' + docutils: '>=0.15,<0.20' jinja2: '' - python: '>=3.7' markdown-it-py: '>=1.0.0,<3.0.0' - sphinx: '>=4,<6' - docutils: '>=0.15,<0.20' mdit-py-plugins: '>=0.3.1,<1' + python: '>=3.7' + pyyaml: '' + sphinx: '>=4,<6' + typing-extensions: '' url: https://conda.anaconda.org/conda-forge/noarch/myst-parser-0.18.1-pyhd8ed1ab_0.tar.bz2 hash: md5: bcfdf5c7d8bf5c6f6be7b4c66fff2eca @@ -10016,10 +10466,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' jupyter_client: '>=6.1.12' jupyter_core: '>=4.12,!=5.0.*' nbformat: '>=5.1' + python: '>=3.7' traitlets: '>=5.3' url: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.7.4-pyhd8ed1ab_0.conda hash: @@ -10028,35 +10478,35 @@ package: category: main optional: false - name: nbconvert - version: 7.14.2 + version: 7.16.2 manager: conda platform: linux-64 dependencies: - nbconvert-core: 7.14.2 - nbconvert-pandoc: 7.14.2 + nbconvert-core: 7.16.2 + nbconvert-pandoc: 7.16.2 python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.14.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.16.2-pyhd8ed1ab_0.conda hash: - md5: 0ac429dbe14800f8cb97b892b107bc85 - sha256: 3fd752441d18a2f7fe19a327a767bbfa71092e66bef6eac0bf74de42166bc19e + md5: e14e35cc4a5c90694bb41c5317b576a8 + sha256: 551bbd14019a1df2f44b7e392f590674f63547bcfc7729b93bc4de46125f8565 category: main optional: false - name: nbconvert - version: 7.14.2 + version: 7.16.2 manager: conda platform: osx-arm64 dependencies: + nbconvert-core: 7.16.2 + nbconvert-pandoc: 7.16.2 python: '>=3.8' - nbconvert-core: 7.14.2 - nbconvert-pandoc: 7.14.2 - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.14.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.16.2-pyhd8ed1ab_0.conda hash: - md5: 0ac429dbe14800f8cb97b892b107bc85 - sha256: 3fd752441d18a2f7fe19a327a767bbfa71092e66bef6eac0bf74de42166bc19e + md5: e14e35cc4a5c90694bb41c5317b576a8 + sha256: 551bbd14019a1df2f44b7e392f590674f63547bcfc7729b93bc4de46125f8565 category: main optional: false - name: nbconvert-core - version: 7.14.2 + version: 7.16.2 manager: conda platform: linux-64 dependencies: @@ -10077,70 +10527,70 @@ package: python: '>=3.8' tinycss2: '' traitlets: '>=5.0' - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.14.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.2-pyhd8ed1ab_0.conda hash: - md5: 631800aa8cc7ccf61e70087355d95827 - sha256: ba3e9a42ea03411d77ac28f14ce9bc6f70710ce1a8f4a970322b2daa91e47ce5 + md5: 5ab3248dd05c543dc631276455ef6a54 + sha256: e1fe894114763addc98ef147a78fcd9a518bf97d268394c356b80c572c78c82f category: main optional: false - name: nbconvert-core - version: 7.14.2 + version: 7.16.2 manager: conda platform: osx-arm64 dependencies: - packaging: '' beautifulsoup4: '' - defusedxml: '' bleach: '' - tinycss2: '' - jupyterlab_pygments: '' - python: '>=3.8' - jinja2: '>=3.0' + defusedxml: '' entrypoints: '>=0.2.2' + jinja2: '>=3.0' jupyter_core: '>=4.7' - traitlets: '>=5.0' + jupyterlab_pygments: '' markupsafe: '>=2.0' - pandocfilters: '>=1.4.1' + mistune: '>=2.0.3,<4' + nbclient: '>=0.5.0' nbformat: '>=5.1' + packaging: '' + pandocfilters: '>=1.4.1' pygments: '>=2.4.1' - nbclient: '>=0.5.0' - mistune: '>=2.0.3,<4' - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.14.2-pyhd8ed1ab_0.conda + python: '>=3.8' + tinycss2: '' + traitlets: '>=5.0' + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.2-pyhd8ed1ab_0.conda hash: - md5: 631800aa8cc7ccf61e70087355d95827 - sha256: ba3e9a42ea03411d77ac28f14ce9bc6f70710ce1a8f4a970322b2daa91e47ce5 + md5: 5ab3248dd05c543dc631276455ef6a54 + sha256: e1fe894114763addc98ef147a78fcd9a518bf97d268394c356b80c572c78c82f category: main optional: false - name: nbconvert-pandoc - version: 7.14.2 + version: 7.16.2 manager: conda platform: linux-64 dependencies: - nbconvert-core: 7.14.2 + nbconvert-core: 7.16.2 pandoc: '' python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.14.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.16.2-pyhd8ed1ab_0.conda hash: - md5: 27bb156a0e59f9c3b656e3e289475fbd - sha256: f6e7154d9bd74a9c174996b450943571842ffba61d7b2ccead9015a32a795dff + md5: 7a0bfebd69213722427cb61b077b4187 + sha256: 9887eb63dd5131b9bc5a250e29d018b12ad4f3bbfb7ceb59c5923fb405cc36ce category: main optional: false - name: nbconvert-pandoc - version: 7.14.2 + version: 7.16.2 manager: conda platform: osx-arm64 dependencies: + nbconvert-core: 7.16.2 pandoc: '' python: '>=3.8' - nbconvert-core: 7.14.2 - url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.14.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.16.2-pyhd8ed1ab_0.conda hash: - md5: 27bb156a0e59f9c3b656e3e289475fbd - sha256: f6e7154d9bd74a9c174996b450943571842ffba61d7b2ccead9015a32a795dff + md5: 7a0bfebd69213722427cb61b077b4187 + sha256: 9887eb63dd5131b9bc5a250e29d018b12ad4f3bbfb7ceb59c5923fb405cc36ce category: main optional: false - name: nbformat - version: 5.9.2 + version: 5.10.3 manager: conda platform: linux-64 dependencies: @@ -10149,26 +10599,40 @@ package: python: '>=3.8' python-fastjsonschema: '' traitlets: '>=5.1' - url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.3-pyhd8ed1ab_0.conda hash: - md5: 61ba076de6530d9301a0053b02f093d2 - sha256: fc82c5a9116820757b03ffb836b36f0f50e4cd390018024dbadb0ee0217f6992 + md5: ca3d437c0ef2e87f63d085822c74c49a + sha256: 774ba7f0f175851723d9e1524ca5246b431eca1b1e22387b58a80ad0dcd7acd8 category: main optional: false - name: nbformat - version: 5.9.2 + version: 5.10.3 manager: conda platform: osx-arm64 dependencies: + jsonschema: '>=2.6' jupyter_core: '' - python-fastjsonschema: '' python: '>=3.8' + python-fastjsonschema: '' traitlets: '>=5.1' - jsonschema: '>=2.6' - url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.3-pyhd8ed1ab_0.conda + hash: + md5: ca3d437c0ef2e87f63d085822c74c49a + sha256: 774ba7f0f175851723d9e1524ca5246b431eca1b1e22387b58a80ad0dcd7acd8 + category: main + optional: false +- name: nccl + version: 2.20.5.1 + manager: conda + platform: linux-64 + dependencies: + cuda-version: '>=11.8,<12.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/nccl-2.20.5.1-h6103f9b_0.conda hash: - md5: 61ba076de6530d9301a0053b02f093d2 - sha256: fc82c5a9116820757b03ffb836b36f0f50e4cd390018024dbadb0ee0217f6992 + md5: bedb0b33c5e3e6fbd4dce4f6f07fea72 + sha256: 0ccf2718580f5cfc173ddc6b073512de24395a316176071288ec97a97e876c22 category: main optional: false - name: ncurses @@ -10232,15 +10696,15 @@ package: category: main optional: false - name: networkx - version: '3.2' + version: 3.2.1 manager: conda platform: osx-arm64 dependencies: python: '>=3.9' - url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda hash: - md5: cec8cc498664cc00a070676aa89e69a7 - sha256: 3be9dc03b612dc3a52ca388d03f6eadd4f675bd244e61c13a6caafdf26e0a35d + md5: 425fce3b531bed6ec3c74fab3e5f0a1c + sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d category: main optional: false - name: nodeenv @@ -10261,8 +10725,8 @@ package: manager: conda platform: osx-arm64 dependencies: - setuptools: '' python: 2.7|>=3.7 + setuptools: '' url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda hash: md5: 2a75b296096adabbabadd5e9782e5fcc @@ -10281,63 +10745,63 @@ package: category: main optional: false - name: notebook - version: 7.0.7 + version: 7.1.2 manager: conda platform: linux-64 dependencies: jupyter_server: '>=2.4.0,<3' - jupyterlab: '>=4.0.7,<5' + jupyterlab: '>=4.1.1,<4.2' jupyterlab_server: '>=2.22.1,<3' notebook-shim: '>=0.2,<0.3' python: '>=3.8' tornado: '>=6.2.0' - url: https://conda.anaconda.org/conda-forge/noarch/notebook-7.0.7-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/notebook-7.1.2-pyhd8ed1ab_0.conda hash: - md5: ce3e06227eb2d96b11e685b2cabcf9aa - sha256: 784048988fa12d1f89dc015273cdad67b034e2a1855391a2974fed8ac5a79ed4 + md5: fa781da51f05c9211b75b5e7bcff8136 + sha256: ed5987efcf3a394c4ab12288b4fe7d858784aabc591cebf3dabcd1cdbc7b7347 category: main optional: false - name: notebook - version: 7.0.7 + version: 7.1.2 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - tornado: '>=6.2.0' jupyter_server: '>=2.4.0,<3' + jupyterlab: '>=4.1.1,<4.2' jupyterlab_server: '>=2.22.1,<3' notebook-shim: '>=0.2,<0.3' - jupyterlab: '>=4.0.7,<5' - url: https://conda.anaconda.org/conda-forge/noarch/notebook-7.0.7-pyhd8ed1ab_0.conda + python: '>=3.8' + tornado: '>=6.2.0' + url: https://conda.anaconda.org/conda-forge/noarch/notebook-7.1.2-pyhd8ed1ab_0.conda hash: - md5: ce3e06227eb2d96b11e685b2cabcf9aa - sha256: 784048988fa12d1f89dc015273cdad67b034e2a1855391a2974fed8ac5a79ed4 + md5: fa781da51f05c9211b75b5e7bcff8136 + sha256: ed5987efcf3a394c4ab12288b4fe7d858784aabc591cebf3dabcd1cdbc7b7347 category: main optional: false - name: notebook-shim - version: 0.2.3 + version: 0.2.4 manager: conda platform: linux-64 dependencies: jupyter_server: '>=1.8,<3' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda hash: - md5: 67e0fe74c156267d9159e9133df7fd37 - sha256: f028d7ad1f2175cde307db08b60d07e371b9d6f035cfae6c81ea94b4c408c538 + md5: 3d85618e2c97ab896b5b5e298d32b5b3 + sha256: 9b5fdef9ebe89222baa9da2796ebe7bc02ec6c5a1f61327b651d6b92cf9a0230 category: main optional: false - name: notebook-shim - version: 0.2.3 + version: 0.2.4 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' jupyter_server: '>=1.8,<3' - url: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.3-pyhd8ed1ab_0.conda + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_0.conda hash: - md5: 67e0fe74c156267d9159e9133df7fd37 - sha256: f028d7ad1f2175cde307db08b60d07e371b9d6f035cfae6c81ea94b4c408c538 + md5: 3d85618e2c97ab896b5b5e298d32b5b3 + sha256: 9b5fdef9ebe89222baa9da2796ebe7bc02ec6c5a1f61327b651d6b92cf9a0230 category: main optional: false - name: nspr @@ -10366,35 +10830,35 @@ package: category: main optional: false - name: nss - version: '3.97' + version: '3.98' manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc-ng: '>=12' - libsqlite: '>=3.44.2,<4.0a0' + libsqlite: '>=3.45.1,<4.0a0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' nspr: '>=4.35,<5.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.97-h1d7d5a4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.98-h1d7d5a4_0.conda hash: - md5: b916d71a3032416e3f9136090d814472 - sha256: a1a62d415e5b5ddbd799ad6d92b2c4a4351fda00b54d96cac2ce7afa04b2d698 + md5: 54b56c2fdf973656b748e0378900ec13 + sha256: a9bc94d03df48014011cf6caaf447f2ef86a5edf7c70d70002ec4b59f5a4e198 category: main optional: false - name: nss - version: '3.97' + version: '3.98' manager: conda platform: osx-arm64 dependencies: - libcxx: '>=15' - libsqlite: '>=3.44.2,<4.0a0' + libcxx: '>=16' + libsqlite: '>=3.45.1,<4.0a0' libzlib: '>=1.2.13,<1.3.0a0' nspr: '>=4.35,<5.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.97-h5ce2875_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/nss-3.98-h5ce2875_0.conda hash: - md5: 5d2d69c2cce2c58171648a1fd34d6732 - sha256: 27786510a52aeb1115c31d8127fcc57fdec38bcef22882dd3bd05d04ca5c393d + md5: db0d8f4d11186e4cb3f1a3e0385ca075 + sha256: eecb5718c43dd68cf8150b1e75c91518dae457348828361034639e9e2ea82c82 category: main optional: false - name: numpy @@ -10452,10 +10916,10 @@ package: manager: conda platform: osx-arm64 dependencies: - cryptography: '' blinker: '' - python: '>=3.6' + cryptography: '' pyjwt: '>=1.0.0' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.2.2-pyhd8ed1ab_0.tar.bz2 hash: md5: 8f882b197fd9c4941a787926baea4868 @@ -10522,9 +10986,9 @@ package: platform: osx-arm64 dependencies: numpy: '' + onnx: '' packaging: '' protobuf: '' - onnx: '' python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/onnxconverter-common-1.13.0-pyhd8ed1ab_0.tar.bz2 hash: @@ -10532,35 +10996,73 @@ package: sha256: 8320927bbbae5f9dd4ba2abb2c046f9629111ac49ef539f537876a57af54d2ed category: main optional: false +- name: openai + version: 1.14.0 + manager: conda + platform: linux-64 + dependencies: + anyio: '>=3.5.0,<5' + distro: '>=1.7.0,<2' + httpx: '>=0.23.0,<1' + pydantic: '>=1.9.0,<3' + python: '>=3.7.1' + sniffio: '' + tqdm: '>4' + typing-extensions: '>=4.7,<5' + url: https://conda.anaconda.org/conda-forge/noarch/openai-1.14.0-pyhd8ed1ab_0.conda + hash: + md5: dbcb7019fbb2d03eee4b4435425097b4 + sha256: fe302835e25244e987633e2cf8c6e7f38f9d649abdf685e8c5cf6f7a73f0d2a2 + category: main + optional: false +- name: openai + version: 1.14.0 + manager: conda + platform: osx-arm64 + dependencies: + anyio: '>=3.5.0,<5' + distro: '>=1.7.0,<2' + httpx: '>=0.23.0,<1' + pydantic: '>=1.9.0,<3' + python: '>=3.7.1' + sniffio: '' + tqdm: '>4' + typing-extensions: '>=4.7,<5' + url: https://conda.anaconda.org/conda-forge/noarch/openai-1.14.0-pyhd8ed1ab_0.conda + hash: + md5: dbcb7019fbb2d03eee4b4435425097b4 + sha256: fe302835e25244e987633e2cf8c6e7f38f9d649abdf685e8c5cf6f7a73f0d2a2 + category: main + optional: false - name: openjpeg - version: 2.5.0 + version: 2.5.2 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - libpng: '>=1.6.39,<1.7.0a0' + libpng: '>=1.6.43,<1.7.0a0' libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda hash: - md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 - sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a + md5: 7f2e286780f072ed750df46dc2631138 + sha256: 5600a0b82df042bd27d01e4e687187411561dfc11cc05143a08ce29b64bf2af2 category: main optional: false - name: openjpeg - version: 2.5.0 + version: 2.5.2 manager: conda platform: osx-arm64 dependencies: - libcxx: '>=15.0.7' - libpng: '>=1.6.39,<1.7.0a0' + libcxx: '>=16' + libpng: '>=1.6.43,<1.7.0a0' libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.0-h4c1507b_3.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda hash: - md5: 4127dd217a010d9c6cbefdaae07d9f19 - sha256: a6998c0da4643a84dc7c0b3a9e5137db258619ea922317bb7d9ae64f54b4a9ed + md5: 5029846003f0bc14414b9128a1f7c84b + sha256: 472d6eaffc1996e6af35ec8e91c967f472a536a470079bfa56383cc0dbf4d463 category: main optional: false - name: openssl @@ -10668,8 +11170,8 @@ package: manager: conda platform: osx-arm64 dependencies: - typing_utils: '' python: '>=3.6' + typing_utils: '' url: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda hash: md5: 24fba5a9d161ad8103d4e84c0e1a3ed4 @@ -10701,71 +11203,72 @@ package: category: main optional: false - name: pandas - version: 1.5.3 + version: 2.2.1 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - numpy: '>=1.20.3,<2.0a0' + numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' python_abi: 3.9.* pytz: '>=2020.1' - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-1.5.3-py39h2ad29b5_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.1-py39hddac248_0.conda hash: - md5: 0d89bced73199385857310d3a648757d - sha256: ab03a569f9910c27de04ab10b8f9e5cd3481df5920ca88617aea4a761a5cf1e9 + md5: 85293a042c24a08e71b7608ee66b6134 + sha256: 91a2f8062d905f65548a5f3e9cf91e4acd70ac151d9e9fcbb32af9980643c1d7 category: main optional: false - name: pandas - version: 1.1.4 + version: 2.2.1 manager: conda platform: osx-arm64 dependencies: - libcxx: '>=11.0.0' - numpy: '>=1.19.2,<2.0a0' + libcxx: '>=16' + numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' - python-dateutil: '>=2.7.3' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' python_abi: 3.9.* - pytz: '>=2017.2' - setuptools: <60.0.0 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-1.1.4-py39ha4bedbf_0.tar.bz2 + pytz: '>=2020.1' + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.1-py39h47e51b9_0.conda hash: - md5: c4d6ef11b9f0e4e4f7a4dac0182f74b7 - sha256: ac0a5452c67ea613d68f037d7839226f746199bbc75fc18d4105a134730df3a5 + md5: be545eb72baf10c37f3ca5c974586abe + sha256: 08970c57a208e75ab99312ef27401ad76399669f2cc4bb3b5850ea21560393cb category: main optional: false - name: pandera - version: 0.18.0 + version: 0.18.3 manager: conda platform: linux-64 dependencies: - pandera-base: '>=0.18.0,<0.18.1.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/pandera-0.18.0-hd8ed1ab_0.conda + pandera-base: '>=0.18.3,<0.18.4.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/pandera-0.18.3-hd8ed1ab_0.conda hash: - md5: e960b9d610b62715f72187545b77cb8b - sha256: 86decd459a369fc475d0f102cac3e31cec566bfb87c2db89f770b397b0f812fd + md5: a8e2857c67ded4b6d0ab6fabbb9ec065 + sha256: 80daf30527d62c5694a89ae551be4aff40d7a82c9d25b73ea6b6e24309a5a50d category: main optional: false - name: pandera - version: 0.17.1 + version: 0.18.3 manager: conda platform: osx-arm64 dependencies: - pandera-base: '>=0.17.1,<0.17.2.0a0' - url: https://conda.anaconda.org/conda-forge/noarch/pandera-0.17.1-hd8ed1ab_1.conda + pandera-base: '>=0.18.3,<0.18.4.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/pandera-0.18.3-hd8ed1ab_0.conda hash: - md5: fccf7b6a41d32e4326732fe4563b4f0a - sha256: 6f0a134bc48187ef5665eb577903fe58d45c32f8ace83aa55f9820535ff39ad9 + md5: a8e2857c67ded4b6d0ab6fabbb9ec065 + sha256: 80daf30527d62c5694a89ae551be4aff40d7a82c9d25b73ea6b6e24309a5a50d category: main optional: false - name: pandera-base - version: 0.18.0 + version: 0.18.3 manager: conda platform: linux-64 dependencies: - multimethod: '' + multimethod: <=1.10.0 numpy: '>=1.19.0' packaging: '>=20.0' pandas: '>=1.2.0' @@ -10774,56 +11277,52 @@ package: typeguard: '>=3.0.2' typing_inspect: '>=0.6.0' wrapt: '' - url: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.18.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.18.3-pyhd8ed1ab_0.conda hash: - md5: f7214927ade78c56a6ffc765f9cdac40 - sha256: 4691edd69bda437d54962dbaa9aeb889da656e33d135d7620557d63398402821 + md5: e96ee36cbebac49688a927b3b74c38ed + sha256: 00b0994260df53f85077e478ba6dbdbc227f62c4e077ec6a7906722e91df223f category: main optional: false - name: pandera-base - version: 0.17.1 + version: 0.18.3 manager: conda platform: osx-arm64 dependencies: - typing_extensions: '' - wrapt: '' - multimethod: '' - python: '>=3.7' + multimethod: <=1.10.0 + numpy: '>=1.19.0' packaging: '>=20.0' - pandas: '>=1.0' - numpy: '>=1.9.0' - typing_inspect: '>=0.6.0' - pydantic: <2.0.0 + pandas: '>=1.2.0' + pydantic: '' + python: '>=3.8' typeguard: '>=3.0.2' - url: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.17.1-pyhd8ed1ab_0.conda + typing_inspect: '>=0.6.0' + wrapt: '' + url: https://conda.anaconda.org/conda-forge/noarch/pandera-base-0.18.3-pyhd8ed1ab_0.conda hash: - md5: f1a492b0898bd940c4c4f9909df28a8a - sha256: 55d27d7577abe4a32de46727df9ee59ff65d714d0855a0998cb4a19f6e8dbd4f + md5: e96ee36cbebac49688a927b3b74c38ed + sha256: 00b0994260df53f85077e478ba6dbdbc227f62c4e077ec6a7906722e91df223f category: main optional: false - name: pandoc - version: 3.1.3 + version: 3.1.12.3 manager: conda platform: linux-64 - dependencies: - gmp: '' - libzlib: '>=1.2.13,<1.3.0a0' - zlib: '' - url: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.3-h32600fe_0.conda + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.12.3-ha770c72_0.conda hash: - md5: 8287aeb8462e2d4b235eff788e75919d - sha256: 52d23e2fded05e7a19d9d7996f19ed837b46578b6e5951b8c5990cf919404ffc + md5: cdea66892b19a454f939487318b6c517 + sha256: 26bfcda675fbddd059a8861dc75b9e497980ec6c679ec2a27e7d74042c4b295b category: main optional: false - name: pandoc - version: 3.1.3 + version: 3.1.12.3 manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.1.3-hce30654_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.1.12.3-hce30654_0.conda hash: - md5: 7edcc75acdac60dba441b229c0ec66ee - sha256: 858a923c8b9082791b2c13c2ff2ae87e28dd2e2655f56117c8ecb7d366002bc7 + md5: e14b5833daffe398ea21308cb0559477 + sha256: 3bdfb8e65c7f7b050c07f5b84669024eaa38aa268195e1a804cbd20f07233fa4 category: main optional: false - name: pandocfilters @@ -10851,46 +11350,46 @@ package: category: main optional: false - name: pango - version: 1.50.14 + version: 1.52.1 manager: conda platform: linux-64 dependencies: - cairo: '>=1.16.0,<2.0a0' + cairo: '>=1.18.0,<2.0a0' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' fribidi: '>=1.0.10,<2.0a0' - harfbuzz: '>=8.1.1,<9.0a0' + harfbuzz: '>=8.3.0,<9.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.4,<3.0a0' - libpng: '>=1.6.39,<1.7.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.14-ha41ecd1_2.conda + libglib: '>=2.78.4,<3.0a0' + libpng: '>=1.6.43,<1.7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.52.1-ha41ecd1_0.conda hash: - md5: 1a66c10f6a0da3dbd2f3a68127e7f6a0 - sha256: 6ecce306b7ac4acf1184eb5b045e57e613e19e99c27d57f33eb255f8a9120a93 + md5: 5c0cc002bf4eaa56448b0729efd6e96c + sha256: 53d3442fb39eb9f0ac36646769469f2f825afaeda984719002460efd7c3d354f category: main optional: false - name: pango - version: 1.50.14 + version: 1.52.1 manager: conda platform: osx-arm64 dependencies: - cairo: '>=1.16.0,<2.0a0' + cairo: '>=1.18.0,<2.0a0' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' fribidi: '>=1.0.10,<2.0a0' - harfbuzz: '>=8.1.1,<9.0a0' - libglib: '>=2.76.4,<3.0a0' - libpng: '>=1.6.39,<1.7.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/pango-1.50.14-hcf40dda_2.conda + harfbuzz: '>=8.3.0,<9.0a0' + libglib: '>=2.78.4,<3.0a0' + libpng: '>=1.6.43,<1.7.0a0' + url: https://conda.anaconda.org/conda-forge/osx-arm64/pango-1.52.1-hb067d4f_0.conda hash: - md5: 79026cbb74d69b444e5dc2be0fb4b4a9 - sha256: e17f649192ce06c68893b50fa2492db87d2d82ae6d3c6058cc62dcc44dde8b2e + md5: bbd3e01b8988231317fc1f204d177795 + sha256: 9fd14a2f99d48c6c2729ec8bc0a5db2bd6442f2766a7393f930138409e829a91 category: main optional: false - name: papermill - version: 2.4.0 + version: 2.5.0 manager: conda platform: linux-64 dependencies: @@ -10905,32 +11404,32 @@ package: requests: '' tenacity: '' tqdm: '>=4.32.2' - url: https://conda.anaconda.org/conda-forge/noarch/papermill-2.4.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/papermill-2.5.0-pyhd8ed1ab_0.conda hash: - md5: 643948c831f14c43cc4c80f302f7146e - sha256: f720b31436d8425bb21bed09a27a77d06437f4abc23da5eea0e479115ec5bf95 + md5: e6e69b90afd3d0597da8f1f74cc4bd58 + sha256: c9896ec2358bf9da079ce34b986d8843ecf75f840d2d719f430b665cfa674a59 category: main optional: false - name: papermill - version: 2.4.0 + version: 2.5.0 manager: conda platform: osx-arm64 dependencies: - requests: '' - pyyaml: '' - click: '' + ansiwrap: '' black: '' + click: '' entrypoints: '' - tenacity: '' - ansiwrap: '' - python: '>=3.7' + nbclient: '>=0.2.0' nbformat: '>=5.1.2' + python: '>=3.7' + pyyaml: '' + requests: '' + tenacity: '' tqdm: '>=4.32.2' - nbclient: '>=0.2.0' - url: https://conda.anaconda.org/conda-forge/noarch/papermill-2.4.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/papermill-2.5.0-pyhd8ed1ab_0.conda hash: - md5: 643948c831f14c43cc4c80f302f7146e - sha256: f720b31436d8425bb21bed09a27a77d06437f4abc23da5eea0e479115ec5bf95 + md5: e6e69b90afd3d0597da8f1f74cc4bd58 + sha256: c9896ec2358bf9da079ce34b986d8843ecf75f840d2d719f430b665cfa674a59 category: main optional: false - name: paramiko @@ -10953,10 +11452,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - cryptography: '>=3.3' bcrypt: '>=3.2' + cryptography: '>=3.3' pynacl: '>=1.5' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/paramiko-3.4.0-pyhd8ed1ab_0.conda hash: md5: a5e792523b028b06d7ce6e65a6cd4a33 @@ -11006,9 +11505,9 @@ package: manager: conda platform: osx-arm64 dependencies: - toolz: '' locket: '' python: '>=3.7' + toolz: '' url: https://conda.anaconda.org/conda-forge/noarch/partd-1.4.1-pyhd8ed1ab_0.conda hash: md5: acf4b7c0bcd5fa3b0e05801c4d2accd6 @@ -11109,8 +11608,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' ptyprocess: '>=0.5' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda hash: md5: 629f3203c99b32e0988910c93e77f3b6 @@ -11187,31 +11686,31 @@ package: category: main optional: false - name: pip - version: 23.3.2 + version: '24.0' manager: conda platform: linux-64 dependencies: python: '>=3.7' setuptools: '' wheel: '' - url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda hash: - md5: 8591c748f98dcc02253003533bc2e4b1 - sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + md5: f586ac1e56c8638b64f9c8122a7b8a67 + sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a category: main optional: false - name: pip - version: 23.3.2 + version: '24.0' manager: conda platform: osx-arm64 dependencies: + python: '>=3.7' setuptools: '' wheel: '' - python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda hash: - md5: 8591c748f98dcc02253003533bc2e4b1 - sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + md5: f586ac1e56c8638b64f9c8122a7b8a67 + sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a category: main optional: false - name: pixman @@ -11228,15 +11727,15 @@ package: category: main optional: false - name: pixman - version: 0.43.2 + version: 0.43.4 manager: conda platform: osx-arm64 dependencies: - libcxx: '>=15' - url: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.2-hebf3989_0.conda + libcxx: '>=16' + url: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.43.4-hebf3989_0.conda hash: - md5: aaf3f4397959b8900c7c2f90304ccb29 - sha256: dc3ec60e769f80c1d5124ba2788e3c9122443743989ad5f92addf416c7a4e58b + md5: 0308c68e711cd295aaa026a4f8c4b1e5 + sha256: df0ba2710ccdea5c909b63635529797f6eb3635b6fb77ae9cb2f183d08818409 category: main optional: false - name: pkgutil-resolve-name @@ -11264,61 +11763,61 @@ package: category: main optional: false - name: platformdirs - version: 3.8.1 + version: 3.11.0 manager: conda platform: linux-64 dependencies: python: '>=3.7' typing-extensions: '>=4.6.3' - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.8.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.11.0-pyhd8ed1ab_0.conda hash: - md5: e76070baecfaca6ecdb5fbd5af7c9309 - sha256: b5012d6fd30f2462b6ca595539cfdae9aaf61b3b7a56e51ab94aef0fd9efcd3d + md5: 8f567c0a74aa44cf732f15773b4083b0 + sha256: b3d809ff5a18ee8514bba8bc05a23b4cdf1758090a18a2cf742af38aed405144 category: main optional: false - name: platformdirs - version: 3.8.1 + version: 3.11.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' typing-extensions: '>=4.6.3' - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.8.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.11.0-pyhd8ed1ab_0.conda hash: - md5: e76070baecfaca6ecdb5fbd5af7c9309 - sha256: b5012d6fd30f2462b6ca595539cfdae9aaf61b3b7a56e51ab94aef0fd9efcd3d + md5: 8f567c0a74aa44cf732f15773b4083b0 + sha256: b3d809ff5a18ee8514bba8bc05a23b4cdf1758090a18a2cf742af38aed405144 category: main optional: false - name: plotly - version: 5.18.0 + version: 5.19.0 manager: conda platform: linux-64 dependencies: packaging: '' python: '>=3.6' tenacity: '>=6.2.0' - url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.18.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.19.0-pyhd8ed1ab_0.conda hash: - md5: 9f6a8664f1fe752f79473eeb9bf33a60 - sha256: 1e812d896897a4d58d520bb51072d91d477faf7697e2b724b8ce59040989e8be + md5: 669cd7065794633b9e64e6a9612ec700 + sha256: fa9ae81e1f304f1480378ea25d559748e061c5b8d55b3ade433c3bc483dbae9e category: main optional: false - name: plotly - version: 5.18.0 + version: 5.19.0 manager: conda platform: osx-arm64 dependencies: packaging: '' python: '>=3.6' tenacity: '>=6.2.0' - url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.18.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/plotly-5.19.0-pyhd8ed1ab_0.conda hash: - md5: 9f6a8664f1fe752f79473eeb9bf33a60 - sha256: 1e812d896897a4d58d520bb51072d91d477faf7697e2b724b8ce59040989e8be + md5: 669cd7065794633b9e64e6a9612ec700 + sha256: fa9ae81e1f304f1480378ea25d559748e061c5b8d55b3ade433c3bc483dbae9e category: main optional: false - name: polars - version: 0.20.6 + version: 0.20.15 manager: conda platform: linux-64 dependencies: @@ -11327,14 +11826,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing_extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/linux-64/polars-0.20.6-py39h927a070_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/polars-0.20.15-py39h87fa3cb_0.conda hash: - md5: ea89586aad12c2927ec631a66fb5a89c - sha256: 329f4778fb306fbfb76d33e16d7c78b78f529e8672df4459b9dc92f294589630 + md5: fd5fb1c8bf319ea2edc3feede63f88e1 + sha256: 97dbca690a6805c4483115dfb57b998da3506b42c6cb9669eb9fa73f7e39788e category: main optional: false - name: polars - version: 0.20.6 + version: 0.20.15 manager: conda platform: osx-arm64 dependencies: @@ -11342,14 +11841,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing_extensions: '>=4.0.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/polars-0.20.6-py39he979254_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/polars-0.20.15-py39h08ca3d8_0.conda hash: - md5: 0c1b1c4bcaf956076cec0df1f100164e - sha256: 6f8fa21fee16e2317f12ead55e9b6d1b7c5acee62fb83971af8e347ae5f63c6a + md5: bc4b06d948d57003cd5f482e77856ca0 + sha256: 34e841ad27b077f7cf93e6da1be05e2519da1eec12b7791f729503122f206cb4 category: main optional: false - name: poppler - version: 23.12.0 + version: 24.02.0 manager: conda platform: linux-64 dependencies: @@ -11357,54 +11856,53 @@ package: fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' - lcms2: '>=2.15,<3.0a0' - libcurl: '>=8.4.0,<9.0a0' + lcms2: '>=2.16,<3.0a0' + libcurl: '>=8.5.0,<9.0a0' libgcc-ng: '>=12' - libglib: '>=2.78.1,<3.0a0' + libglib: '>=2.78.3,<3.0a0' libiconv: '>=1.17,<2.0a0' libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.39,<1.7.0a0' + libpng: '>=1.6.42,<1.7.0a0' libstdcxx-ng: '>=12' libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' nspr: '>=4.35,<5.0a0' - nss: '>=3.95,<4.0a0' + nss: '>=3.97,<4.0a0' openjpeg: '>=2.5.0,<3.0a0' poppler-data: '' - url: https://conda.anaconda.org/conda-forge/linux-64/poppler-23.12.0-h590f24d_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/poppler-24.02.0-h590f24d_0.conda hash: - md5: 480189ac126a8c6c61e14476c8ba7c9a - sha256: b313920277aca763b590dddf806c56b0aadcdff82f5ace39827cab4792ae4b20 + md5: 7e715c1572de09d6106c5a31fa70ffca + sha256: 55bb2deb67c76bd9f5592bf9765cc879cf11e555c4f8879292cbd5544e88887e category: main optional: false - name: poppler - version: 23.12.0 + version: 24.02.0 manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' cairo: '>=1.18.0,<2.0a0' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' gettext: '>=0.21.1,<1.0a0' - lcms2: '>=2.15,<3.0a0' - libcurl: '>=8.4.0,<9.0a0' - libcxx: '>=16.0.6' - libglib: '>=2.78.1,<3.0a0' + lcms2: '>=2.16,<3.0a0' + libcurl: '>=8.5.0,<9.0a0' + libcxx: '>=16' + libglib: '>=2.78.3,<3.0a0' libiconv: '>=1.17,<2.0a0' libjpeg-turbo: '>=3.0.0,<4.0a0' - libpng: '>=1.6.39,<1.7.0a0' + libpng: '>=1.6.42,<1.7.0a0' libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' nspr: '>=4.35,<5.0a0' - nss: '>=3.95,<4.0a0' + nss: '>=3.97,<4.0a0' openjpeg: '>=2.5.0,<3.0a0' poppler-data: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-23.12.0-hcdd998b_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/poppler-24.02.0-h896e6cb_0.conda hash: - md5: e072f524004eee193e30d243d68c520f - sha256: 13ebaac3bf9b77e92e777d3ed245c2f0a8ac93985e334b0cd797a39f321ae5dd + md5: 228b76f3de35d7bbe1374e52d1e0a5bb + sha256: c4d579795f329f1fe1b590d7cc3fc31d6b68f08e27b1f84e36ea3e9e05de5d6e category: main optional: false - name: poppler-data @@ -11456,46 +11954,46 @@ package: category: main optional: false - name: postgresql - version: '16.1' + version: '16.2' manager: conda platform: linux-64 dependencies: krb5: '>=1.21.2,<1.22.0a0' libgcc-ng: '>=12' - libpq: '16.1' - libxml2: '>=2.12.2,<3.0.0a0' + libpq: '16.2' + libxml2: '>=2.12.5,<3.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' readline: '>=8.2,<9.0a0' tzcode: '' tzdata: '' - url: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.1-h7387d8b_7.conda + url: https://conda.anaconda.org/conda-forge/linux-64/postgresql-16.2-h7387d8b_0.conda hash: - md5: 563017467245a8a02671a5257ad9331e - sha256: 213580a3fe1000a6b55d228d97a49f51cfc551f1f53da431c580c4a73e4cec21 + md5: 4e86738066b4966f0357f661b3691cae + sha256: 5b4fcfbd51957bb51fb1d2d28c3e9d8f4a50be0ac1be9c40083b1e9a39df7f3d category: main optional: false - name: postgresql - version: '16.1' + version: '16.2' manager: conda platform: osx-arm64 dependencies: krb5: '>=1.21.2,<1.22.0a0' - libpq: '16.1' - libxml2: '>=2.11.6,<3.0.0a0' + libpq: '16.2' + libxml2: '>=2.12.5,<3.0a0' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' readline: '>=8.2,<9.0a0' tzcode: '' tzdata: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.1-hc6ab77f_7.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/postgresql-16.2-h1d0603d_0.conda hash: - md5: bba5c8dd372e5e2cf81bf71e6104fa7b - sha256: 5830151c5b72e95ecbff45b36a88405875514ea27cfce1b5381e98d6cee9974a + md5: 29f3fd38f23da95692ab11af12fdb6da + sha256: 01b5bb78c909778fefca380bb808044850adba2972cd92f8fe6ead122a34fc45 category: main optional: false - name: pre-commit - version: 3.6.0 + version: 3.6.2 manager: conda platform: linux-64 dependencies: @@ -11505,53 +12003,53 @@ package: python: '>=3.9' pyyaml: '>=5.1' virtualenv: '>=20.10.0' - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.2-pyha770c72_0.conda hash: - md5: 473a7cfca197da0a10cff3f6dded7d4b - sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 + md5: 61534ee57ffdf26d7b1b514d33daccc4 + sha256: 8eb9f5965c37d2bbee9302e16cc7c5517ee06491986356112be13431a043681e category: main optional: false - name: pre-commit - version: 3.6.0 + version: 3.6.2 manager: conda platform: osx-arm64 dependencies: - python: '>=3.9' - pyyaml: '>=5.1' + cfgv: '>=2.0.0' identify: '>=1.0.0' nodeenv: '>=0.11.1' - cfgv: '>=2.0.0' + python: '>=3.9' + pyyaml: '>=5.1' virtualenv: '>=20.10.0' - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.2-pyha770c72_0.conda hash: - md5: 473a7cfca197da0a10cff3f6dded7d4b - sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 + md5: 61534ee57ffdf26d7b1b514d33daccc4 + sha256: 8eb9f5965c37d2bbee9302e16cc7c5517ee06491986356112be13431a043681e category: main optional: false - name: progressbar2 - version: 4.3.2 + version: 4.4.2 manager: conda platform: linux-64 dependencies: python: '>=3.8' python-utils: '>=3.8.1' - url: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.4.2-pyhd8ed1ab_0.conda hash: - md5: d55cd7adfc98beaef0c717c61fa3d294 - sha256: 349bfed6f822309cf10f1a42f637b9c417759a87a1d282b7f36a49c4394a3393 + md5: aca82be28a1c676a3e0365e83892f412 + sha256: 3661ceb2d69fa43cfba498486aee45e7f69e3a83c27430ca8aa21b27e5686d09 category: main optional: false - name: progressbar2 - version: 4.3.2 + version: 4.4.2 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' python-utils: '>=3.8.1' - url: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.4.2-pyhd8ed1ab_0.conda hash: - md5: d55cd7adfc98beaef0c717c61fa3d294 - sha256: 349bfed6f822309cf10f1a42f637b9c417759a87a1d282b7f36a49c4394a3393 + md5: aca82be28a1c676a3e0365e83892f412 + sha256: 3661ceb2d69fa43cfba498486aee45e7f69e3a83c27430ca8aa21b27e5686d09 category: main optional: false - name: proj @@ -11589,27 +12087,27 @@ package: category: main optional: false - name: prometheus_client - version: 0.19.0 + version: 0.20.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.19.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda hash: - md5: 7baa10fa8073c371155cf451b71b848d - sha256: 1235a3dbb033f914163e0deaf22d244cb1c1b5d8829d0089e38c34079286acbe + md5: 9a19b94034dd3abb2b348c8b93388035 + sha256: 757cd91d01c2e0b64fadf6bc9a11f558cf7638d897dfbaf7415ddf324d5405c9 category: main optional: false - name: prometheus_client - version: 0.19.0 + version: 0.20.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.19.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.20.0-pyhd8ed1ab_0.conda hash: - md5: 7baa10fa8073c371155cf451b71b848d - sha256: 1235a3dbb033f914163e0deaf22d244cb1c1b5d8829d0089e38c34079286acbe + md5: 9a19b94034dd3abb2b348c8b93388035 + sha256: 757cd91d01c2e0b64fadf6bc9a11f558cf7638d897dfbaf7415ddf324d5405c9 category: main optional: false - name: prometheus_flask_exporter @@ -11658,8 +12156,8 @@ package: manager: conda platform: osx-arm64 dependencies: - wcwidth: '' python: '>=3.7' + wcwidth: '' url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.42-pyha770c72_0.conda hash: md5: 0bf64bf10eee21f46ac83c161917fa86 @@ -11708,8 +12206,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' protobuf: '>=3.19.0,<5.0.0dev' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.23.0-pyhd8ed1ab_0.conda hash: md5: 26c043ffe1c027eaed894d70ea04a18d @@ -11752,30 +12250,32 @@ package: sha256: f39a877accd33d477a973e211c105d81e5bc5ce0087f87b3fe0940c9d79eb78f category: main optional: false -- name: protoc-gen-swagger - version: 0.1.0 +- name: protoc-gen-openapiv2 + version: 0.0.1 manager: conda platform: linux-64 dependencies: - protobuf: '>=3.0.0' + googleapis-common-protos: '' + protobuf: '>=4.21.0' python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/protoc-gen-swagger-0.1.0-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/protoc-gen-openapiv2-0.0.1-pyhd8ed1ab_0.conda hash: - md5: cb19a2a0c0ea68f9d316792a60965c82 - sha256: e12577e09de098d0e3468ba82815bd411ebad4fac644430d283ea867193d55e6 + md5: 7a0af408c81dccfc5a420fb1f27c9064 + sha256: a6b561d1d09f4d88e256efc10cc6065866acf53efd32d03509a5b8c0aed40f3e category: main optional: false -- name: protoc-gen-swagger - version: 0.1.0 +- name: protoc-gen-openapiv2 + version: 0.0.1 manager: conda platform: osx-arm64 dependencies: + googleapis-common-protos: '' + protobuf: '>=4.21.0' python: '>=3.6' - protobuf: '>=3.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/protoc-gen-swagger-0.1.0-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/protoc-gen-openapiv2-0.0.1-pyhd8ed1ab_0.conda hash: - md5: cb19a2a0c0ea68f9d316792a60965c82 - sha256: e12577e09de098d0e3468ba82815bd411ebad4fac644430d283ea867193d55e6 + md5: 7a0af408c81dccfc5a420fb1f27c9064 + sha256: a6b561d1d09f4d88e256efc10cc6065866acf53efd32d03509a5b8c0aed40f3e category: main optional: false - name: psutil @@ -11853,8 +12353,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' psycopg2: '>=2.9.9,<2.9.10.0a0' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/psycopg2-binary-2.9.9-pyhd8ed1ab_0.conda hash: md5: c15b2ec0570f8988819eea58286dbc19 @@ -11932,30 +12432,6 @@ package: sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 category: main optional: false -- name: py - version: 1.11.0 - manager: conda - platform: linux-64 - dependencies: - python: '>=2.7' - url: https://conda.anaconda.org/conda-forge/noarch/py-1.11.0-pyh6c4a22f_0.tar.bz2 - hash: - md5: b4613d7e7a493916d867842a6a148054 - sha256: 268be33a290e3d51467ab29cbb5a80cf79f69dade2f2dead25d7f80d76c3543a - category: main - optional: false -- name: py - version: 1.11.0 - manager: conda - platform: osx-arm64 - dependencies: - python: '>=2.7' - url: https://conda.anaconda.org/conda-forge/noarch/py-1.11.0-pyh6c4a22f_0.tar.bz2 - hash: - md5: b4613d7e7a493916d867842a6a148054 - sha256: 268be33a290e3d51467ab29cbb5a80cf79f69dade2f2dead25d7f80d76c3543a - category: main - optional: false - name: py4j version: 0.10.9.7 manager: conda @@ -12031,8 +12507,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.5' pyarrow: '>=0.14' + python: '>=3.5' url: https://conda.anaconda.org/conda-forge/noarch/pyarrow-hotfix-0.6-pyhd8ed1ab_0.conda hash: md5: ccc06e6ef2064ae129fab3286299abda @@ -12081,14 +12557,43 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' pyasn1: '>=0.4.6,<0.6.0' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.3.0-pyhd8ed1ab_0.conda hash: md5: 26db749166cdca55e5ef1ffdc7767d0e sha256: 7867ba43b6ef1e66054ca6b70f59bbef4cdb0cc761f0be3b66d79d15bd43143b category: main optional: false +- name: pycairo + version: 1.26.0 + manager: conda + platform: linux-64 + dependencies: + cairo: '>=1.18.0,<2.0a0' + libgcc-ng: '>=12' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/linux-64/pycairo-1.26.0-py39hc92de75_0.conda + hash: + md5: a6296b5f4ef108e5616d65e3c68a83c3 + sha256: 9e9e4bf4667d964678ef9dfe031b48f803c7e981e60b7095431bc3d1578f3cc2 + category: main + optional: false +- name: pycairo + version: 1.26.0 + manager: conda + platform: osx-arm64 + dependencies: + cairo: '>=1.18.0,<2.0a0' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/pycairo-1.26.0-py39he25459e_0.conda + hash: + md5: 2c8e09f611be0a0f8ac8349223223880 + sha256: 409c82c06934e27d1033e87d4e17c1518c52056c566205d728e55e2ea706a85d + category: main + optional: false - name: pycparser version: '2.21' manager: conda @@ -12114,7 +12619,7 @@ package: category: main optional: false - name: pydantic - version: 1.10.13 + version: 1.10.14 manager: conda platform: linux-64 dependencies: @@ -12122,24 +12627,24 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing-extensions: '>=4.2.0' - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-1.10.13-py39hd1e30aa_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-1.10.14-py39hd1e30aa_0.conda hash: - md5: f3d35e3b6357598fae3a7e81aa36385f - sha256: b3ad6cccfe0c710d6fcb6b24c54255c924bfc52b83af13e296b0d7198546c08f + md5: 8b6ce436b927350e124b42aa12b79410 + sha256: 351e7a25060d9b86a312b5662691dd5f7416099587d24f5293da3972b6606e76 category: main optional: false - name: pydantic - version: 1.10.13 + version: 1.10.14 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing-extensions: '>=4.2.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-1.10.13-py39h17cfd9d_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-1.10.14-py39h17cfd9d_0.conda hash: - md5: b6fb4bfeba3f13f52939e2e40efaf5f8 - sha256: 0bf6688875f926de77eeebe7a3507f89f2cd70263abf8bc609876d2601ed21a0 + md5: 1018fbdc8224bd8dabfd3a6707aa2ff3 + sha256: 10e4199cabe3198ca559857a4c219e922cd08df32675543ff03f13d08a423e5c category: main optional: false - name: pygments @@ -12166,16 +12671,54 @@ package: sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 category: main optional: false +- name: pygobject + version: 3.48.1 + manager: conda + platform: linux-64 + dependencies: + cairo: '>=1.18.0,<2.0a0' + libffi: '>=3.4,<4.0a0' + libgirepository: '' + libglib: '>=2.78.4,<3.0a0' + libiconv: '' + pycairo: '' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/linux-64/pygobject-3.48.1-py39hb25b1be_0.conda + hash: + md5: b6706f63ee072aa955a42a502bd64fe9 + sha256: 282e82bba4f1b89b0fd2fbe8bb4891ad4f503aa9d15dcbacbdffac928f5f298a + category: main + optional: false +- name: pygobject + version: 3.48.1 + manager: conda + platform: osx-arm64 + dependencies: + cairo: '>=1.18.0,<2.0a0' + libffi: '>=3.4,<4.0a0' + libgirepository: '' + libglib: '>=2.78.4,<3.0a0' + libiconv: '' + pycairo: '' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* + url: https://conda.anaconda.org/conda-forge/osx-arm64/pygobject-3.48.1-py39h6a3fad4_0.conda + hash: + md5: 54ac4bd26c995b56fc9dd976d3954f3f + sha256: 4f94211c3014f3d7acb4ad02caa8aa34bc040597d18c2f954cf700999ed6e19d + category: main + optional: false - name: pyjwt version: 2.8.0 manager: conda platform: linux-64 dependencies: - python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.8.0-pyhd8ed1ab_0.conda + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.8.0-pyhd8ed1ab_1.conda hash: - md5: 912c0194f898fdb783021fd25f913c31 - sha256: 88ac94c42ade15113397e30d1831dd341399b5262fb5330b9240f915c33cd232 + md5: 74f76d4868dbba5870f2cf1d9b12d8f3 + sha256: d7cb7fbafd767e938db10820c76a9c16d91faf5a081842159cc185787879eb07 category: main optional: false - name: pyjwt @@ -12183,11 +12726,11 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.8.0-pyhd8ed1ab_0.conda + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.8.0-pyhd8ed1ab_1.conda hash: - md5: 912c0194f898fdb783021fd25f913c31 - sha256: 88ac94c42ade15113397e30d1831dd341399b5262fb5330b9240f915c33cd232 + md5: 74f76d4868dbba5870f2cf1d9b12d8f3 + sha256: d7cb7fbafd767e938db10820c76a9c16d91faf5a081842159cc185787879eb07 category: main optional: false - name: pynacl @@ -12224,7 +12767,7 @@ package: category: main optional: false - name: pyobjc-core - version: '10.1' + version: '10.2' manager: conda platform: osx-arm64 dependencies: @@ -12232,75 +12775,75 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* setuptools: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.1-py39hb167abd_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.2-py39hb167abd_0.conda hash: - md5: 6b916bb5863c3bf00f2769f5f3179f8e - sha256: 4a1537106fb1151db4753f3dd46e919a921c68e87aa6456e204c958e34b71533 + md5: 2316c0a8bfbb9314cd22cf1c5b83ac3b + sha256: cc3d5e2ba7cd678600aa8f10434dea88ff798bc40e9733595fbad387c265410c category: main optional: false - name: pyobjc-framework-cocoa - version: '10.1' + version: '10.2' manager: conda platform: osx-arm64 dependencies: libffi: '>=3.4,<4.0a0' - pyobjc-core: 10.1.* + pyobjc-core: 10.2.* python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.1-py39hb167abd_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.2-py39hb167abd_0.conda hash: - md5: 4501b785c6c3e6aef80b22389bcdc2ab - sha256: 78322238b1e9836571d7bc43cf245b8debd8fc89f962275c4090dd3996f1d340 + md5: cd4fbde6ec3fd55d0fa06ed86882cc0d + sha256: b3f3ff2ec701ee62091451753253fd880201702c4cf43388152da80474280297 category: main optional: false - name: pyopenssl - version: 23.3.0 + version: 24.0.0 manager: conda platform: linux-64 dependencies: - cryptography: '>=41.0.5,<42' + cryptography: '>=41.0.5,<43' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-24.0.0-pyhd8ed1ab_0.conda hash: - md5: 7819533e674dbbc51468f3228b9b1bb6 - sha256: f7e04c4a49b1593140231d70801e2204e314e26d7141bfbdc8089d04114c0010 + md5: b50aec2c744a5c493c09cce9e2e7533e + sha256: bacd1d38585f447e2809e7621283661da7c97cfa20f545edb0ac5838356ed87b category: main optional: false - name: pyopenssl - version: 23.3.0 + version: 24.0.0 manager: conda platform: osx-arm64 dependencies: + cryptography: '>=41.0.5,<43' python: '>=3.7' - cryptography: '>=41.0.5,<42' - url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-24.0.0-pyhd8ed1ab_0.conda hash: - md5: 7819533e674dbbc51468f3228b9b1bb6 - sha256: f7e04c4a49b1593140231d70801e2204e314e26d7141bfbdc8089d04114c0010 + md5: b50aec2c744a5c493c09cce9e2e7533e + sha256: bacd1d38585f447e2809e7621283661da7c97cfa20f545edb0ac5838356ed87b category: main optional: false - name: pyparsing - version: 3.1.1 + version: 3.1.2 manager: conda platform: linux-64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda hash: - md5: 176f7d56f0cfe9008bdf1bccd7de02fb - sha256: 4a1332d634b6c2501a973655d68f08c9c42c0bd509c349239127b10572b8354b + md5: b9a4dacf97241704529131a0dfc0494f + sha256: 06c77cb03e5dde2d939b216c99dd2db52ea93a4c7c599f3882f136005c359c7b category: main optional: false - name: pyparsing - version: 3.1.1 + version: 3.1.2 manager: conda platform: osx-arm64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda hash: - md5: 176f7d56f0cfe9008bdf1bccd7de02fb - sha256: 4a1332d634b6c2501a973655d68f08c9c42c0bd509c349239127b10572b8354b + md5: b9a4dacf97241704529131a0dfc0494f + sha256: 06c77cb03e5dde2d939b216c99dd2db52ea93a4c7c599f3882f136005c359c7b category: main optional: false - name: pyproj @@ -12361,7 +12904,7 @@ package: category: main optional: false - name: pyspark - version: 3.5.0 + version: 3.5.1 manager: conda platform: linux-64 dependencies: @@ -12370,26 +12913,26 @@ package: py4j: 0.10.9.7 pyarrow: '>=4.0.0' python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/pyspark-3.5.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pyspark-3.5.1-pyhd8ed1ab_0.conda hash: - md5: 3b21d41045c94f1ec76c16f50f25810d - sha256: daa2b0033aaf53d0c6745090f42d45304afac699de1ca7874b7978578bd2329e + md5: fc1824942077c7ed5f0e24ff869c6f37 + sha256: 6ba987ac0a2c5c6de98b4ce943e72cfbfca1134678c3984959cdb11070997005 category: main optional: false - name: pyspark - version: 3.5.0 + version: 3.5.1 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' numpy: '>=1.15' pandas: '>=1.0.5' - pyarrow: '>=4.0.0' py4j: 0.10.9.7 - url: https://conda.anaconda.org/conda-forge/noarch/pyspark-3.5.0-pyhd8ed1ab_0.conda + pyarrow: '>=4.0.0' + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/pyspark-3.5.1-pyhd8ed1ab_0.conda hash: - md5: 3b21d41045c94f1ec76c16f50f25810d - sha256: daa2b0033aaf53d0c6745090f42d45304afac699de1ca7874b7978578bd2329e + md5: fc1824942077c7ed5f0e24ff869c6f37 + sha256: 6ba987ac0a2c5c6de98b4ce943e72cfbfca1134678c3984959cdb11070997005 category: main optional: false - name: python @@ -12440,29 +12983,29 @@ package: category: main optional: false - name: python-dateutil - version: 2.8.2 + version: 2.9.0 manager: conda platform: linux-64 dependencies: - python: '>=3.6' + python: '>=3.7' six: '>=1.5' - url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda hash: - md5: dd999d1cc9f79e67dbb855c8924c7984 - sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + md5: 2cf4264fffb9e6eff6031c5b6884d61c + sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 category: main optional: false - name: python-dateutil - version: 2.8.2 + version: 2.9.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' + python: '>=3.7' six: '>=1.5' - url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda hash: - md5: dd999d1cc9f79e67dbb855c8924c7984 - sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + md5: 2cf4264fffb9e6eff6031c5b6884d61c + sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 category: main optional: false - name: python-fastjsonschema @@ -12490,27 +13033,27 @@ package: category: main optional: false - name: python-flatbuffers - version: 23.5.26 + version: 24.3.7 manager: conda platform: linux-64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/python-flatbuffers-23.5.26-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-flatbuffers-24.3.7-pyh59ac667_0.conda hash: - md5: 131dd3656f3b731ab852fc66d3c41058 - sha256: 6d2fdc92fce4124e2d32403b71da89e9f3e65393670d74466b4ff4843434392e + md5: 24c1a37849fcd4c74923a38b029b208f + sha256: cacba4db8e9e8500f11fb5e43bd7ef5f0d43ba58f668f74544924e7dba63b7e8 category: main optional: false - name: python-flatbuffers - version: 23.5.26 + version: 24.3.7 manager: conda platform: osx-arm64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/python-flatbuffers-23.5.26-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-flatbuffers-24.3.7-pyh59ac667_0.conda hash: - md5: 131dd3656f3b731ab852fc66d3c41058 - sha256: 6d2fdc92fce4124e2d32403b71da89e9f3e65393670d74466b4ff4843434392e + md5: 24c1a37849fcd4c74923a38b029b208f + sha256: cacba4db8e9e8500f11fb5e43bd7ef5f0d43ba58f668f74544924e7dba63b7e8 category: main optional: false - name: python-json-logger @@ -12564,17 +13107,17 @@ package: manager: conda platform: osx-arm64 dependencies: - requests: '' - requests-oauthlib: '' - python: '>=3.6' - six: '>=1.9.0' - pyyaml: '>=5.4.1' - python-dateutil: '>=2.5.3' certifi: '>=14.05.14' google-auth: '>=1.0.1' - websocket-client: '>=0.32.0,!=0.40.0,!=0.41.*,!=0.42.*' oauthlib: '>=3.2.2' + python: '>=3.6' + python-dateutil: '>=2.5.3' + pyyaml: '>=5.4.1' + requests: '' + requests-oauthlib: '' + six: '>=1.9.0' urllib3: '>=1.24.2,<2.0' + websocket-client: '>=0.32.0,!=0.40.0,!=0.41.*,!=0.42.*' url: https://conda.anaconda.org/conda-forge/noarch/python-kubernetes-29.0.0-pyhd8ed1ab_0.conda hash: md5: a94f4c6a1cff1e9837a8b62ae35c673f @@ -12582,29 +13125,53 @@ package: category: main optional: false - name: python-slugify - version: 8.0.3 + version: 8.0.4 manager: conda platform: linux-64 dependencies: python: '>=3.7' text-unidecode: '>=1.3' - url: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.4-pyhd8ed1ab_0.conda hash: - md5: adabcd5e942933ed61ea3e6f0cc83a98 - sha256: 90ac323449803b14aaffbab82e48b0378b7527551233a822d930505b5fb973ff + md5: 4b11845622b3c3178c0e989235b53975 + sha256: a1270bfd4f1d648766c8f95403f208e50d34af94761bc553a960102c6bff9fa0 category: main optional: false - name: python-slugify - version: 8.0.3 + version: 8.0.4 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' text-unidecode: '>=1.3' - url: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/python-slugify-8.0.4-pyhd8ed1ab_0.conda + hash: + md5: 4b11845622b3c3178c0e989235b53975 + sha256: a1270bfd4f1d648766c8f95403f208e50d34af94761bc553a960102c6bff9fa0 + category: main + optional: false +- name: python-tzdata + version: '2024.1' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda + hash: + md5: 98206ea9954216ee7540f0c773f2104d + sha256: 9da9a849d53705dee450b83507df1ca8ffea5f83bd21a215202221f1c492f8ad + category: main + optional: false +- name: python-tzdata + version: '2024.1' + manager: conda + platform: osx-arm64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda hash: - md5: adabcd5e942933ed61ea3e6f0cc83a98 - sha256: 90ac323449803b14aaffbab82e48b0378b7527551233a822d930505b5fb973ff + md5: 98206ea9954216ee7540f0c773f2104d + sha256: 9da9a849d53705dee450b83507df1ca8ffea5f83bd21a215202221f1c492f8ad category: main optional: false - name: python-utils @@ -12713,18 +13280,25 @@ package: manager: conda platform: linux-64 dependencies: + __cuda: '' __glibc: '>=2.17,<3.0.a0' _openmp_mutex: '>=4.5' + cudatoolkit: '>=11.8,<12' + cudnn: '>=8.8.0.121,<9.0a0' filelock: '' fsspec: '' jinja2: '' libcblas: '>=3.9.0,<4.0a0' libgcc-ng: '>=12' + libmagma: '>=2.7.2,<2.7.3.0a0' + libmagma_sparse: '>=2.7.2,<2.7.3.0a0' libprotobuf: '>=4.24.4,<4.24.5.0a0' libstdcxx-ng: '>=12' libtorch: 2.1.2.* libuv: '>=1.46.0,<2.0a0' + magma: '>=2.7.2,<2.7.3.0a0' mkl: '>=2023.2.0,<2024.0a0' + nccl: '>=2.19.4.1,<3.0a0' networkx: '' numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' @@ -12732,25 +13306,25 @@ package: sleef: '>=3.5.1,<4.0a0' sympy: '' typing_extensions: '' - url: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.1.2-cpu_mkl_py39h9c325db_100.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.1.2-cuda118_py39hcb596ef_300.conda hash: - md5: bb34e51d3542a1b4b6afc04f28585055 - sha256: c363db53861a5ffe1613e57a8c3624f447fa203dde66f52b29ddb9859fb2e8bc + md5: d7355cce6a80513f7e9980e5e2e836be + sha256: 4f84efcd67159d4117b9519da2542da4f71c21e2abe2dae3368a54e365df6d98 category: main optional: false - name: pytorch - version: 2.1.2 + version: 2.1.0 manager: conda platform: osx-arm64 dependencies: + __osx: '>=10.9' filelock: '' fsspec: '' jinja2: '' libcblas: '>=3.9.0,<4.0a0' - libcxx: '>=14' + libcxx: '>=15.0.7' liblapack: '>=3.9.0,<4.0a0' libprotobuf: '>=4.24.4,<4.24.5.0a0' - libtorch: 2.1.2.* libuv: '>=1.46.0,<2.0a0' llvm-openmp: '>=16.0.6' networkx: '' @@ -12761,10 +13335,10 @@ package: sleef: '>=3.5.1,<4.0a0' sympy: '' typing_extensions: '' - url: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-2.1.2-cpu_generic_py39h2c040b9_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-2.1.0-cpu_generic_py39h4a6bf10_0.conda hash: - md5: d80926b6c929fdd6a785e77a8a79397d - sha256: 053193c4e2cd0e4adbb4fe2f6faf8090c6d01a95e32553d1befe5c707bc67d7a + md5: 1b1de3b4af7cc84bbe1e4ebfdf8939ef + sha256: 9b69c7af2d17a2f470656a0de2e8d821c99483e1364323a866988c37215908ba category: main optional: false - name: pytz @@ -12809,8 +13383,8 @@ package: manager: conda platform: osx-arm64 dependencies: - six: '' python: '>=2.7' + six: '' url: https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_0.tar.bz2 hash: md5: caabbeaa83928d0c3e3949261daa18eb @@ -12930,14 +13504,14 @@ package: manager: conda platform: osx-arm64 dependencies: + ipykernel: '>=4.1' + jupyter_client: '>=4.1' + jupyter_core: '' packaging: '' pygments: '' - traitlets: '' - jupyter_core: '' python: '>=3.8' - ipykernel: '>=4.1' - jupyter_client: '>=4.1' qtpy: '>=2.4.0' + traitlets: '' url: https://conda.anaconda.org/conda-forge/noarch/qtconsole-base-5.5.1-pyha770c72_0.conda hash: md5: 5528a3eda283b421055c89bface19a1c @@ -13007,34 +13581,34 @@ package: libgcc-ng: '>=12' libnl: '>=3.9.0,<4.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-50.0-hd3aeb46_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/rdma-core-50.0-hd3aeb46_1.conda hash: - md5: 4594b391274e38f07c668acb45285a1f - sha256: 7cc75473895aa7d4fa1824ef94bd451768fa4a36a5046b3281ed2b1a6787853d + md5: f462219598fcf46c0cdfb985c3482b4f + sha256: 85e38508eb4921e53cf1cb97435f9c9408ea2ddc582c6588ec50f3f3ec3abdc0 category: main optional: false - name: re2 - version: 2023.06.02 + version: 2023.09.01 manager: conda platform: linux-64 dependencies: - libre2-11: 2023.06.02 - url: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.06.02-h2873b5e_0.conda + libre2-11: 2023.09.01 + url: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_1.conda hash: - md5: bb2d5e593ef13fe4aff0bc9440f945ae - sha256: 3e0bfb04b6d43312d711c5b49dbc3c7660b2e6e681ed504b1b322794462a1bcd + md5: 30c0f66cbc5927a12662acf94067e780 + sha256: b8f9e366f02c559587327f0cd7fa45c5c399b4025f2c9e1aa292bb7cbe1482c0 category: main optional: false - name: re2 - version: 2023.06.02 + version: 2023.09.01 manager: conda platform: osx-arm64 dependencies: - libre2-11: 2023.06.02 - url: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.06.02-h6135d0a_0.conda + libre2-11: 2023.09.01 + url: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2023.09.01-h4cba328_1.conda hash: - md5: 8f23674174b155300696a2be8b5c1407 - sha256: 963847258a82d9647311c5eb8829a49ac2161df12a304d5d6e61f788f0563442 + md5: cc836947935a4c7b39ec56a46b7565a0 + sha256: 19bbcbfc115b2cfc7e8d1c88975ce1d7b4d602baa917be405ee89d66514ae57c category: main optional: false - name: readline @@ -13082,9 +13656,9 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3' - docutils: '>=0.11' commonmark: '>=0.8.1' + docutils: '>=0.11' + python: '>=3' sphinx: '>=1.3.1' url: https://conda.anaconda.org/conda-forge/noarch/recommonmark-0.7.1-pyhd8ed1ab_0.tar.bz2 hash: @@ -13093,31 +13667,31 @@ package: category: main optional: false - name: referencing - version: 0.33.0 + version: 0.34.0 manager: conda platform: linux-64 dependencies: attrs: '>=22.2.0' python: '>=3.8' rpds-py: '>=0.7.0' - url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.33.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.34.0-pyhd8ed1ab_0.conda hash: - md5: bc415a1c6cf049166215d6b596e0fcbe - sha256: 5707eb9ee2c7cfcc56a5223b24ab3133ff61aaa796931f3b22068e0a43ea6ecf + md5: e4492c22e314be5c75db3469e3bbf3d9 + sha256: 2e631e9e1d49280770573f7acc7441b70181b2dc21948bb1be15eaae80550672 category: main optional: false - name: referencing - version: 0.33.0 + version: 0.34.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' attrs: '>=22.2.0' + python: '>=3.8' rpds-py: '>=0.7.0' - url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.33.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.34.0-pyhd8ed1ab_0.conda hash: - md5: bc415a1c6cf049166215d6b596e0fcbe - sha256: 5707eb9ee2c7cfcc56a5223b24ab3133ff61aaa796931f3b22068e0a43ea6ecf + md5: e4492c22e314be5c75db3469e3bbf3d9 + sha256: 2e631e9e1d49280770573f7acc7441b70181b2dc21948bb1be15eaae80550672 category: main optional: false - name: requests @@ -13141,10 +13715,10 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' - idna: '>=2.5,<4' certifi: '>=2017.4.17' charset-normalizer: '>=2,<4' + idna: '>=2.5,<4' + python: '>=3.7' urllib3: '>=1.21.1,<3' url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda hash: @@ -13153,59 +13727,31 @@ package: category: main optional: false - name: requests-oauthlib - version: 1.3.1 + version: 1.4.0 manager: conda platform: linux-64 dependencies: oauthlib: '>=3.0.0' python: '>=3.4' requests: '>=2.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.3.1-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.4.0-pyhd8ed1ab_0.conda hash: - md5: 61b279f051eef9c89d58f4d813e75e04 - sha256: 889e3c1b84467b64046776db95dc4c5ea4dad5afaa5ec18ad811bd95c63286b0 + md5: a55b220de8970208f583e38639cfbecc + sha256: 909ec1510bbb6fad9276534352025f428050a4deeea86e68d61c8c580938ac82 category: main optional: false - name: requests-oauthlib - version: 1.3.1 + version: 1.4.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.4' - requests: '>=2.0.0' oauthlib: '>=3.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.3.1-pyhd8ed1ab_0.tar.bz2 - hash: - md5: 61b279f051eef9c89d58f4d813e75e04 - sha256: 889e3c1b84467b64046776db95dc4c5ea4dad5afaa5ec18ad811bd95c63286b0 - category: main - optional: false -- name: retry - version: 0.9.2 - manager: conda - platform: linux-64 - dependencies: - decorator: '>=3.4.2' - py: '>=1.4.26,<2.0.0' - python: '' - url: https://conda.anaconda.org/conda-forge/noarch/retry-0.9.2-py_0.tar.bz2 - hash: - md5: b83b7289405e8aab02d1a72bc14506f8 - sha256: 9066f5507fb8d143a01fe1462bf416680edbd3e1dd0efc9ce4124cd8b74acb15 - category: main - optional: false -- name: retry - version: 0.9.2 - manager: conda - platform: osx-arm64 - dependencies: - python: '' - decorator: '>=3.4.2' - py: '>=1.4.26,<2.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/retry-0.9.2-py_0.tar.bz2 + python: '>=3.4' + requests: '>=2.0.0' + url: https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.4.0-pyhd8ed1ab_0.conda hash: - md5: b83b7289405e8aab02d1a72bc14506f8 - sha256: 9066f5507fb8d143a01fe1462bf416680edbd3e1dd0efc9ce4124cd8b74acb15 + md5: a55b220de8970208f583e38639cfbecc + sha256: 909ec1510bbb6fad9276534352025f428050a4deeea86e68d61c8c580938ac82 category: main optional: false - name: rfc3339-validator @@ -13226,8 +13772,8 @@ package: manager: conda platform: osx-arm64 dependencies: - six: '' python: '>=3.5' + six: '' url: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 hash: md5: fed45fc5ea0813240707998abe49f520 @@ -13259,7 +13805,7 @@ package: category: main optional: false - name: rich - version: 13.7.0 + version: 13.7.1 manager: conda platform: linux-64 dependencies: @@ -13267,80 +13813,80 @@ package: pygments: '>=2.13.0,<3.0.0' python: '>=3.7.0' typing_extensions: '>=4.0.0,<5.0.0' - url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda hash: - md5: d7a11d4f3024b2f4a6e0ae7377dd61e9 - sha256: 4bb25bf1f5664772b2c4c2e3878aa6e7dc2695f97e3da4ee8e47c51e179913bb + md5: ba445bf767ae6f0d959ff2b40c20912b + sha256: 2b26d58aa59e46f933c3126367348651b0dab6e0bf88014e857415bb184a4667 category: main optional: false - name: rich - version: 13.7.0 + version: 13.7.1 manager: conda platform: osx-arm64 dependencies: + markdown-it-py: '>=2.2.0' + pygments: '>=2.13.0,<3.0.0' python: '>=3.7.0' typing_extensions: '>=4.0.0,<5.0.0' - pygments: '>=2.13.0,<3.0.0' - markdown-it-py: '>=2.2.0' - url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.1-pyhd8ed1ab_0.conda hash: - md5: d7a11d4f3024b2f4a6e0ae7377dd61e9 - sha256: 4bb25bf1f5664772b2c4c2e3878aa6e7dc2695f97e3da4ee8e47c51e179913bb + md5: ba445bf767ae6f0d959ff2b40c20912b + sha256: 2b26d58aa59e46f933c3126367348651b0dab6e0bf88014e857415bb184a4667 category: main optional: false - name: rich-click - version: 1.7.3 + version: 1.7.4 manager: conda platform: linux-64 dependencies: click: '>=7,<9' python: '>=3.7' rich: '>=10' - url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.7.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.7.4-pyhd8ed1ab_0.conda hash: - md5: dc858795a3dcc70135ae2c61b75a251a - sha256: d6265dbdbc2c1bda6dc96af0edc482a75e03e9f531cd8f6ff77619becdf02378 + md5: a3e6556c7cfce33ba7dae23fb17d3303 + sha256: 91e0b041cf663d4a8e27f1cf572d265d90fdf3a58fa6513bc41292572ca5462f category: main optional: false - name: rich-click - version: 1.7.3 + version: 1.7.4 manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' click: '>=7,<9' + python: '>=3.7' rich: '>=10' - url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.7.3-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/rich-click-1.7.4-pyhd8ed1ab_0.conda hash: - md5: dc858795a3dcc70135ae2c61b75a251a - sha256: d6265dbdbc2c1bda6dc96af0edc482a75e03e9f531cd8f6ff77619becdf02378 + md5: a3e6556c7cfce33ba7dae23fb17d3303 + sha256: 91e0b041cf663d4a8e27f1cf572d265d90fdf3a58fa6513bc41292572ca5462f category: main optional: false - name: rpds-py - version: 0.17.1 + version: 0.18.0 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.17.1-py39h9fdd4d6_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.18.0-py39h9fdd4d6_0.conda hash: - md5: 601e09c9de429baaabce5f1283c51fdf - sha256: 0ec45efa1c5599a9779ac34cf5bcb7602a2294f79b8959a7b15b92b4275979ee + md5: ca1e1ff2be5c41142e412c83b88960e4 + sha256: 1bc9bdf6f4a14f38f8decf967fc40bfcd1ab069f012ef0f109163d1ef7b7c633 category: main optional: false - name: rpds-py - version: 0.17.1 + version: 0.18.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.17.1-py39h8fec3ad_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.18.0-py39h9a407ce_0.conda hash: - md5: 07873cbc88530a1210d61027ec3d4801 - sha256: 3ed6823681d74b465804d7db3aae81630a4db3c919297c6634aac2939eaf9d6d + md5: a247149173eb156a430bea00738d91f1 + sha256: d3b2f8ca759237fea4acde58d94871970795e8617752a4a0c373717282000926 category: main optional: false - name: rsa @@ -13361,8 +13907,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' pyasn1: '>=0.1.3' + python: '>=3.6' url: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9-pyhd8ed1ab_0.tar.bz2 hash: md5: 03bf410858b2cefc267316408a77c436 @@ -13429,30 +13975,30 @@ package: category: main optional: false - name: ruamel.yaml.clib - version: 0.2.7 + version: 0.2.8 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py39hd1e30aa_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py39hd1e30aa_0.conda hash: - md5: 743d996a1af8502f27770fadfd418434 - sha256: 06b089d59ffebef9c9171a8a3480adcb6e7f112caef9f8b87591207427cb1cf1 + md5: b1961e70cfe8e1eac243faf933d1813f + sha256: 32b7b4f13493eeff0d18de85d58d7b8c2b04234ea737b8769871067189c70d69 category: main optional: false - name: ruamel.yaml.clib - version: 0.2.7 + version: 0.2.8 manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.7-py39h0f82c59_2.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.8-py39h17cfd9d_0.conda hash: - md5: f3e2f7730c751b6ce8cf7995d1f47ebd - sha256: 3cd6dbe76582646d1366f20e0f02dde700969dbedf65f6f1434ce76ba1ec924e + md5: b4b13ca14d2848049adc82fed7c89e64 + sha256: d128e55fb573217a9ef6189e62172b2b497d7163d7b3097cf6ff0c6bf29a6a1a category: main optional: false - name: s2n @@ -13469,37 +14015,37 @@ package: category: main optional: false - name: s3fs - version: 0.6.0 + version: 2024.2.0 manager: conda platform: linux-64 dependencies: - aiobotocore: '' - botocore: '' - fsspec: '>=0.9.0' - python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/s3fs-0.6.0-pyhd8ed1ab_0.tar.bz2 + aiobotocore: '>=2.5.4,<3.0.0' + aiohttp: '' + fsspec: 2024.2.0 + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/s3fs-2024.2.0-pyhd8ed1ab_0.conda hash: - md5: f20c8f33a3aa1256d88dd4b5bc67530c - sha256: 36d2b377c87acb3f5958e00d6ef5acd36f89a903fc54ba98084a2fccb7e2e051 + md5: a0d35978a4caf8b78957dac03e2bc039 + sha256: b67e93d4584b26e7cb6f98e7415daf72d531ca854fdc0d0fe2d5e281fad8ec28 category: main optional: false - name: s3fs - version: 0.6.0 + version: 2024.2.0 manager: conda platform: osx-arm64 dependencies: - botocore: '' - aiobotocore: '' - python: '>=3.6' - fsspec: '>=0.9.0' - url: https://conda.anaconda.org/conda-forge/noarch/s3fs-0.6.0-pyhd8ed1ab_0.tar.bz2 + aiobotocore: '>=2.5.4,<3.0.0' + aiohttp: '' + fsspec: 2024.2.0 + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/s3fs-2024.2.0-pyhd8ed1ab_0.conda hash: - md5: f20c8f33a3aa1256d88dd4b5bc67530c - sha256: 36d2b377c87acb3f5958e00d6ef5acd36f89a903fc54ba98084a2fccb7e2e051 + md5: a0d35978a4caf8b78957dac03e2bc039 + sha256: b67e93d4584b26e7cb6f98e7415daf72d531ca854fdc0d0fe2d5e281fad8ec28 category: main optional: false - name: scikit-learn - version: 1.4.0 + version: 1.4.1.post1 manager: conda platform: linux-64 dependencies: @@ -13512,29 +14058,29 @@ package: python_abi: 3.9.* scipy: '' threadpoolctl: '>=2.0.0' - url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.4.0-py39ha22ef79_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.4.1.post1-py39ha22ef79_0.conda hash: - md5: cb8da9a55b56e7fda3553c919f89431b - sha256: 29080f3b936839256acbd3a686e912f2d00e97c84e79357e26ad7a7cfb67a4e9 + md5: 34570aedcdc0281c66ce0ed300844111 + sha256: 72fe5a1a19a4ed66a8e0aeceee256e58c7a7b3dd9a97139c6e7b2ba73e0c9f63 category: main optional: false - name: scikit-learn - version: 1.4.0 + version: 1.4.1.post1 manager: conda platform: osx-arm64 dependencies: joblib: '>=1.2.0' - libcxx: '>=15' + libcxx: '>=16' llvm-openmp: '>=17.0.6' numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* scipy: '' threadpoolctl: '>=2.0.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.4.0-py39h6dd658b_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.4.1.post1-py39h6dd658b_0.conda hash: - md5: 177d0e427f7fe3e8fd0d8aa5c9a32de4 - sha256: 0b18ab4449e9bb1b18c84becdf6dbb4982fedd502e683dfe49299fde2c20e701 + md5: c69932cee8782d57e5b1287a4a1fcae0 + sha256: ec0e745737bf152dd4a4cce7031683f42f15be3295ab3874185f3bdf07e1d475 category: main optional: false - name: scipy @@ -13622,32 +14168,31 @@ package: category: main optional: false - name: setuptools - version: 69.0.3 + version: 69.2.0 manager: conda platform: linux-64 dependencies: - python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda hash: - md5: 40695fdfd15a92121ed2922900d0308b - sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + md5: da214ecd521a720a9d521c68047682dc + sha256: 78a75c75a5dacda6de5f4056c9c990141bdaf4f64245673a590594d00bc63713 category: main optional: false - name: setuptools - version: 59.8.0 + version: 69.2.0 manager: conda platform: osx-arm64 dependencies: - python: '>=3.9,<3.10.0a0' - python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/setuptools-59.8.0-py39h2804cbe_1.tar.bz2 + python: '>=3.8' + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda hash: - md5: 27c3effc9a6ae935378b603157461239 - sha256: 7c02e55039e0514184cb4debd2fadedf5223bf0ac9a5eae2ff49bf6e1e314285 + md5: da214ecd521a720a9d521c68047682dc + sha256: 78a75c75a5dacda6de5f4056c9c990141bdaf4f64245673a590594d00bc63713 category: main optional: false - name: shapely - version: 2.0.2 + version: 2.0.3 manager: conda platform: linux-64 dependencies: @@ -13656,14 +14201,14 @@ package: numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.2-py39h6404dd3_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.3-py39h6404dd3_0.conda hash: - md5: 05623249055d99c51cde021b525611db - sha256: 3225b43b4be766d2bb1335b7942a76731f3bb69485f8bc49a76699e73336cc73 + md5: 1520f039123452cd2de847068449a618 + sha256: 43af6c106ff55be27be3be99b7f313fa3becee9aeeb826e31257c1159416f53a category: main optional: false - name: shapely - version: 2.0.2 + version: 2.0.3 manager: conda platform: osx-arm64 dependencies: @@ -13671,10 +14216,10 @@ package: numpy: '>=1.22.4,<2.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.2-py39ha70ab96_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.0.3-py39ha70ab96_0.conda hash: - md5: 9b71de8f21059eab1ec16941ff4b1780 - sha256: 6e3f7c0cc65326f0ebdf9f303e1f7151f2042ba0a2a224e45bda391a816aa15a + md5: 6f1f893210f9daa0fe5e0634c0e0d2b6 + sha256: 2bd385c02e2ef0a9a15bf3a1e79ab40119a441d03ffa72339ac2f5c73c583eed category: main optional: false - name: six @@ -13725,14 +14270,14 @@ package: manager: conda platform: osx-arm64 dependencies: + numpy: '>=1.15' + onnx: '>=1.2.1' + onnxconverter-common: '>=1.7.0' packaging: '' protobuf: '' python: '>=3.6' - numpy: '>=1.15' - scipy: '>=1.0' scikit-learn: '>=0.19' - onnxconverter-common: '>=1.7.0' - onnx: '>=1.2.1' + scipy: '>=1.0' url: https://conda.anaconda.org/conda-forge/noarch/skl2onnx-1.16.0-pyhd8ed1ab_0.conda hash: md5: 52a160919ba780e1971e6db6a9f91e81 @@ -13814,27 +14359,27 @@ package: category: main optional: false - name: sniffio - version: 1.3.0 + version: 1.3.1 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda hash: - md5: dd6cbc539e74cb1f430efbd4575b9303 - sha256: a3fd30754c20ddb28b777db38345ea00d958f46701f0decd6291a81c0f4eee78 + md5: 490730480d76cf9c8f8f2849719c6e2b + sha256: bc12100b2d8836b93c55068b463190505b8064d0fc7d025e89f20ebf22fe6c2b category: main optional: false - name: sniffio - version: 1.3.0 + version: 1.3.1 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda hash: - md5: dd6cbc539e74cb1f430efbd4575b9303 - sha256: a3fd30754c20ddb28b777db38345ea00d958f46701f0decd6291a81c0f4eee78 + md5: 490730480d76cf9c8f8f2849719c6e2b + sha256: bc12100b2d8836b93c55068b463190505b8064d0fc7d025e89f20ebf22fe6c2b category: main optional: false - name: snowballstemmer @@ -13862,7 +14407,7 @@ package: category: main optional: false - name: snowflake-connector-python - version: 3.7.0 + version: 3.7.1 manager: conda platform: linux-64 dependencies: @@ -13870,16 +14415,16 @@ package: certifi: '>=2017.4.17' cffi: '>=1.9,<2.0.0' charset-normalizer: '>=2,<4' - cryptography: '>=3.1.0,<42.0.0' + cryptography: '>=3.1.0,<43.0.0' filelock: '>=3.5,<4' idna: '>=2.5,<4' libgcc-ng: '>=12' libstdcxx-ng: '>=12' numpy: '>=1.22.4,<2.0a0' packaging: '' - platformdirs: '>=2.6.0,<3.9.0' + platformdirs: '>=2.6.0,<4.0.0' pyjwt: <3.0.0 - pyopenssl: '>=16.2.0,<24.0.0' + pyopenssl: '>=16.2.0,<25.0.0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* pytz: '' @@ -13888,14 +14433,14 @@ package: tomlkit: '' typing_extensions: '>=4.3,<5' urllib3: '>=1.21.1,<2' - url: https://conda.anaconda.org/conda-forge/linux-64/snowflake-connector-python-3.7.0-py39hddac248_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/snowflake-connector-python-3.7.1-py39hddac248_2.conda hash: - md5: 2b1453ff0fe9466955e24ab1ce61cb00 - sha256: 1a93bf171964caaacbb388e7047e8f91568f5e7c4d3974e0473c3f4b76a4470f + md5: 4afb71844868347f9a1654f777b11fb2 + sha256: 58203509b4118463bb7e29ad29b96e2908e6f57efd44e38b32e57049eab0ecfc category: main optional: false - name: snowflake-connector-python - version: 3.7.0 + version: 3.7.1 manager: conda platform: osx-arm64 dependencies: @@ -13903,15 +14448,15 @@ package: certifi: '>=2017.4.17' cffi: '>=1.9,<2.0.0' charset-normalizer: '>=2,<4' - cryptography: '>=3.1.0,<42.0.0' + cryptography: '>=3.1.0,<43.0.0' filelock: '>=3.5,<4' idna: '>=2.5,<4' - libcxx: '>=15' + libcxx: '>=16' numpy: '>=1.22.4,<2.0a0' packaging: '' - platformdirs: '>=2.6.0,<3.9.0' + platformdirs: '>=2.6.0,<4.0.0' pyjwt: <3.0.0 - pyopenssl: '>=16.2.0,<24.0.0' + pyopenssl: '>=16.2.0,<25.0.0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* pytz: '' @@ -13920,10 +14465,10 @@ package: tomlkit: '' typing_extensions: '>=4.3,<5' urllib3: '>=1.21.1,<2' - url: https://conda.anaconda.org/conda-forge/osx-arm64/snowflake-connector-python-3.7.0-py39h47e51b9_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/snowflake-connector-python-3.7.1-py39h47e51b9_2.conda hash: - md5: d21d3818fff5abe2a1b910251389e8d0 - sha256: 849966206e3586363edac6bab6088a6c33d8b27981011e629a441d9768be1541 + md5: 6fc6d135b3110f0714e65a29caa84e1d + sha256: dd9426602bf20f0ac28c92ec3035ed6b0011194fb3a149f03acb37934bc35575 category: main optional: false - name: sortedcontainers @@ -14008,24 +14553,24 @@ package: manager: conda platform: osx-arm64 dependencies: - packaging: '' - sphinxcontrib-jsmath: '' - sphinxcontrib-applehelp: '' - sphinxcontrib-devhelp: '' - sphinxcontrib-qthelp: '' + alabaster: '>=0.7,<0.8' + babel: '>=1.3' + colorama: '>=0.3.5' + docutils: '>=0.14,<0.18' imagesize: '' - python: '>=3.6' importlib-metadata: '>=4.4' + jinja2: '>=2.3' + packaging: '' pygments: '>=2.0' - alabaster: '>=0.7,<0.8' + python: '>=3.6' requests: '>=2.5.0' - jinja2: '>=2.3' snowballstemmer: '>=1.1' - babel: '>=1.3' + sphinxcontrib-applehelp: '' + sphinxcontrib-devhelp: '' sphinxcontrib-htmlhelp: '>=2.0.0' + sphinxcontrib-jsmath: '' + sphinxcontrib-qthelp: '' sphinxcontrib-serializinghtml: '>=1.1.5' - colorama: '>=0.3.5' - docutils: '>=0.14,<0.18' url: https://conda.anaconda.org/conda-forge/noarch/sphinx-4.5.0-pyh6c4a22f_0.tar.bz2 hash: md5: 46b38d88c4270ff9ba78a89c83c66345 @@ -14056,14 +14601,14 @@ package: manager: conda platform: osx-arm64 dependencies: - pyyaml: '' + astroid: '>=2.7' jinja2: '' - unidecode: '' - sphinxcontrib-dotnetdomain: '' - sphinxcontrib-golangdomain: '' python: '>=3.6' + pyyaml: '' sphinx: '>=3.0' - astroid: '>=2.7' + sphinxcontrib-dotnetdomain: '' + sphinxcontrib-golangdomain: '' + unidecode: '' url: https://conda.anaconda.org/conda-forge/noarch/sphinx-autoapi-2.1.0-pyhd8ed1ab_0.conda hash: md5: 6cb2b182390f837ce98737e92b9461f7 @@ -14115,8 +14660,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.6' click: '>=6.0' + python: '>=3.6' sphinx: '>=2.0' url: https://conda.anaconda.org/conda-forge/noarch/sphinx-click-5.1.0-pyhd8ed1ab_0.conda hash: @@ -14252,8 +14797,8 @@ package: platform: osx-arm64 dependencies: pygments: '' - sphinx: '' python: '>=3.0' + sphinx: '' url: https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.4.0-pyhd8ed1ab_0.tar.bz2 hash: md5: 88ee91e8679603f2a5bd036d52919cc2 @@ -14280,10 +14825,10 @@ package: manager: conda platform: osx-arm64 dependencies: + docutils: '>=0.16.0' pygments: '' python: '>=3.6' sphinx: '>=2,<5' - docutils: '>=0.16.0' url: https://conda.anaconda.org/conda-forge/noarch/sphinx-tabs-3.4.1-pyhd8ed1ab_0.tar.bz2 hash: md5: b04565a0bfac26170025770fe3256dcd @@ -14511,9 +15056,9 @@ package: manager: conda platform: osx-arm64 dependencies: - sphinx: '' docutils: '' python: '>=3.7' + sphinx: '' url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-0.9.2-pyhd8ed1ab_0.conda hash: md5: 54a6a75e5b3989f1d925d8e5674bbbcb @@ -14587,8 +15132,8 @@ package: manager: conda platform: osx-arm64 dependencies: - requests: '' python: '>=3.6' + requests: '' sphinx: '>=0.6' url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-youtube-1.2.0-pyhd8ed1ab_0.conda hash: @@ -14597,7 +15142,7 @@ package: category: main optional: false - name: sqlalchemy - version: 2.0.25 + version: 2.0.28 manager: conda platform: linux-64 dependencies: @@ -14606,14 +15151,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing-extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-2.0.25-py39hd1e30aa_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-2.0.28-py39hd1e30aa_0.conda hash: - md5: 36930c67bcfd8c1f1cf6cb5b9622e0fe - sha256: c4be30fbf84bc00f1d3f19eb03a2a105fa05183095d0f48fbc8a808e525c65b8 + md5: 0b3b73db2d2931fa07a98e0ba1a6764b + sha256: 5f2074a4750c14134f0c35a6c7f0a731534f78ecc3dd578dc4f362ea8dc62075 category: main optional: false - name: sqlalchemy - version: 2.0.25 + version: 2.0.28 manager: conda platform: osx-arm64 dependencies: @@ -14621,41 +15166,41 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* typing-extensions: '>=4.6.0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/sqlalchemy-2.0.25-py39h17cfd9d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/sqlalchemy-2.0.28-py39h17cfd9d_0.conda hash: - md5: a11c96827d0355cca921e77ad1973348 - sha256: 8c9f02958249dbe89433b93a921ec121821c970f1a53b63982d2c6359696d7e0 + md5: 1b66bccb5e13f902e86255d5ce8c8e8e + sha256: 8953b2bba824a6feaad98840aaa57a3c889f4621883bd67c41595ece7b5a599e category: main optional: false - name: sqlite - version: 3.44.2 + version: 3.45.2 manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' - libsqlite: 3.44.2 + libsqlite: 3.45.2 libzlib: '>=1.2.13,<1.3.0a0' ncurses: '>=6.4,<7.0a0' readline: '>=8.2,<9.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.44.2-h2c6b66d_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.45.2-h2c6b66d_0.conda hash: - md5: 4f2892c672829693fd978d065db4e8be - sha256: bae479520fe770fe11996b4c240923ed097f851fbd2401d55540e551c9dbbef7 + md5: 1423efca06ed343c1da0fc429bae0779 + sha256: 22d2692c82b73480c9adc80472bfb241262586edaf1dac1a7504434e47185d3c category: main optional: false - name: sqlite - version: 3.44.2 + version: 3.45.2 manager: conda platform: osx-arm64 dependencies: - libsqlite: 3.44.2 + libsqlite: 3.45.2 libzlib: '>=1.2.13,<1.3.0a0' ncurses: '>=6.4,<7.0a0' readline: '>=8.2,<9.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.44.2-hf2abe2d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.45.2-hf2abe2d_0.conda hash: - md5: c98aa8eb8f02260610c5bb981027ba5d - sha256: b034405d93e7153f777d52c18fe26120356c568e4ca85626712d633d939a8923 + md5: 67af40712ec3989036429398b69ec206 + sha256: 43f30a40494bd631e7a19fa258115c09a3fed540e5398ba3a8da66f3e48942ca category: main optional: false - name: sqlparse @@ -14781,9 +15326,9 @@ package: platform: osx-arm64 dependencies: __unix: '' - python: '*' - mpmath: '>=0.19' gmpy2: '>=2.0.8' + mpmath: '>=0.19' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/sympy-1.12-pypyh9d50eac_103.conda hash: md5: 2f7d6347d7acf6edf1ac7f2189f44c8f @@ -14877,7 +15422,7 @@ package: category: main optional: false - name: tensorboard - version: 2.15.1 + version: 2.15.2 manager: conda platform: linux-64 dependencies: @@ -14894,34 +15439,34 @@ package: six: '>=1.9' tensorboard-data-server: '>=0.7.0,<0.8.0' werkzeug: '>=1.0.1' - url: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.15.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.15.2-pyhd8ed1ab_0.conda hash: - md5: 0bba0cc8e5247bca0411ee63e9b0bb2f - sha256: 652c97025f21fdb6473ccaa5b2c53ca8ae816d550a596a4544566cfcf5273591 + md5: be92712a3adb1f9371551a72c5881cd9 + sha256: 37c9ecd571c227f3c062d8d38c9e0b6c6454cb4533f498be5cf991a9cd370b99 category: main optional: false - name: tensorboard - version: 2.15.1 + version: 2.15.2 manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' - six: '>=1.9' - numpy: '>=1.12.0' - setuptools: '>=41.0.0' - markdown: '>=2.6.8' absl-py: '>=0.4' - requests: '>=2.21.0,<3' - werkzeug: '>=1.0.1' google-auth: '>=1.6.3,<3' - protobuf: '>=3.19.6' + google-auth-oauthlib: '>=0.5,<2' grpcio: '>=1.48.2' + markdown: '>=2.6.8' + numpy: '>=1.12.0' + protobuf: '>=3.19.6' + python: '>=3.8' + requests: '>=2.21.0,<3' + setuptools: '>=41.0.0' + six: '>=1.9' tensorboard-data-server: '>=0.7.0,<0.8.0' - google-auth-oauthlib: '>=0.5,<2' - url: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.15.1-pyhd8ed1ab_0.conda + werkzeug: '>=1.0.1' + url: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.15.2-pyhd8ed1ab_0.conda hash: - md5: 0bba0cc8e5247bca0411ee63e9b0bb2f - sha256: 652c97025f21fdb6473ccaa5b2c53ca8ae816d550a596a4544566cfcf5273591 + md5: be92712a3adb1f9371551a72c5881cd9 + sha256: 37c9ecd571c227f3c062d8d38c9e0b6c6454cb4533f498be5cf991a9cd370b99 category: main optional: false - name: tensorboard-data-server @@ -15132,7 +15677,7 @@ package: category: main optional: false - name: terminado - version: 0.18.0 + version: 0.18.1 manager: conda platform: linux-64 dependencies: @@ -15140,14 +15685,14 @@ package: ptyprocess: '' python: '>=3.8' tornado: '>=6.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.0-pyh0d859eb_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda hash: - md5: e463f348b8b0eb62c9f7c6fbc780286c - sha256: e90139ef15ea9d75a69cd6b6302c29ed5b01c03ddfa717b71acb32b60af74269 + md5: efba281bbdae5f6b0a1d53c6d4a97c93 + sha256: b300557c0382478cf661ddb520263508e4b3b5871b471410450ef2846e8c352c category: main optional: false - name: terminado - version: 0.18.0 + version: 0.18.1 manager: conda platform: osx-arm64 dependencies: @@ -15155,10 +15700,10 @@ package: ptyprocess: '' python: '>=3.8' tornado: '>=6.1.0' - url: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.0-pyh31c8845_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda hash: - md5: 14759b57f5b9d97033e633fff0a2d27e - sha256: 8e8741c688ade9be8f86c0b209780c7fbe4a97e4265311ca9d8dda5fcedc6a28 + md5: 00b54981b923f5aefcd5e8547de056d5 + sha256: 4daae56fc8da17784578fbdd064f17e3b3076b394730a14119e571707568dc8a category: main optional: false - name: text-unidecode @@ -15232,13 +15777,13 @@ package: manager: conda platform: osx-arm64 dependencies: + numpy: '>=1.14.1' + onnx: '>=1.4.1' + python: '>=3.8' + python-flatbuffers: '>=1.12' requests: '' six: '' - python: '>=3.8' - numpy: '>=1.14.1' tensorflow: '>=2.6' - python-flatbuffers: '>=1.12' - onnx: '>=1.4.1' url: https://conda.anaconda.org/conda-forge/noarch/tf2onnx-1.16.1-pyhd8ed1ab_0.conda hash: md5: 3882e49e3d01c69231a7e48d09ca0ec6 @@ -15246,76 +15791,76 @@ package: category: main optional: false - name: threadpoolctl - version: 3.2.0 + version: 3.3.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.2.0-pyha21a80b_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.3.0-pyhc1e730c_0.conda hash: - md5: 978d03388b62173b8e6f79162cf52b86 - sha256: 15e2f916fbfe3cc480160aa99eb6ba3edc183fceb234f10151d63870fdc4eccd + md5: 698d2d2b621640bddb9191f132967c9f + sha256: 5ba8bd3f2d49b3b860eb4481ca9505c57d4427212eb12cadd2b351309d5c28e6 category: main optional: false - name: threadpoolctl - version: 3.2.0 + version: 3.3.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.2.0-pyha21a80b_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.3.0-pyhc1e730c_0.conda hash: - md5: 978d03388b62173b8e6f79162cf52b86 - sha256: 15e2f916fbfe3cc480160aa99eb6ba3edc183fceb234f10151d63870fdc4eccd + md5: 698d2d2b621640bddb9191f132967c9f + sha256: 5ba8bd3f2d49b3b860eb4481ca9505c57d4427212eb12cadd2b351309d5c28e6 category: main optional: false - name: tiledb - version: 2.19.1 + version: 2.20.0 manager: conda platform: linux-64 dependencies: - azure-core-cpp: '>=1.10.3,<2.0a0' - azure-storage-blobs-cpp: '>=12.10.0,<13.0a0' - azure-storage-common-cpp: '>=12.5.0,<13.0a0' + azure-core-cpp: '>=1.10.3,<1.10.4.0a0' + azure-storage-blobs-cpp: '>=12.10.0,<12.10.1.0a0' + azure-storage-common-cpp: '>=12.5.0,<12.5.1.0a0' bzip2: '>=1.0.8,<2.0a0' libabseil: '>=20230802.1,<20230803.0a0' libcurl: '>=8.5.0,<9.0a0' libgcc-ng: '>=12' libgoogle-cloud: '>=2.12.0,<2.13.0a0' libstdcxx-ng: '>=12' - libxml2: '>=2.12.4,<3.0a0' + libxml2: '>=2.12.5,<3.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.19.1-h4386cac_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.20.0-h4386cac_0.conda hash: - md5: 8d16e7b2529607a12aa6722c7a7c7356 - sha256: c75ff0cdcf3e3dac837739e056c2dbd74f0b1055ed17ac1523856c44f208e5c1 + md5: 20101f907b5fab4089b034f827e01b91 + sha256: abc460ddf0205dfbeb987678ca882fedcf152d91fbfe7acba2a46c10a306d9cd category: main optional: false - name: tiledb - version: 2.19.1 + version: 2.20.0 manager: conda platform: osx-arm64 dependencies: - azure-core-cpp: '>=1.10.3,<2.0a0' - azure-storage-blobs-cpp: '>=12.10.0,<13.0a0' - azure-storage-common-cpp: '>=12.5.0,<13.0a0' + azure-core-cpp: '>=1.10.3,<1.10.4.0a0' + azure-storage-blobs-cpp: '>=12.10.0,<12.10.1.0a0' + azure-storage-common-cpp: '>=12.5.0,<12.5.1.0a0' bzip2: '>=1.0.8,<2.0a0' libabseil: '>=20230802.1,<20230803.0a0' libcurl: '>=8.5.0,<9.0a0' - libcxx: '>=15' + libcxx: '>=16' libgoogle-cloud: '>=2.12.0,<2.13.0a0' - libxml2: '>=2.12.4,<3.0a0' + libxml2: '>=2.12.5,<3.0a0' libzlib: '>=1.2.13,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' - openssl: '>=3.2.0,<4.0a0' + openssl: '>=3.2.1,<4.0a0' zstd: '>=1.5.5,<1.6.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.19.1-h49d9ff7_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/tiledb-2.20.0-h49d9ff7_0.conda hash: - md5: dcd5b377b1d7784909acffd3bb6ca282 - sha256: 9264b07951317c6ce50d5b5e0f02fb4cbddd45cb26de09edb7bd267424adc6e4 + md5: 7bc3a4c19f431c4fd15bd5eec7ae56df + sha256: 326f35e114e993f92c68823faa9bdd8dcd2cd47a0e0a44cc0550fd89fbc05e82 category: main optional: false - name: tinycss2 @@ -15418,27 +15963,27 @@ package: category: main optional: false - name: tomlkit - version: 0.12.3 + version: 0.12.4 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.3-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.4-pyha770c72_0.conda hash: - md5: 074d0ce7a6261ab8b497c3518796ef3e - sha256: 53cc436ab92d38683df1320e4468a8b978428e800195bf1c8c2460e90b0bc117 + md5: 37c47ea93ef00dd80d880fc4ba21256a + sha256: 8d45c266bf919788abacd9828f4a2101d7216f6d4fc7c8d3417034fe0d795a18 category: main optional: false - name: tomlkit - version: 0.12.3 + version: 0.12.4 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.3-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.4-pyha770c72_0.conda hash: - md5: 074d0ce7a6261ab8b497c3518796ef3e - sha256: 53cc436ab92d38683df1320e4468a8b978428e800195bf1c8c2460e90b0bc117 + md5: 37c47ea93ef00dd80d880fc4ba21256a + sha256: 8d45c266bf919788abacd9828f4a2101d7216f6d4fc7c8d3417034fe0d795a18 category: main optional: false - name: toolz @@ -15466,80 +16011,80 @@ package: category: main optional: false - name: tornado - version: 6.3.3 + version: '6.4' manager: conda platform: linux-64 dependencies: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py39hd1e30aa_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4-py39hd1e30aa_0.conda hash: - md5: cbe186eefb0bcd91e8f47c3908489874 - sha256: dc0df742be0e83a4286137d21f60ca829632c2ffd66d3bebb603afe5ce74cc68 + md5: 1e865e9188204cdfb1fd2531780add88 + sha256: 27ab8f208c9a8fef7341d8f603059073f445de39c52eed73218f5823212ca73c category: main optional: false - name: tornado - version: 6.3.3 + version: '6.4' manager: conda platform: osx-arm64 dependencies: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* - url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.3.3-py39h0f82c59_1.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4-py39h17cfd9d_0.conda hash: - md5: 6e7376dbfbe98b5537bfc9a1b8cf1e41 - sha256: e294cd0a32c14e6e879a202a50ae2ad393dd93e767b3f8e54be96cbcf32af595 + md5: 38274b171136956ae2edc0dd2772ab20 + sha256: 656b39d76d0a50b307a0c4876ab5d51ec03bc2b03570b236e79db7d1e12c4611 category: main optional: false - name: tqdm - version: 4.66.1 + version: 4.66.2 manager: conda platform: linux-64 dependencies: colorama: '' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.2-pyhd8ed1ab_0.conda hash: - md5: 03c97908b976498dcae97eb4e4f3149c - sha256: b61c9222af05e8c5ff27e4a4d2eb81870c21ffd7478346be3ef644b7a3759cc4 + md5: 2b8dfb969f984497f3f98409a9545776 + sha256: 416d1d9318f3267325ad7e2b8a575df20ff9031197b30c0222c3d3b023877260 category: main optional: false - name: tqdm - version: 4.66.1 + version: 4.66.2 manager: conda platform: osx-arm64 dependencies: colorama: '' python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.2-pyhd8ed1ab_0.conda hash: - md5: 03c97908b976498dcae97eb4e4f3149c - sha256: b61c9222af05e8c5ff27e4a4d2eb81870c21ffd7478346be3ef644b7a3759cc4 + md5: 2b8dfb969f984497f3f98409a9545776 + sha256: 416d1d9318f3267325ad7e2b8a575df20ff9031197b30c0222c3d3b023877260 category: main optional: false - name: traitlets - version: 5.14.1 + version: 5.14.2 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.2-pyhd8ed1ab_0.conda hash: - md5: 1c6acfdc7ecbfe09954c4216da99c146 - sha256: fa78d68f74ec8aae5c93f135140bfdbbf0ab60a79c6062b55d73c316068545ec + md5: af5fa2d2186003472e766a23c46cae04 + sha256: 9ea6073091c130470a51b51703c8d2d959434992e29c4aa4abeba07cd56533a3 category: main optional: false - name: traitlets - version: 5.14.1 + version: 5.14.2 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.2-pyhd8ed1ab_0.conda hash: - md5: 1c6acfdc7ecbfe09954c4216da99c146 - sha256: fa78d68f74ec8aae5c93f135140bfdbbf0ab60a79c6062b55d73c316068545ec + md5: af5fa2d2186003472e766a23c46cae04 + sha256: 9ea6073091c130470a51b51703c8d2d959434992e29c4aa4abeba07cd56533a3 category: main optional: false - name: typeguard @@ -15561,8 +16106,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' importlib_metadata: '>=3.6' + python: '>=3.8' typing_extensions: '>=4.7.0' url: https://conda.anaconda.org/conda-forge/noarch/typeguard-4.1.5-pyhd8ed1ab_1.conda hash: @@ -15571,75 +16116,75 @@ package: category: main optional: false - name: types-python-dateutil - version: 2.8.19.20240106 + version: 2.9.0.20240316 manager: conda platform: linux-64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.8.19.20240106-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda hash: - md5: c9096a546660b9079dce531c0039e074 - sha256: 09ef8cc587bdea80a83b6f820dbae24daadcf82be088fb0a9f6495781653e300 + md5: 7831efa91d57475373ee52fb92e8d137 + sha256: 6630bbc43dfb72339fadafc521db56c9d17af72bfce459af195eecb01163de20 category: main optional: false - name: types-python-dateutil - version: 2.8.19.20240106 + version: 2.9.0.20240316 manager: conda platform: osx-arm64 dependencies: python: '>=3.6' - url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.8.19.20240106-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.9.0.20240316-pyhd8ed1ab_0.conda hash: - md5: c9096a546660b9079dce531c0039e074 - sha256: 09ef8cc587bdea80a83b6f820dbae24daadcf82be088fb0a9f6495781653e300 + md5: 7831efa91d57475373ee52fb92e8d137 + sha256: 6630bbc43dfb72339fadafc521db56c9d17af72bfce459af195eecb01163de20 category: main optional: false - name: typing-extensions - version: 4.9.0 + version: 4.10.0 manager: conda platform: linux-64 dependencies: - typing_extensions: 4.9.0 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + typing_extensions: 4.10.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.10.0-hd8ed1ab_0.conda hash: - md5: c16524c1b7227dc80b36b4fa6f77cc86 - sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c + md5: 091683b9150d2ebaa62fd7e2c86433da + sha256: 0698fe2c4e555fb44c27c60f7a21fa0eea7f5bf8186ad109543c5b056e27f96a category: main optional: false - name: typing-extensions - version: 4.9.0 + version: 4.10.0 manager: conda platform: osx-arm64 dependencies: - typing_extensions: 4.9.0 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + typing_extensions: 4.10.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.10.0-hd8ed1ab_0.conda hash: - md5: c16524c1b7227dc80b36b4fa6f77cc86 - sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c + md5: 091683b9150d2ebaa62fd7e2c86433da + sha256: 0698fe2c4e555fb44c27c60f7a21fa0eea7f5bf8186ad109543c5b056e27f96a category: main optional: false - name: typing_extensions - version: 4.9.0 + version: 4.10.0 manager: conda platform: linux-64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.10.0-pyha770c72_0.conda hash: - md5: a92a6440c3fe7052d63244f3aba2a4a7 - sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + md5: 16ae769069b380646c47142d719ef466 + sha256: 4be24d557897b2f6609f5d5f7c437833c62f4d4a96581e39530067e96a2d0451 category: main optional: false - name: typing_extensions - version: 4.9.0 + version: 4.10.0 manager: conda platform: osx-arm64 dependencies: python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.10.0-pyha770c72_0.conda hash: - md5: a92a6440c3fe7052d63244f3aba2a4a7 - sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + md5: 16ae769069b380646c47142d719ef466 + sha256: 4be24d557897b2f6609f5d5f7c437833c62f4d4a96581e39530067e96a2d0451 category: main optional: false - name: typing_inspect @@ -15661,9 +16206,9 @@ package: manager: conda platform: osx-arm64 dependencies: + mypy_extensions: '>=0.3.0' python: '>=3.5' typing_extensions: '>=3.7.4' - mypy_extensions: '>=0.3.0' url: https://conda.anaconda.org/conda-forge/noarch/typing_inspect-0.9.0-pyhd8ed1ab_0.conda hash: md5: 9e924b76b91908a17e28a19a0ab88687 @@ -15695,49 +16240,49 @@ package: category: main optional: false - name: tzcode - version: 2023d + version: 2024a manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' libgcc-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2023d-h3f72095_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/tzcode-2024a-h3f72095_0.conda hash: - md5: 1c63518899838477ebd497e3e3327f81 - sha256: 0eab7ec2f4c983efb365bacc2e7bd6620f516a50d2e9b183ba1c9c243601cce3 + md5: 32146e34aaec3745a08b6f49af3f41b0 + sha256: d3ea2927cabd6c9f27ee0cb498f893ac0133687d6a9e65e0bce4861c732a18df category: main optional: false - name: tzcode - version: 2023d + version: 2024a manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2023d-h93a5062_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/tzcode-2024a-h93a5062_0.conda hash: - md5: 8f6c1eef62c660bfb43897fe14b2ca95 - sha256: a4bed39a41b26d5f8134fd0cb0df15bc0b9e645e3ee6f88ee81c8d24651eb8cd + md5: 33ebc94eb6420500a4aeb0fc45112bba + sha256: 70bce0410d77b6ba3c32079aa87a98877ea970d8e96f2e4503e9b81198ece1f4 category: main optional: false - name: tzdata - version: 2023d + version: 2024a manager: conda platform: linux-64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda hash: - md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 - sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 category: main optional: false - name: tzdata - version: 2023d + version: 2024a manager: conda platform: osx-arm64 dependencies: {} - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda hash: - md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 - sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 category: main optional: false - name: tzlocal @@ -15772,13 +16317,12 @@ package: platform: linux-64 dependencies: libgcc-ng: '>=12' - libnuma: '>=2.0.16,<3.0a0' libstdcxx-ng: '>=12' - rdma-core: '>=49' - url: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.15.0-h75e419f_3.conda + rdma-core: '>=50.0' + url: https://conda.anaconda.org/conda-forge/linux-64/ucx-1.15.0-h11edf95_7.conda hash: - md5: 5baf4efbca923cdf73490c62cc7de1e2 - sha256: 7b5ccea54cac81bda2704e1c4cf06dba17dd683871e785fa11a1788ed289be9a + md5: 20a94f617ad76922f8737ad1fe317f4d + sha256: 3e381ec5918045a43e0f349214a4d38e53990897ba07a6abf025f9e0156acaf2 category: main optional: false - name: ukkonen @@ -15894,10 +16438,10 @@ package: dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.7-hcb278e6_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.7-h59595ed_1.conda hash: - md5: 2c46deb08ba9b10e90d0a6401ad65deb - sha256: bc7670384fc3e519b376eab25b2c747afe392b243f17e881075231f4a0f2e5a0 + md5: c5edf07141147789784f89d5b4e4a9ad + sha256: ec997599b6dcfef34242c67b695c4704d9ba6cb0b9de8f390defa475a95cdb3f category: main optional: false - name: uriparser @@ -15905,11 +16449,11 @@ package: manager: conda platform: osx-arm64 dependencies: - libcxx: '>=14.0.6' - url: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.7-hb7217d7_1.conda + libcxx: '>=14' + url: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.7-h13dd4ca_1.conda hash: - md5: 4fe532e3c6b0cfa5365eb01743d32578 - sha256: bedd03f3bb30b73ae7b0dc9626f1371a8568ce6d41303df3e8299688428dfa94 + md5: df83a53820f413eb8b14045433a2d587 + sha256: 019103df9eec86c9afa92dec21a849e63d57bfa9125ca811e68b78dab224c4ee category: main optional: false - name: urllib3 @@ -15931,9 +16475,9 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.7' brotli-python: '>=1.0.9' pysocks: '>=1.5.6,<2.0,!=1.5.7' + python: '>=3.7' url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda hash: md5: bf61cfd2a7f212efba378167a07d4a6a @@ -16008,33 +16552,33 @@ package: category: main optional: false - name: virtualenv - version: 20.24.1 + version: 20.25.1 manager: conda platform: linux-64 dependencies: - distlib: <1,>=0.3.6 - filelock: <4,>=3.12 - platformdirs: <4,>=3.5.1 + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <5,>=3.9.1 python: '>=3.8' - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.1-pyhd8ed1ab_0.conda hash: - md5: 428f6c7385636d72191cb4fa0e489503 - sha256: 462b2277ec75babc2ee69a24a74e673ac633f6056889ed8e54d111f770c40904 + md5: 8797a4e26be36880a603aba29c785352 + sha256: 1ced4445cf72cd9dc344ad04bdaf703a08cc428c8c46e4bda928ad79786ee153 category: main optional: false - name: virtualenv - version: 20.24.1 + version: 20.25.1 manager: conda platform: osx-arm64 dependencies: + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <5,>=3.9.1 python: '>=3.8' - distlib: <1,>=0.3.6 - filelock: <4,>=3.12 - platformdirs: <4,>=3.5.1 - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.1-pyhd8ed1ab_0.conda hash: - md5: 428f6c7385636d72191cb4fa0e489503 - sha256: 462b2277ec75babc2ee69a24a74e673ac633f6056889ed8e54d111f770c40904 + md5: 8797a4e26be36880a603aba29c785352 + sha256: 1ced4445cf72cd9dc344ad04bdaf703a08cc428c8c46e4bda928ad79786ee153 category: main optional: false - name: wcwidth @@ -16151,8 +16695,8 @@ package: manager: conda platform: osx-arm64 dependencies: - python: '>=3.8' markupsafe: '>=2.1.1' + python: '>=3.8' url: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.0.1-pyhd8ed1ab_0.conda hash: md5: af8d825d93dbe6331ee6d61c69869ca0 @@ -16184,27 +16728,27 @@ package: category: main optional: false - name: widgetsnbextension - version: 4.0.9 + version: 4.0.10 manager: conda platform: linux-64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.9-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.10-pyhd8ed1ab_0.conda hash: - md5: 82617d07b2f5f5a96296d3c19684b37a - sha256: 35dd47b3c117cd759ac46da0b69064bebccd94862e795615ee65dbbe3e6cd86b + md5: 521f489e3babeddeec638c2add7e9e64 + sha256: 981b06c76a1a86bb84be09522768be0458274926b22f4b0225dfcdd30a6593e0 category: main optional: false - name: widgetsnbextension - version: 4.0.9 + version: 4.0.10 manager: conda platform: osx-arm64 dependencies: python: '>=3.7' - url: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.9-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.10-pyhd8ed1ab_0.conda hash: - md5: 82617d07b2f5f5a96296d3c19684b37a - sha256: 35dd47b3c117cd759ac46da0b69064bebccd94862e795615ee65dbbe3e6cd86b + md5: 521f489e3babeddeec638c2add7e9e64 + sha256: 981b06c76a1a86bb84be09522768be0458274926b22f4b0225dfcdd30a6593e0 category: main optional: false - name: wrapt @@ -16560,10 +17104,10 @@ package: libgcc-ng: '>=12' libsodium: '>=1.0.18,<1.0.19.0a0' libstdcxx-ng: '>=12' - url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h59595ed_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h59595ed_1.conda hash: - md5: 8851084c192dbc56215ac4e3c9aa30fa - sha256: 53bf2a18224406e9806adb3b270a2c8a028aca0c89bd40114a85d6446f5c98d1 + md5: 7fc9d3288d2420bb3637647621018000 + sha256: 3bec658f5c23abf5e200d98418add7a20ff7b45c928ad4560525bef899496256 category: main optional: false - name: zeromq @@ -16571,13 +17115,12 @@ package: manager: conda platform: osx-arm64 dependencies: - __osx: '>=10.9' - libcxx: '>=16.0.6' + libcxx: '>=16' libsodium: '>=1.0.18,<1.0.19.0a0' - url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h965bd2d_0.conda + url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hebf3989_1.conda hash: - md5: f460bbcb0ec8dc77989288fe8caa0f84 - sha256: 06abddc92d0bf83cd9faf25f26c98d7c2cc681cb50504011580b0584cf3cb1c5 + md5: 19cff1c627ff58429701113bf35300c8 + sha256: caf6df12d793600faec21b7e6025e2e8fb8de26672cce499f9471b99b6776eb1 category: main optional: false - name: zict @@ -16679,6 +17222,58 @@ package: sha256: 7e1fe6057628bbb56849a6741455bbb88705bae6d6646257e57904ac5ee5a481 category: main optional: false +- name: aioboto3 + version: 12.3.0 + manager: pip + platform: linux-64 + dependencies: + aiobotocore: 2.11.2 + url: https://files.pythonhosted.org/packages/2d/69/e375ee955f67eb468d5bc907423bdbdb39cbdd2012652e8abd98ba0bb255/aioboto3-12.3.0-py3-none-any.whl + hash: + sha256: 268b98046f8e1e303b4bbc553b60643b26c0031b4290ef163caf80c3be5ecf85 + category: main + optional: false +- name: aioboto3 + version: 12.3.0 + manager: pip + platform: osx-arm64 + dependencies: + aiobotocore: 2.11.2 + url: https://files.pythonhosted.org/packages/2d/69/e375ee955f67eb468d5bc907423bdbdb39cbdd2012652e8abd98ba0bb255/aioboto3-12.3.0-py3-none-any.whl + hash: + sha256: 268b98046f8e1e303b4bbc553b60643b26c0031b4290ef163caf80c3be5ecf85 + category: main + optional: false +- name: aiobotocore + version: 2.11.2 + manager: pip + platform: linux-64 + dependencies: + botocore: '>=1.33.2,<1.34.35' + aiohttp: '>=3.7.4.post0,<4.0.0' + wrapt: '>=1.10.10,<2.0.0' + aioitertools: '>=0.5.1,<1.0.0' + boto3: '>=1.33.2,<1.34.35' + url: https://files.pythonhosted.org/packages/25/cf/c695f7f3301117766d778f536082c41ba20fd01b02e14a5c06f92a5ea75e/aiobotocore-2.11.2-py3-none-any.whl + hash: + sha256: 487fede588040bfa3a43df945275c28c1c73ca75bf705295adb9fbadd2e89be7 + category: main + optional: false +- name: aiobotocore + version: 2.11.2 + manager: pip + platform: osx-arm64 + dependencies: + botocore: '>=1.33.2,<1.34.35' + aiohttp: '>=3.7.4.post0,<4.0.0' + wrapt: '>=1.10.10,<2.0.0' + aioitertools: '>=0.5.1,<1.0.0' + boto3: '>=1.33.2,<1.34.35' + url: https://files.pythonhosted.org/packages/25/cf/c695f7f3301117766d778f536082c41ba20fd01b02e14a5c06f92a5ea75e/aiobotocore-2.11.2-py3-none-any.whl + hash: + sha256: 487fede588040bfa3a43df945275c28c1c73ca75bf705295adb9fbadd2e89be7 + category: main + optional: false - name: annotated-types version: 0.6.0 manager: pip @@ -16699,6 +17294,58 @@ package: sha256: 0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43 category: main optional: false +- name: boto3 + version: 1.34.34 + manager: pip + platform: linux-64 + dependencies: + botocore: '>=1.34.34,<1.35.0' + jmespath: '>=0.7.1,<2.0.0' + s3transfer: '>=0.10.0,<0.11.0' + url: https://files.pythonhosted.org/packages/0e/78/d505b8c71139d234e34df1c4a18d0567287494ce63f690337aa2af23219c/boto3-1.34.34-py3-none-any.whl + hash: + sha256: 33a8b6d9136fa7427160edb92d2e50f2035f04e9d63a2d1027349053e12626aa + category: main + optional: false +- name: boto3 + version: 1.34.34 + manager: pip + platform: osx-arm64 + dependencies: + botocore: '>=1.34.34,<1.35.0' + jmespath: '>=0.7.1,<2.0.0' + s3transfer: '>=0.10.0,<0.11.0' + url: https://files.pythonhosted.org/packages/0e/78/d505b8c71139d234e34df1c4a18d0567287494ce63f690337aa2af23219c/boto3-1.34.34-py3-none-any.whl + hash: + sha256: 33a8b6d9136fa7427160edb92d2e50f2035f04e9d63a2d1027349053e12626aa + category: main + optional: false +- name: botocore + version: 1.34.34 + manager: pip + platform: linux-64 + dependencies: + jmespath: '>=0.7.1,<2.0.0' + python-dateutil: '>=2.1,<3.0.0' + urllib3: '>=1.25.4,<1.27' + url: https://files.pythonhosted.org/packages/6e/71/b81be726c424784858e9b9ccada167dbb19364f37744d9d780c2f79f9e6e/botocore-1.34.34-py3-none-any.whl + hash: + sha256: cd060b0d88ebb2b893f1411c1db7f2ba66cc18e52dcc57ad029564ef5fec437b + category: main + optional: false +- name: botocore + version: 1.34.34 + manager: pip + platform: osx-arm64 + dependencies: + jmespath: '>=0.7.1,<2.0.0' + python-dateutil: '>=2.1,<3.0.0' + urllib3: '>=1.25.4,<1.27' + url: https://files.pythonhosted.org/packages/6e/71/b81be726c424784858e9b9ccada167dbb19364f37744d9d780c2f79f9e6e/botocore-1.34.34-py3-none-any.whl + hash: + sha256: cd060b0d88ebb2b893f1411c1db7f2ba66cc18e52dcc57ad029564ef5fec437b + category: main + optional: false - name: dacite version: 1.8.1 manager: pip @@ -17049,6 +17696,21 @@ package: sha256: bf14aa0eb22b58c231243dccf7e7f42f7beec48970f2549b3a6acc737d1a4ba4 category: main optional: false +- name: modin + version: 0.22.3 + manager: pip + platform: linux-64 + dependencies: + pandas: 1.5.3 + packaging: '*' + numpy: '>=1.18.5' + fsspec: '*' + psutil: '*' + url: https://files.pythonhosted.org/packages/79/68/e560890fe0b8b89eb55e30bf7c11c4f43d1975da578e516a0996a7fce562/modin-0.22.3-py3-none-any.whl + hash: + sha256: e438ead6eb8dc536dbf8c74365e007d88d6187196f2d0756b77d6551bf35a686 + category: main + optional: false - name: modin version: 0.22.3 manager: pip @@ -17088,6 +17750,19 @@ package: sha256: 9e9356e943617f5e35a74bf56ff6e7cc83e6b1865d5e13cee535d79bf2cae954 category: main optional: false +- name: pandas + version: 1.5.3 + manager: pip + platform: linux-64 + dependencies: + python-dateutil: '>=2.8.1' + pytz: '>=2020.1' + numpy: '>=1.20.3' + url: https://files.pythonhosted.org/packages/e1/4d/3eb96e53a9208350ee21615f850c4be9a246d32bf1d34cd36682cb58c3b7/pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + hash: + sha256: 9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5 + category: main + optional: false - name: pandas version: 1.5.3 manager: pip @@ -17295,6 +17970,28 @@ package: sha256: 77b5b12e9fa6bb7ab623e7be5bfbd7523c83a2ea72c48f6f6f4d5e3df87ac896 category: main optional: false +- name: s3transfer + version: 0.10.1 + manager: pip + platform: linux-64 + dependencies: + botocore: '>=1.33.2,<2.0a.0' + url: https://files.pythonhosted.org/packages/83/37/395cdb6ee92925fa211e55d8f07b9f93cf93f60d7d4ce5e66fd73f1ea986/s3transfer-0.10.1-py3-none-any.whl + hash: + sha256: ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d + category: main + optional: false +- name: s3transfer + version: 0.10.1 + manager: pip + platform: osx-arm64 + dependencies: + botocore: '>=1.33.2,<2.0a.0' + url: https://files.pythonhosted.org/packages/83/37/395cdb6ee92925fa211e55d8f07b9f93cf93f60d7d4ce5e66fd73f1ea986/s3transfer-0.10.1-py3-none-any.whl + hash: + sha256: ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d + category: main + optional: false - name: scipy version: 1.11.4 manager: pip diff --git a/monodocs-environment.yaml b/monodocs-environment.yaml index 78f85c19cf..82ce9868f1 100644 --- a/monodocs-environment.yaml +++ b/monodocs-environment.yaml @@ -29,7 +29,6 @@ dependencies: # Packages for Plugin docs # Package name Plugin needing it - - retry # aws sagemaker - botocore # fsspec - fsspec # fsspec - google-cloud-bigquery # bigquery @@ -38,6 +37,7 @@ dependencies: - great-expectations # greatexpectations - datasets # huggingface - kubernetes # k8s-pod + - python-kubernetes # k8s-pod - modin # modin - pandera # pandera - pydantic # vaex, pydantic @@ -75,6 +75,7 @@ dependencies: - whylabs-client # whylogs - ray==2.6.3 - duckdb + - aioboto3>=12.3.0 # aws sagemaker inference platforms: - linux-64 From b6f35add1227c930e9208103235d89fe4b864b8e Mon Sep 17 00:00:00 2001 From: Cornelis Boon Date: Fri, 22 Mar 2024 16:06:16 +0100 Subject: [PATCH 63/76] add first version of gke-starter values file (#5026) * add first version of gke-starter values file Signed-off-by: Cornelis Boon * remove AWS metadata env var, add service account annotations, update templateUri Signed-off-by: Cornelis Boon * let user fill in GCP project ID in templateUri Signed-off-by: Cornelis Boon * add link to GCP workload identity configuration Signed-off-by: Cornelis Boon * run make helm Signed-off-by: Cornelis Boon * bump flyte-binary chart version to v0.1.11 Signed-off-by: Cornelis Boon * Revert "bump flyte-binary chart version to v0.1.11" This reverts commit ddfe8402182fe594edd6a47e096b344b712d0985. Signed-off-by: Cornelis Boon * add default configuration to allow scheduling on gpu nodes in GKE Signed-off-by: Cornelis Boon * add default gpu-partition-size label to allow scheduling on multi-instance GPUs in GKE Signed-off-by: Cornelis Boon * run make helm Signed-off-by: Cornelis Boon * fix linting errors Signed-off-by: Cornelis Boon --------- Signed-off-by: Cornelis Boon --- charts/flyte-binary/Chart.yaml | 1 + charts/flyte-binary/gke-starter.yaml | 146 ++++++++++++++++++ .../manifests/complete-agent.yaml | 4 +- .../sandbox-bundled/manifests/complete.yaml | 4 +- docker/sandbox-bundled/manifests/dev.yaml | 4 +- 5 files changed, 153 insertions(+), 6 deletions(-) create mode 100644 charts/flyte-binary/gke-starter.yaml diff --git a/charts/flyte-binary/Chart.yaml b/charts/flyte-binary/Chart.yaml index 730b109d0d..9c8ebc3d24 100644 --- a/charts/flyte-binary/Chart.yaml +++ b/charts/flyte-binary/Chart.yaml @@ -7,6 +7,7 @@ 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 # This is the version number of the application being deployed. This version number should be 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/docker/sandbox-bundled/manifests/complete-agent.yaml b/docker/sandbox-bundled/manifests/complete-agent.yaml index 1779389183..3d40c5a8f8 100644 --- a/docker/sandbox-bundled/manifests/complete-agent.yaml +++ b/docker/sandbox-bundled/manifests/complete-agent.yaml @@ -816,7 +816,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: allvNmJ4bUxTcVo2Z0lObw== + haSharedSecret: QWVsREJpZnlIR2N1UXJSMg== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1412,7 +1412,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 7e2eea3d2c604971389c67f39e7d553b6329ea37af5254119febf0a125e55e64 + checksum/secret: 6eadd3a29b61a78cf3a7712f3370a10fc0ec1a61c40753a48c7fa8bea69a6ec6 labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/complete.yaml b/docker/sandbox-bundled/manifests/complete.yaml index 05e557ad96..69739d52d7 100644 --- a/docker/sandbox-bundled/manifests/complete.yaml +++ b/docker/sandbox-bundled/manifests/complete.yaml @@ -796,7 +796,7 @@ type: Opaque --- apiVersion: v1 data: - haSharedSecret: d2Fqb3NpcVh5a1JUaGR4Vg== + haSharedSecret: NmtkWjAwUWhadWlzb0xNcA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -1360,7 +1360,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 087a8de1fb03ba21b367df5aa3a47d77ec2acbdeb9b6d2fa66c0caa04c304246 + checksum/secret: 98727a2bd78c4e88ef413663ebff406f78c8fdbda001f7ba7b6b784934cd4d4a labels: app: docker-registry release: flyte-sandbox diff --git a/docker/sandbox-bundled/manifests/dev.yaml b/docker/sandbox-bundled/manifests/dev.yaml index 71a34f8bed..fd77ad44e0 100644 --- a/docker/sandbox-bundled/manifests/dev.yaml +++ b/docker/sandbox-bundled/manifests/dev.yaml @@ -499,7 +499,7 @@ metadata: --- apiVersion: v1 data: - haSharedSecret: WGtoeXNQV2FrV0lGeWJMeg== + haSharedSecret: WG01UkdoN2dNTzBMRjJDVA== proxyPassword: "" proxyUsername: "" kind: Secret @@ -934,7 +934,7 @@ spec: metadata: annotations: checksum/config: 8f50e768255a87f078ba8b9879a0c174c3e045ffb46ac8723d2eedbe293c8d81 - checksum/secret: 63c7525d8f4e16616715d985d9581611a83fe095e65b51cc25c61f9009f595da + checksum/secret: 5400c48803b4ae9d08115e0f52f00245498c0b06d11d318a36590b01f91e2753 labels: app: docker-registry release: flyte-sandbox From feb4777a62419dbc729f76233231204918b69917 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Fri, 22 Mar 2024 22:00:36 -0700 Subject: [PATCH 64/76] Fix open ai secret name (#5098) Signed-off-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> --- docs/deployment/agents/chatgpt.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/deployment/agents/chatgpt.rst b/docs/deployment/agents/chatgpt.rst index c3e5a490ea..a810bf5fdf 100644 --- a/docs/deployment/agents/chatgpt.rst +++ b/docs/deployment/agents/chatgpt.rst @@ -94,7 +94,7 @@ Add the OpenAI API token apiVersion: v1 data: - flyte_openai_access_token: + flyte_openai_api_key: kind: Secret metadata: annotations: From 2260ca2b9b09060bb805e28ff0dd14a8940738b9 Mon Sep 17 00:00:00 2001 From: Rafael Raposo <100569684+RRap0so@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:23:36 +0000 Subject: [PATCH 65/76] Allow setting a ExecutionClusterLabel when triggering a Launchplan/Workflow/Task (#4998) Add ExecutionClusterLabel to the ExecutionSpec so users can override the label at kick off time. Closes https://github.com/flyteorg/flyte/issues/5081 Signed-off-by: Rafael Raposo --- .../pkg/executioncluster/execution_target.go | 14 +- .../pkg/executioncluster/impl/in_cluster.go | 3 + .../executioncluster/impl/in_cluster_test.go | 11 + .../impl/random_cluster_selector.go | 34 +- .../impl/random_cluster_selector_test.go | 32 + .../pkg/manager/impl/execution_manager.go | 51 +- .../manager/impl/execution_manager_test.go | 6 +- flyteadmin/pkg/server/service.go | 2 +- .../pkg/workflowengine/impl/k8s_executor.go | 11 +- .../pkg/workflowengine/interfaces/executor.go | 25 +- flyteadmin/tests/project_test.go | 2 +- flyteidl/clients/go/assets/admin.swagger.json | 4 + .../gen/pb-es/flyteidl/admin/execution_pb.ts | 9 + .../gen/pb-go/flyteidl/admin/execution.pb.go | 704 +-- .../flyteidl/service/admin.swagger.json | 4 + flyteidl/gen/pb-js/flyteidl.d.ts | 1842 +++---- flyteidl/gen/pb-js/flyteidl.js | 4687 +++++++++-------- .../pb_python/flyteidl/admin/execution_pb2.py | 103 +- .../flyteidl/admin/execution_pb2.pyi | 7 +- flyteidl/gen/pb_rust/flyteidl.admin.rs | 1545 +++--- .../protos/flyteidl/admin/execution.proto | 4 + 21 files changed, 4623 insertions(+), 4477 deletions(-) diff --git a/flyteadmin/pkg/executioncluster/execution_target.go b/flyteadmin/pkg/executioncluster/execution_target.go index 9691e12afb..78667ed62c 100644 --- a/flyteadmin/pkg/executioncluster/execution_target.go +++ b/flyteadmin/pkg/executioncluster/execution_target.go @@ -5,18 +5,20 @@ import ( restclient "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" flyteclient "github.com/flyteorg/flyte/flytepropeller/pkg/client/clientset/versioned" "github.com/flyteorg/flyte/flytestdlib/random" ) // Spec to determine the execution target type ExecutionTargetSpec struct { - TargetID string - ExecutionID string - Project string - Domain string - Workflow string - LaunchPlan string + TargetID string + ExecutionID string + Project string + Domain string + Workflow string + LaunchPlan string + ExecutionClusterLabel *admin.ExecutionClusterLabel } // Client object of the target execution cluster diff --git a/flyteadmin/pkg/executioncluster/impl/in_cluster.go b/flyteadmin/pkg/executioncluster/impl/in_cluster.go index fb42178dec..f06d1c4adf 100644 --- a/flyteadmin/pkg/executioncluster/impl/in_cluster.go +++ b/flyteadmin/pkg/executioncluster/impl/in_cluster.go @@ -26,6 +26,9 @@ func (i InCluster) GetTarget(ctx context.Context, spec *executioncluster.Executi if spec != nil && !(spec.TargetID == "" || spec.TargetID == defaultInClusterTargetID) { return nil, errors.New(fmt.Sprintf("remote target %s is not supported", spec.TargetID)) } + if spec != nil && spec.ExecutionClusterLabel != nil && spec.ExecutionClusterLabel.Value != "" { + return nil, errors.New(fmt.Sprintf("execution cluster label %s is not supported", spec.ExecutionClusterLabel.Value)) + } return &i.target, nil } diff --git a/flyteadmin/pkg/executioncluster/impl/in_cluster_test.go b/flyteadmin/pkg/executioncluster/impl/in_cluster_test.go index e31cb8ad11..a02d735e46 100644 --- a/flyteadmin/pkg/executioncluster/impl/in_cluster_test.go +++ b/flyteadmin/pkg/executioncluster/impl/in_cluster_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/flyteorg/flyte/flyteadmin/pkg/executioncluster" + "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" ) func TestInClusterGetTarget(t *testing.T) { @@ -52,6 +53,16 @@ func TestInClusterGetRemoteTarget(t *testing.T) { assert.EqualError(t, err, "remote target t1 is not supported") } +func TestInClusterGetTargetWithExecutionClusterLabel(t *testing.T) { + cluster := InCluster{ + target: executioncluster.ExecutionTarget{}, + } + _, err := cluster.GetTarget(context.Background(), &executioncluster.ExecutionTargetSpec{ExecutionClusterLabel: &admin.ExecutionClusterLabel{ + Value: "l1", + }}) + assert.EqualError(t, err, "execution cluster label l1 is not supported") +} + func TestInClusterGetAllValidTargets(t *testing.T) { target := &executioncluster.ExecutionTarget{ Enabled: true, diff --git a/flyteadmin/pkg/executioncluster/impl/random_cluster_selector.go b/flyteadmin/pkg/executioncluster/impl/random_cluster_selector.go index 74dad42ce0..35340d3822 100644 --- a/flyteadmin/pkg/executioncluster/impl/random_cluster_selector.go +++ b/flyteadmin/pkg/executioncluster/impl/random_cluster_selector.go @@ -93,21 +93,31 @@ func (s RandomClusterSelector) GetTarget(ctx context.Context, spec *executionclu } return nil, fmt.Errorf("invalid cluster target %s", spec.TargetID) } - resource, err := s.resourceManager.GetResource(ctx, managerInterfaces.ResourceRequest{ - Project: spec.Project, - Domain: spec.Domain, - Workflow: spec.Workflow, - LaunchPlan: spec.LaunchPlan, - ResourceType: admin.MatchableResource_EXECUTION_CLUSTER_LABEL, - }) - if err != nil && !errors.IsDoesNotExistError(err) { - return nil, err - } var weightedRandomList random.WeightedRandomList - if resource != nil && resource.Attributes.GetExecutionClusterLabel() != nil { - label := resource.Attributes.GetExecutionClusterLabel().Value + var label string + + if spec.ExecutionClusterLabel != nil && spec.ExecutionClusterLabel.Value != "" { + label = spec.ExecutionClusterLabel.Value + logger.Debugf(ctx, "Using execution cluster label %s", label) + } else { + resource, err := s.resourceManager.GetResource(ctx, managerInterfaces.ResourceRequest{ + Project: spec.Project, + Domain: spec.Domain, + Workflow: spec.Workflow, + LaunchPlan: spec.LaunchPlan, + ResourceType: admin.MatchableResource_EXECUTION_CLUSTER_LABEL, + }) + if err != nil && !errors.IsDoesNotExistError(err) { + return nil, err + } + if resource != nil && resource.Attributes.GetExecutionClusterLabel() != nil { + label = resource.Attributes.GetExecutionClusterLabel().Value + } + } + + if label != "" { if _, ok := s.labelWeightedRandomMap[label]; ok { weightedRandomList = s.labelWeightedRandomMap[label] } else { diff --git a/flyteadmin/pkg/executioncluster/impl/random_cluster_selector_test.go b/flyteadmin/pkg/executioncluster/impl/random_cluster_selector_test.go index 0564a05447..955d740100 100644 --- a/flyteadmin/pkg/executioncluster/impl/random_cluster_selector_test.go +++ b/flyteadmin/pkg/executioncluster/impl/random_cluster_selector_test.go @@ -307,3 +307,35 @@ func TestRandomClusterSelectorGetTargetWithFallbackToDefault3(t *testing.T) { assert.Equal(t, testCluster1, target.ID) assert.True(t, target.Enabled) } + +func TestRandomClusterSelectorGetTargetWithExecutionClusterLabelClusterAssignmentOne(t *testing.T) { + cluster := getRandomClusterSelectorWithDefaultLabelForTest(t, clusterConfig2WithDefaultLabel) + target, err := cluster.GetTarget(context.Background(), &executioncluster.ExecutionTargetSpec{ + Project: testProject, + Domain: "different", + Workflow: testWorkflow, + ExecutionID: "e3", + ExecutionClusterLabel: &admin.ExecutionClusterLabel{ + Value: "one", + }, + }) + assert.Nil(t, err) + assert.Equal(t, "testcluster1", target.ID) + assert.True(t, target.Enabled) +} + +func TestRandomClusterSelectorGetTargetWithExecutionClusterLabelClusterAssignmentThree(t *testing.T) { + cluster := getRandomClusterSelectorWithDefaultLabelForTest(t, clusterConfig2WithDefaultLabel) + target, err := cluster.GetTarget(context.Background(), &executioncluster.ExecutionTargetSpec{ + Project: testProject, + Domain: "different", + Workflow: testWorkflow, + ExecutionID: "e3", + ExecutionClusterLabel: &admin.ExecutionClusterLabel{ + Value: "three", + }, + }) + assert.Nil(t, err) + assert.Equal(t, "testcluster3", target.ID) + assert.True(t, target.Enabled) +} diff --git a/flyteadmin/pkg/manager/impl/execution_manager.go b/flyteadmin/pkg/manager/impl/execution_manager.go index 16a36f895f..e3fd87ba71 100644 --- a/flyteadmin/pkg/manager/impl/execution_manager.go +++ b/flyteadmin/pkg/manager/impl/execution_manager.go @@ -547,17 +547,22 @@ func (m *ExecutionManager) launchSingleTaskExecution( return nil, nil, err } + var executionClusterLabel *admin.ExecutionClusterLabel + if requestSpec.ExecutionClusterLabel != nil { + executionClusterLabel = requestSpec.ExecutionClusterLabel + } executionParameters := workflowengineInterfaces.ExecutionParameters{ - Inputs: executionInputs, - AcceptedAt: requestedAt, - Labels: labels, - Annotations: annotations, - ExecutionConfig: executionConfig, - TaskResources: &platformTaskResources, - EventVersion: m.config.ApplicationConfiguration().GetTopLevelConfig().EventVersion, - RoleNameKey: m.config.ApplicationConfiguration().GetTopLevelConfig().RoleNameKey, - RawOutputDataConfig: rawOutputDataConfig, - ClusterAssignment: clusterAssignment, + Inputs: executionInputs, + AcceptedAt: requestedAt, + Labels: labels, + Annotations: annotations, + ExecutionConfig: executionConfig, + TaskResources: &platformTaskResources, + EventVersion: m.config.ApplicationConfiguration().GetTopLevelConfig().EventVersion, + RoleNameKey: m.config.ApplicationConfiguration().GetTopLevelConfig().RoleNameKey, + RawOutputDataConfig: rawOutputDataConfig, + ClusterAssignment: clusterAssignment, + ExecutionClusterLabel: executionClusterLabel, } overrides, err := m.addPluginOverrides(ctx, &workflowExecutionID, workflowExecutionID.Name, "") @@ -947,17 +952,23 @@ func (m *ExecutionManager) launchExecutionAndPrepareModel( return nil, nil, err } + var executionClusterLabel *admin.ExecutionClusterLabel + if requestSpec.ExecutionClusterLabel != nil { + executionClusterLabel = requestSpec.ExecutionClusterLabel + } + executionParameters := workflowengineInterfaces.ExecutionParameters{ - Inputs: executionInputs, - AcceptedAt: requestedAt, - Labels: labels, - Annotations: annotations, - ExecutionConfig: executionConfig, - TaskResources: &platformTaskResources, - EventVersion: m.config.ApplicationConfiguration().GetTopLevelConfig().EventVersion, - RoleNameKey: m.config.ApplicationConfiguration().GetTopLevelConfig().RoleNameKey, - RawOutputDataConfig: rawOutputDataConfig, - ClusterAssignment: clusterAssignment, + Inputs: executionInputs, + AcceptedAt: requestedAt, + Labels: labels, + Annotations: annotations, + ExecutionConfig: executionConfig, + TaskResources: &platformTaskResources, + EventVersion: m.config.ApplicationConfiguration().GetTopLevelConfig().EventVersion, + RoleNameKey: m.config.ApplicationConfiguration().GetTopLevelConfig().RoleNameKey, + RawOutputDataConfig: rawOutputDataConfig, + ClusterAssignment: clusterAssignment, + ExecutionClusterLabel: executionClusterLabel, } overrides, err := m.addPluginOverrides(ctx, &workflowExecutionID, launchPlan.GetSpec().WorkflowId.Name, launchPlan.Id.Name) diff --git a/flyteadmin/pkg/manager/impl/execution_manager_test.go b/flyteadmin/pkg/manager/impl/execution_manager_test.go index d6a05cc214..52ff607725 100644 --- a/flyteadmin/pkg/manager/impl/execution_manager_test.go +++ b/flyteadmin/pkg/manager/impl/execution_manager_test.go @@ -54,8 +54,9 @@ import ( ) const ( - principal = "principal" - rawOutput = "raw_output" + principal = "principal" + rawOutput = "raw_output" + executionClusterLabel = "execution_cluster_label" ) var spec = testutils.GetExecutionRequest().Spec @@ -383,6 +384,7 @@ func TestCreateExecution(t *testing.T) { } request.Spec.RawOutputDataConfig = &admin.RawOutputDataConfig{OutputLocationPrefix: rawOutput} request.Spec.ClusterAssignment = &clusterAssignment + request.Spec.ExecutionClusterLabel = &admin.ExecutionClusterLabel{Value: executionClusterLabel} identity, err := auth.NewIdentityContext("", principal, "", time.Now(), sets.NewString(), nil, nil) assert.NoError(t, err) diff --git a/flyteadmin/pkg/server/service.go b/flyteadmin/pkg/server/service.go index 3a2eff220d..ff80c343d3 100644 --- a/flyteadmin/pkg/server/service.go +++ b/flyteadmin/pkg/server/service.go @@ -4,7 +4,6 @@ import ( "context" "crypto/tls" "fmt" - "google.golang.org/protobuf/encoding/protojson" "net" "net/http" "strings" @@ -24,6 +23,7 @@ import ( "google.golang.org/grpc/health/grpc_health_v1" "google.golang.org/grpc/metadata" "google.golang.org/grpc/reflection" + "google.golang.org/protobuf/encoding/protojson" "k8s.io/apimachinery/pkg/util/rand" "github.com/flyteorg/flyte/flyteadmin/auth" diff --git a/flyteadmin/pkg/workflowengine/impl/k8s_executor.go b/flyteadmin/pkg/workflowengine/impl/k8s_executor.go index a141b14de9..f90051fabe 100644 --- a/flyteadmin/pkg/workflowengine/impl/k8s_executor.go +++ b/flyteadmin/pkg/workflowengine/impl/k8s_executor.go @@ -56,11 +56,12 @@ func (e K8sWorkflowExecutor) Execute(ctx context.Context, data interfaces.Execut } executionTargetSpec := executioncluster.ExecutionTargetSpec{ - Project: data.ExecutionID.Project, - Domain: data.ExecutionID.Domain, - Workflow: data.ReferenceWorkflowName, - LaunchPlan: data.ReferenceWorkflowName, - ExecutionID: data.ExecutionID.Name, + Project: data.ExecutionID.Project, + Domain: data.ExecutionID.Domain, + Workflow: data.ReferenceWorkflowName, + LaunchPlan: data.ReferenceWorkflowName, + ExecutionID: data.ExecutionID.Name, + ExecutionClusterLabel: data.ExecutionParameters.ExecutionClusterLabel, } targetCluster, err := e.executionCluster.GetTarget(ctx, &executionTargetSpec) if err != nil { diff --git a/flyteadmin/pkg/workflowengine/interfaces/executor.go b/flyteadmin/pkg/workflowengine/interfaces/executor.go index 726423c333..181986c2c3 100644 --- a/flyteadmin/pkg/workflowengine/interfaces/executor.go +++ b/flyteadmin/pkg/workflowengine/interfaces/executor.go @@ -18,18 +18,19 @@ type TaskResources struct { } type ExecutionParameters struct { - Inputs *core.LiteralMap - AcceptedAt time.Time - Labels map[string]string - Annotations map[string]string - TaskPluginOverrides []*admin.PluginOverride - ExecutionConfig *admin.WorkflowExecutionConfig - RecoveryExecution *core.WorkflowExecutionIdentifier - TaskResources *TaskResources - EventVersion int - RoleNameKey string - RawOutputDataConfig *admin.RawOutputDataConfig - ClusterAssignment *admin.ClusterAssignment + Inputs *core.LiteralMap + AcceptedAt time.Time + Labels map[string]string + Annotations map[string]string + TaskPluginOverrides []*admin.PluginOverride + ExecutionConfig *admin.WorkflowExecutionConfig + RecoveryExecution *core.WorkflowExecutionIdentifier + TaskResources *TaskResources + EventVersion int + RoleNameKey string + RawOutputDataConfig *admin.RawOutputDataConfig + ClusterAssignment *admin.ClusterAssignment + ExecutionClusterLabel *admin.ExecutionClusterLabel } // ExecutionData includes all parameters required to create an execution CRD object. diff --git a/flyteadmin/tests/project_test.go b/flyteadmin/tests/project_test.go index daf3c792f7..0534ca1f3a 100644 --- a/flyteadmin/tests/project_test.go +++ b/flyteadmin/tests/project_test.go @@ -5,13 +5,13 @@ package tests import ( "context" - "github.com/flyteorg/flyte/flytestdlib/utils" "testing" "github.com/stretchr/testify/assert" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin" "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core" + "github.com/flyteorg/flyte/flytestdlib/utils" ) func TestCreateProject(t *testing.T) { diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index 226588a131..dcbfa5ce37 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -5016,6 +5016,10 @@ "type": "string" }, "description": "Tags to be set for the execution." + }, + "execution_cluster_label": { + "$ref": "#/definitions/adminExecutionClusterLabel", + "description": "Execution cluster label to be set for the execution." } }, "description": "An ExecutionSpec encompasses all data used to launch this execution. The Spec does not change over the lifetime\nof an execution as it progresses across phase changes." diff --git a/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts b/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts index bce98af489..185455bcb5 100644 --- a/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/admin/execution_pb.ts @@ -12,6 +12,7 @@ import { Annotations, AuthRole, Envs, Labels, Notification, RawOutputDataConfig, import { ArtifactID } from "../core/artifact_id_pb.js"; import { SecurityContext } from "../core/security_pb.js"; import { ClusterAssignment } from "./cluster_assignment_pb.js"; +import { ExecutionClusterLabel } from "./matchable_resource_pb.js"; import { Span } from "../core/metrics_pb.js"; /** @@ -1115,6 +1116,13 @@ export class ExecutionSpec extends Message { */ tags: string[] = []; + /** + * Execution cluster label to be set for the execution. + * + * @generated from field: flyteidl.admin.ExecutionClusterLabel execution_cluster_label = 25; + */ + executionClusterLabel?: ExecutionClusterLabel; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -1140,6 +1148,7 @@ export class ExecutionSpec extends Message { { no: 22, name: "overwrite_cache", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, { no: 23, name: "envs", kind: "message", T: Envs }, { no: 24, name: "tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 25, name: "execution_cluster_label", kind: "message", T: ExecutionClusterLabel }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): ExecutionSpec { diff --git a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go index e288f658ad..3fe65e1b88 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go @@ -1267,6 +1267,8 @@ type ExecutionSpec struct { Envs *Envs `protobuf:"bytes,23,opt,name=envs,proto3" json:"envs,omitempty"` // Tags to be set for the execution. Tags []string `protobuf:"bytes,24,rep,name=tags,proto3" json:"tags,omitempty"` + // Execution cluster label to be set for the execution. + ExecutionClusterLabel *ExecutionClusterLabel `protobuf:"bytes,25,opt,name=execution_cluster_label,json=executionClusterLabel,proto3" json:"execution_cluster_label,omitempty"` } func (x *ExecutionSpec) Reset() { @@ -1429,6 +1431,13 @@ func (x *ExecutionSpec) GetTags() []string { return nil } +func (x *ExecutionSpec) GetExecutionClusterLabel() *ExecutionClusterLabel { + if x != nil { + return x.ExecutionClusterLabel + } + return nil +} + type isExecutionSpec_NotificationOverrides interface { isExecutionSpec_NotificationOverrides() } @@ -1980,337 +1989,345 @@ var file_flyteidl_admin_execution_proto_rawDesc = []byte{ 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xd6, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x31, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, - 0x73, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x52, - 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0x99, 0x01, 0x0a, 0x18, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4a, - 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xa8, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x55, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, - 0x69, 0x64, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x04, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, - 0x3a, 0x0a, 0x07, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x75, - 0x72, 0x65, 0x52, 0x07, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x22, 0x60, 0x0a, 0x0d, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x65, 0x0a, - 0x0e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x6c, 0x6f, 0x62, 0x12, - 0x37, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x42, 0x06, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x43, 0x0a, 0x0d, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x98, 0x07, 0x0a, 0x10, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x3e, - 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x6c, 0x6f, 0x62, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x35, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x63, - 0x61, 0x75, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, - 0x52, 0x0a, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, - 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, - 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3c, - 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x12, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5b, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x22, 0x85, 0x05, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x5a, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x5b, 0x0a, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x12, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3c, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x49, 0x64, 0x73, 0x22, 0x74, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x52, - 0x45, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x49, - 0x4c, 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, - 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x10, 0x06, 0x22, 0x56, 0x0a, 0x10, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, - 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x90, 0x08, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0b, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x6c, - 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x6e, 0x12, - 0x35, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x1a, 0x27, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x16, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, - 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x21, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, - 0x6c, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x75, - 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x39, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x61, - 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x10, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, - 0x58, 0x0a, 0x16, 0x72, 0x61, 0x77, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x72, 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x12, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x18, 0x17, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x73, 0x52, 0x04, 0x65, 0x6e, 0x76, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x4a, 0x04, - 0x08, 0x04, 0x10, 0x05, 0x22, 0x6d, 0x0a, 0x19, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, - 0x75, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x5d, 0x0a, 0x1f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, + 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x22, 0x99, 0x01, 0x0a, 0x18, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xa8, + 0x01, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x17, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x88, 0x02, 0x0a, 0x20, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x72, 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x72, - 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, - 0x70, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3c, 0x0a, - 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x0b, - 0x66, 0x75, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x16, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x65, + 0x22, 0x59, 0x0a, 0x1b, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb6, 0x01, 0x0a, 0x09, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x6c, 0x6f, 0x73, + 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x07, 0x63, 0x6c, 0x6f, + 0x73, 0x75, 0x72, 0x65, 0x22, 0x60, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x65, 0x0a, 0x0e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x37, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x03, 0x75, 0x72, 0x69, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x43, 0x0a, + 0x0d, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, + 0x61, 0x75, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, + 0x61, 0x6c, 0x22, 0x98, 0x07, 0x0a, 0x10, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, + 0x0a, 0x0b, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x62, 0x6f, 0x72, 0x74, + 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, + 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, + 0x61, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, + 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x46, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, + 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, + 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x5d, 0x0a, + 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, - 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x0f, 0x0a, 0x0d, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5b, 0x0a, + 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x85, 0x05, 0x0a, 0x11, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x43, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3d, 0x0a, + 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x22, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x4e, 0x0a, 0x23, + 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x5a, 0x0a, 0x15, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x13, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x12, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3c, + 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x12, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x44, 0x52, + 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x73, 0x22, 0x74, 0x0a, 0x0d, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, + 0x06, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, + 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x59, 0x53, 0x54, + 0x45, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, + 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4b, + 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, + 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, + 0x10, 0x06, 0x22, 0x56, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xef, 0x08, 0x0a, 0x0d, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x0b, + 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x61, + 0x75, 0x6e, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x4d, 0x61, 0x70, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, + 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, + 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x65, + 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x6f, + 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x6f, + 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, + 0x12, 0x4d, 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x51, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x10, 0x71, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, + 0x73, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, + 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x12, 0x58, 0x0a, 0x16, 0x72, 0x61, 0x77, 0x5f, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x61, 0x77, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x72, + 0x61, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x50, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, + 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, + 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, + 0x6e, 0x76, 0x73, 0x52, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x5d, 0x0a, + 0x17, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x15, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x18, 0x0a, 0x16, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x6d, 0x0a, 0x19, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x1f, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x20, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, + 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x55, 0x72, 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x72, 0x6c, 0x42, 0x6c, 0x6f, 0x62, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x66, 0x75, 0x6c, + 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x4d, 0x61, 0x70, 0x52, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, + 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x22, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x2a, 0x3e, 0x0a, 0x0e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, - 0x0a, 0x10, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, 0x42, 0xba, 0x01, 0x0a, - 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, - 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, - 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, 0xaa, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, - 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xca, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0xe2, 0x02, 0x1a, 0x46, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x22, 0x4e, 0x0a, 0x23, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x73, + 0x70, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x04, + 0x73, 0x70, 0x61, 0x6e, 0x2a, 0x3e, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, + 0x45, 0x44, 0x10, 0x01, 0x42, 0xba, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, + 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, + 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, + 0xaa, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0xca, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0xe2, 0x02, 0x1a, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x0f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2372,8 +2389,9 @@ var file_flyteidl_admin_execution_proto_goTypes = []interface{}{ (*ClusterAssignment)(nil), // 41: flyteidl.admin.ClusterAssignment (*wrapperspb.BoolValue)(nil), // 42: google.protobuf.BoolValue (*Envs)(nil), // 43: flyteidl.admin.Envs - (*UrlBlob)(nil), // 44: flyteidl.admin.UrlBlob - (*core.Span)(nil), // 45: flyteidl.core.Span + (*ExecutionClusterLabel)(nil), // 44: flyteidl.admin.ExecutionClusterLabel + (*UrlBlob)(nil), // 45: flyteidl.admin.UrlBlob + (*core.Span)(nil), // 46: flyteidl.core.Span } var file_flyteidl_admin_execution_proto_depIdxs = []int32{ 15, // 0: flyteidl.admin.ExecutionCreateRequest.spec:type_name -> flyteidl.admin.ExecutionSpec @@ -2421,23 +2439,24 @@ var file_flyteidl_admin_execution_proto_depIdxs = []int32{ 41, // 42: flyteidl.admin.ExecutionSpec.cluster_assignment:type_name -> flyteidl.admin.ClusterAssignment 42, // 43: flyteidl.admin.ExecutionSpec.interruptible:type_name -> google.protobuf.BoolValue 43, // 44: flyteidl.admin.ExecutionSpec.envs:type_name -> flyteidl.admin.Envs - 26, // 45: flyteidl.admin.ExecutionTerminateRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier - 26, // 46: flyteidl.admin.WorkflowExecutionGetDataRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier - 44, // 47: flyteidl.admin.WorkflowExecutionGetDataResponse.outputs:type_name -> flyteidl.admin.UrlBlob - 44, // 48: flyteidl.admin.WorkflowExecutionGetDataResponse.inputs:type_name -> flyteidl.admin.UrlBlob - 25, // 49: flyteidl.admin.WorkflowExecutionGetDataResponse.full_inputs:type_name -> flyteidl.core.LiteralMap - 25, // 50: flyteidl.admin.WorkflowExecutionGetDataResponse.full_outputs:type_name -> flyteidl.core.LiteralMap - 26, // 51: flyteidl.admin.ExecutionUpdateRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier - 0, // 52: flyteidl.admin.ExecutionUpdateRequest.state:type_name -> flyteidl.admin.ExecutionState - 0, // 53: flyteidl.admin.ExecutionStateChangeDetails.state:type_name -> flyteidl.admin.ExecutionState - 29, // 54: flyteidl.admin.ExecutionStateChangeDetails.occurred_at:type_name -> google.protobuf.Timestamp - 26, // 55: flyteidl.admin.WorkflowExecutionGetMetricsRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier - 45, // 56: flyteidl.admin.WorkflowExecutionGetMetricsResponse.span:type_name -> flyteidl.core.Span - 57, // [57:57] is the sub-list for method output_type - 57, // [57:57] is the sub-list for method input_type - 57, // [57:57] is the sub-list for extension type_name - 57, // [57:57] is the sub-list for extension extendee - 0, // [0:57] is the sub-list for field type_name + 44, // 45: flyteidl.admin.ExecutionSpec.execution_cluster_label:type_name -> flyteidl.admin.ExecutionClusterLabel + 26, // 46: flyteidl.admin.ExecutionTerminateRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier + 26, // 47: flyteidl.admin.WorkflowExecutionGetDataRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier + 45, // 48: flyteidl.admin.WorkflowExecutionGetDataResponse.outputs:type_name -> flyteidl.admin.UrlBlob + 45, // 49: flyteidl.admin.WorkflowExecutionGetDataResponse.inputs:type_name -> flyteidl.admin.UrlBlob + 25, // 50: flyteidl.admin.WorkflowExecutionGetDataResponse.full_inputs:type_name -> flyteidl.core.LiteralMap + 25, // 51: flyteidl.admin.WorkflowExecutionGetDataResponse.full_outputs:type_name -> flyteidl.core.LiteralMap + 26, // 52: flyteidl.admin.ExecutionUpdateRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier + 0, // 53: flyteidl.admin.ExecutionUpdateRequest.state:type_name -> flyteidl.admin.ExecutionState + 0, // 54: flyteidl.admin.ExecutionStateChangeDetails.state:type_name -> flyteidl.admin.ExecutionState + 29, // 55: flyteidl.admin.ExecutionStateChangeDetails.occurred_at:type_name -> google.protobuf.Timestamp + 26, // 56: flyteidl.admin.WorkflowExecutionGetMetricsRequest.id:type_name -> flyteidl.core.WorkflowExecutionIdentifier + 46, // 57: flyteidl.admin.WorkflowExecutionGetMetricsResponse.span:type_name -> flyteidl.core.Span + 58, // [58:58] is the sub-list for method output_type + 58, // [58:58] is the sub-list for method input_type + 58, // [58:58] is the sub-list for extension type_name + 58, // [58:58] is the sub-list for extension extendee + 0, // [0:58] is the sub-list for field type_name } func init() { file_flyteidl_admin_execution_proto_init() } @@ -2447,6 +2466,7 @@ func file_flyteidl_admin_execution_proto_init() { } file_flyteidl_admin_cluster_assignment_proto_init() file_flyteidl_admin_common_proto_init() + file_flyteidl_admin_matchable_resource_proto_init() if !protoimpl.UnsafeEnabled { file_flyteidl_admin_execution_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecutionCreateRequest); i { diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index 226588a131..dcbfa5ce37 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -5016,6 +5016,10 @@ "type": "string" }, "description": "Tags to be set for the execution." + }, + "execution_cluster_label": { + "$ref": "#/definitions/adminExecutionClusterLabel", + "description": "Execution cluster label to be set for the execution." } }, "description": "An ExecutionSpec encompasses all data used to launch this execution. The Spec does not change over the lifetime\nof an execution as it progresses across phase changes." diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index 8c1034865b..a09e5aa7b9 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -13928,6 +13928,9 @@ export namespace flyteidl { /** ExecutionSpec tags */ tags?: (string[]|null); + + /** ExecutionSpec executionClusterLabel */ + executionClusterLabel?: (flyteidl.admin.IExecutionClusterLabel|null); } /** Represents an ExecutionSpec. */ @@ -13990,6 +13993,9 @@ export namespace flyteidl { /** ExecutionSpec tags. */ public tags: string[]; + /** ExecutionSpec executionClusterLabel. */ + public executionClusterLabel?: (flyteidl.admin.IExecutionClusterLabel|null); + /** ExecutionSpec notificationOverrides. */ public notificationOverrides?: ("notifications"|"disableAll"); @@ -14536,1816 +14542,1816 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanCreateRequest. */ - interface ILaunchPlanCreateRequest { + /** MatchableResource enum. */ + enum MatchableResource { + TASK_RESOURCE = 0, + CLUSTER_RESOURCE = 1, + EXECUTION_QUEUE = 2, + EXECUTION_CLUSTER_LABEL = 3, + QUALITY_OF_SERVICE_SPECIFICATION = 4, + PLUGIN_OVERRIDE = 5, + WORKFLOW_EXECUTION_CONFIG = 6, + CLUSTER_ASSIGNMENT = 7 + } - /** LaunchPlanCreateRequest id */ - id?: (flyteidl.core.IIdentifier|null); + /** Properties of a TaskResourceSpec. */ + interface ITaskResourceSpec { - /** LaunchPlanCreateRequest spec */ - spec?: (flyteidl.admin.ILaunchPlanSpec|null); + /** TaskResourceSpec cpu */ + cpu?: (string|null); + + /** TaskResourceSpec gpu */ + gpu?: (string|null); + + /** TaskResourceSpec memory */ + memory?: (string|null); + + /** TaskResourceSpec storage */ + storage?: (string|null); + + /** TaskResourceSpec ephemeralStorage */ + ephemeralStorage?: (string|null); } - /** Represents a LaunchPlanCreateRequest. */ - class LaunchPlanCreateRequest implements ILaunchPlanCreateRequest { + /** Represents a TaskResourceSpec. */ + class TaskResourceSpec implements ITaskResourceSpec { /** - * Constructs a new LaunchPlanCreateRequest. + * Constructs a new TaskResourceSpec. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanCreateRequest); + constructor(properties?: flyteidl.admin.ITaskResourceSpec); - /** LaunchPlanCreateRequest id. */ - public id?: (flyteidl.core.IIdentifier|null); + /** TaskResourceSpec cpu. */ + public cpu: string; - /** LaunchPlanCreateRequest spec. */ - public spec?: (flyteidl.admin.ILaunchPlanSpec|null); + /** TaskResourceSpec gpu. */ + public gpu: string; + + /** TaskResourceSpec memory. */ + public memory: string; + + /** TaskResourceSpec storage. */ + public storage: string; + + /** TaskResourceSpec ephemeralStorage. */ + public ephemeralStorage: string; /** - * Creates a new LaunchPlanCreateRequest instance using the specified properties. + * Creates a new TaskResourceSpec instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanCreateRequest instance + * @returns TaskResourceSpec instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanCreateRequest): flyteidl.admin.LaunchPlanCreateRequest; + public static create(properties?: flyteidl.admin.ITaskResourceSpec): flyteidl.admin.TaskResourceSpec; /** - * Encodes the specified LaunchPlanCreateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateRequest.verify|verify} messages. - * @param message LaunchPlanCreateRequest message or plain object to encode + * Encodes the specified TaskResourceSpec message. Does not implicitly {@link flyteidl.admin.TaskResourceSpec.verify|verify} messages. + * @param message TaskResourceSpec message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanCreateRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ITaskResourceSpec, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanCreateRequest message from the specified reader or buffer. + * Decodes a TaskResourceSpec message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanCreateRequest + * @returns TaskResourceSpec * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanCreateRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.TaskResourceSpec; /** - * Verifies a LaunchPlanCreateRequest message. + * Verifies a TaskResourceSpec message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanCreateResponse. */ - interface ILaunchPlanCreateResponse { + /** Properties of a TaskResourceAttributes. */ + interface ITaskResourceAttributes { + + /** TaskResourceAttributes defaults */ + defaults?: (flyteidl.admin.ITaskResourceSpec|null); + + /** TaskResourceAttributes limits */ + limits?: (flyteidl.admin.ITaskResourceSpec|null); } - /** Represents a LaunchPlanCreateResponse. */ - class LaunchPlanCreateResponse implements ILaunchPlanCreateResponse { + /** Represents a TaskResourceAttributes. */ + class TaskResourceAttributes implements ITaskResourceAttributes { /** - * Constructs a new LaunchPlanCreateResponse. + * Constructs a new TaskResourceAttributes. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanCreateResponse); + constructor(properties?: flyteidl.admin.ITaskResourceAttributes); + + /** TaskResourceAttributes defaults. */ + public defaults?: (flyteidl.admin.ITaskResourceSpec|null); + + /** TaskResourceAttributes limits. */ + public limits?: (flyteidl.admin.ITaskResourceSpec|null); /** - * Creates a new LaunchPlanCreateResponse instance using the specified properties. + * Creates a new TaskResourceAttributes instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanCreateResponse instance + * @returns TaskResourceAttributes instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanCreateResponse): flyteidl.admin.LaunchPlanCreateResponse; + public static create(properties?: flyteidl.admin.ITaskResourceAttributes): flyteidl.admin.TaskResourceAttributes; /** - * Encodes the specified LaunchPlanCreateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateResponse.verify|verify} messages. - * @param message LaunchPlanCreateResponse message or plain object to encode + * Encodes the specified TaskResourceAttributes message. Does not implicitly {@link flyteidl.admin.TaskResourceAttributes.verify|verify} messages. + * @param message TaskResourceAttributes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanCreateResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ITaskResourceAttributes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanCreateResponse message from the specified reader or buffer. + * Decodes a TaskResourceAttributes message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanCreateResponse + * @returns TaskResourceAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanCreateResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.TaskResourceAttributes; /** - * Verifies a LaunchPlanCreateResponse message. + * Verifies a TaskResourceAttributes message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** LaunchPlanState enum. */ - enum LaunchPlanState { - INACTIVE = 0, - ACTIVE = 1 - } - - /** Properties of a LaunchPlan. */ - interface ILaunchPlan { - - /** LaunchPlan id */ - id?: (flyteidl.core.IIdentifier|null); - - /** LaunchPlan spec */ - spec?: (flyteidl.admin.ILaunchPlanSpec|null); + /** Properties of a ClusterResourceAttributes. */ + interface IClusterResourceAttributes { - /** LaunchPlan closure */ - closure?: (flyteidl.admin.ILaunchPlanClosure|null); + /** ClusterResourceAttributes attributes */ + attributes?: ({ [k: string]: string }|null); } - /** Represents a LaunchPlan. */ - class LaunchPlan implements ILaunchPlan { + /** Represents a ClusterResourceAttributes. */ + class ClusterResourceAttributes implements IClusterResourceAttributes { /** - * Constructs a new LaunchPlan. + * Constructs a new ClusterResourceAttributes. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlan); - - /** LaunchPlan id. */ - public id?: (flyteidl.core.IIdentifier|null); - - /** LaunchPlan spec. */ - public spec?: (flyteidl.admin.ILaunchPlanSpec|null); + constructor(properties?: flyteidl.admin.IClusterResourceAttributes); - /** LaunchPlan closure. */ - public closure?: (flyteidl.admin.ILaunchPlanClosure|null); + /** ClusterResourceAttributes attributes. */ + public attributes: { [k: string]: string }; /** - * Creates a new LaunchPlan instance using the specified properties. + * Creates a new ClusterResourceAttributes instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlan instance + * @returns ClusterResourceAttributes instance */ - public static create(properties?: flyteidl.admin.ILaunchPlan): flyteidl.admin.LaunchPlan; + public static create(properties?: flyteidl.admin.IClusterResourceAttributes): flyteidl.admin.ClusterResourceAttributes; /** - * Encodes the specified LaunchPlan message. Does not implicitly {@link flyteidl.admin.LaunchPlan.verify|verify} messages. - * @param message LaunchPlan message or plain object to encode + * Encodes the specified ClusterResourceAttributes message. Does not implicitly {@link flyteidl.admin.ClusterResourceAttributes.verify|verify} messages. + * @param message ClusterResourceAttributes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlan, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IClusterResourceAttributes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlan message from the specified reader or buffer. + * Decodes a ClusterResourceAttributes message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlan + * @returns ClusterResourceAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlan; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ClusterResourceAttributes; /** - * Verifies a LaunchPlan message. + * Verifies a ClusterResourceAttributes message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanList. */ - interface ILaunchPlanList { - - /** LaunchPlanList launchPlans */ - launchPlans?: (flyteidl.admin.ILaunchPlan[]|null); + /** Properties of an ExecutionQueueAttributes. */ + interface IExecutionQueueAttributes { - /** LaunchPlanList token */ - token?: (string|null); + /** ExecutionQueueAttributes tags */ + tags?: (string[]|null); } - /** Represents a LaunchPlanList. */ - class LaunchPlanList implements ILaunchPlanList { + /** Represents an ExecutionQueueAttributes. */ + class ExecutionQueueAttributes implements IExecutionQueueAttributes { /** - * Constructs a new LaunchPlanList. + * Constructs a new ExecutionQueueAttributes. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanList); - - /** LaunchPlanList launchPlans. */ - public launchPlans: flyteidl.admin.ILaunchPlan[]; + constructor(properties?: flyteidl.admin.IExecutionQueueAttributes); - /** LaunchPlanList token. */ - public token: string; + /** ExecutionQueueAttributes tags. */ + public tags: string[]; /** - * Creates a new LaunchPlanList instance using the specified properties. + * Creates a new ExecutionQueueAttributes instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanList instance + * @returns ExecutionQueueAttributes instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanList): flyteidl.admin.LaunchPlanList; + public static create(properties?: flyteidl.admin.IExecutionQueueAttributes): flyteidl.admin.ExecutionQueueAttributes; /** - * Encodes the specified LaunchPlanList message. Does not implicitly {@link flyteidl.admin.LaunchPlanList.verify|verify} messages. - * @param message LaunchPlanList message or plain object to encode + * Encodes the specified ExecutionQueueAttributes message. Does not implicitly {@link flyteidl.admin.ExecutionQueueAttributes.verify|verify} messages. + * @param message ExecutionQueueAttributes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanList, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IExecutionQueueAttributes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanList message from the specified reader or buffer. + * Decodes an ExecutionQueueAttributes message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanList + * @returns ExecutionQueueAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanList; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ExecutionQueueAttributes; /** - * Verifies a LaunchPlanList message. + * Verifies an ExecutionQueueAttributes message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of an Auth. */ - interface IAuth { - - /** Auth assumableIamRole */ - assumableIamRole?: (string|null); + /** Properties of an ExecutionClusterLabel. */ + interface IExecutionClusterLabel { - /** Auth kubernetesServiceAccount */ - kubernetesServiceAccount?: (string|null); + /** ExecutionClusterLabel value */ + value?: (string|null); } - /** Represents an Auth. */ - class Auth implements IAuth { + /** Represents an ExecutionClusterLabel. */ + class ExecutionClusterLabel implements IExecutionClusterLabel { /** - * Constructs a new Auth. + * Constructs a new ExecutionClusterLabel. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IAuth); - - /** Auth assumableIamRole. */ - public assumableIamRole: string; + constructor(properties?: flyteidl.admin.IExecutionClusterLabel); - /** Auth kubernetesServiceAccount. */ - public kubernetesServiceAccount: string; + /** ExecutionClusterLabel value. */ + public value: string; /** - * Creates a new Auth instance using the specified properties. + * Creates a new ExecutionClusterLabel instance using the specified properties. * @param [properties] Properties to set - * @returns Auth instance + * @returns ExecutionClusterLabel instance */ - public static create(properties?: flyteidl.admin.IAuth): flyteidl.admin.Auth; + public static create(properties?: flyteidl.admin.IExecutionClusterLabel): flyteidl.admin.ExecutionClusterLabel; /** - * Encodes the specified Auth message. Does not implicitly {@link flyteidl.admin.Auth.verify|verify} messages. - * @param message Auth message or plain object to encode + * Encodes the specified ExecutionClusterLabel message. Does not implicitly {@link flyteidl.admin.ExecutionClusterLabel.verify|verify} messages. + * @param message ExecutionClusterLabel message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IAuth, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IExecutionClusterLabel, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an Auth message from the specified reader or buffer. + * Decodes an ExecutionClusterLabel message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Auth + * @returns ExecutionClusterLabel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.Auth; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ExecutionClusterLabel; /** - * Verifies an Auth message. + * Verifies an ExecutionClusterLabel message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanSpec. */ - interface ILaunchPlanSpec { - - /** LaunchPlanSpec workflowId */ - workflowId?: (flyteidl.core.IIdentifier|null); - - /** LaunchPlanSpec entityMetadata */ - entityMetadata?: (flyteidl.admin.ILaunchPlanMetadata|null); - - /** LaunchPlanSpec defaultInputs */ - defaultInputs?: (flyteidl.core.IParameterMap|null); - - /** LaunchPlanSpec fixedInputs */ - fixedInputs?: (flyteidl.core.ILiteralMap|null); - - /** LaunchPlanSpec role */ - role?: (string|null); - - /** LaunchPlanSpec labels */ - labels?: (flyteidl.admin.ILabels|null); - - /** LaunchPlanSpec annotations */ - annotations?: (flyteidl.admin.IAnnotations|null); - - /** LaunchPlanSpec auth */ - auth?: (flyteidl.admin.IAuth|null); - - /** LaunchPlanSpec authRole */ - authRole?: (flyteidl.admin.IAuthRole|null); - - /** LaunchPlanSpec securityContext */ - securityContext?: (flyteidl.core.ISecurityContext|null); - - /** LaunchPlanSpec qualityOfService */ - qualityOfService?: (flyteidl.core.IQualityOfService|null); - - /** LaunchPlanSpec rawOutputDataConfig */ - rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); - - /** LaunchPlanSpec maxParallelism */ - maxParallelism?: (number|null); + /** Properties of a PluginOverride. */ + interface IPluginOverride { - /** LaunchPlanSpec interruptible */ - interruptible?: (google.protobuf.IBoolValue|null); + /** PluginOverride taskType */ + taskType?: (string|null); - /** LaunchPlanSpec overwriteCache */ - overwriteCache?: (boolean|null); + /** PluginOverride pluginId */ + pluginId?: (string[]|null); - /** LaunchPlanSpec envs */ - envs?: (flyteidl.admin.IEnvs|null); + /** PluginOverride missingPluginBehavior */ + missingPluginBehavior?: (flyteidl.admin.PluginOverride.MissingPluginBehavior|null); } - /** Represents a LaunchPlanSpec. */ - class LaunchPlanSpec implements ILaunchPlanSpec { + /** Represents a PluginOverride. */ + class PluginOverride implements IPluginOverride { /** - * Constructs a new LaunchPlanSpec. + * Constructs a new PluginOverride. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanSpec); - - /** LaunchPlanSpec workflowId. */ - public workflowId?: (flyteidl.core.IIdentifier|null); - - /** LaunchPlanSpec entityMetadata. */ - public entityMetadata?: (flyteidl.admin.ILaunchPlanMetadata|null); - - /** LaunchPlanSpec defaultInputs. */ - public defaultInputs?: (flyteidl.core.IParameterMap|null); - - /** LaunchPlanSpec fixedInputs. */ - public fixedInputs?: (flyteidl.core.ILiteralMap|null); - - /** LaunchPlanSpec role. */ - public role: string; - - /** LaunchPlanSpec labels. */ - public labels?: (flyteidl.admin.ILabels|null); - - /** LaunchPlanSpec annotations. */ - public annotations?: (flyteidl.admin.IAnnotations|null); - - /** LaunchPlanSpec auth. */ - public auth?: (flyteidl.admin.IAuth|null); - - /** LaunchPlanSpec authRole. */ - public authRole?: (flyteidl.admin.IAuthRole|null); - - /** LaunchPlanSpec securityContext. */ - public securityContext?: (flyteidl.core.ISecurityContext|null); - - /** LaunchPlanSpec qualityOfService. */ - public qualityOfService?: (flyteidl.core.IQualityOfService|null); - - /** LaunchPlanSpec rawOutputDataConfig. */ - public rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); - - /** LaunchPlanSpec maxParallelism. */ - public maxParallelism: number; + constructor(properties?: flyteidl.admin.IPluginOverride); - /** LaunchPlanSpec interruptible. */ - public interruptible?: (google.protobuf.IBoolValue|null); + /** PluginOverride taskType. */ + public taskType: string; - /** LaunchPlanSpec overwriteCache. */ - public overwriteCache: boolean; + /** PluginOverride pluginId. */ + public pluginId: string[]; - /** LaunchPlanSpec envs. */ - public envs?: (flyteidl.admin.IEnvs|null); + /** PluginOverride missingPluginBehavior. */ + public missingPluginBehavior: flyteidl.admin.PluginOverride.MissingPluginBehavior; /** - * Creates a new LaunchPlanSpec instance using the specified properties. + * Creates a new PluginOverride instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanSpec instance + * @returns PluginOverride instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanSpec): flyteidl.admin.LaunchPlanSpec; + public static create(properties?: flyteidl.admin.IPluginOverride): flyteidl.admin.PluginOverride; /** - * Encodes the specified LaunchPlanSpec message. Does not implicitly {@link flyteidl.admin.LaunchPlanSpec.verify|verify} messages. - * @param message LaunchPlanSpec message or plain object to encode + * Encodes the specified PluginOverride message. Does not implicitly {@link flyteidl.admin.PluginOverride.verify|verify} messages. + * @param message PluginOverride message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IPluginOverride, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanSpec message from the specified reader or buffer. + * Decodes a PluginOverride message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanSpec + * @returns PluginOverride * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanSpec; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.PluginOverride; /** - * Verifies a LaunchPlanSpec message. + * Verifies a PluginOverride message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanClosure. */ - interface ILaunchPlanClosure { - - /** LaunchPlanClosure state */ - state?: (flyteidl.admin.LaunchPlanState|null); - - /** LaunchPlanClosure expectedInputs */ - expectedInputs?: (flyteidl.core.IParameterMap|null); + namespace PluginOverride { - /** LaunchPlanClosure expectedOutputs */ - expectedOutputs?: (flyteidl.core.IVariableMap|null); + /** MissingPluginBehavior enum. */ + enum MissingPluginBehavior { + FAIL = 0, + USE_DEFAULT = 1 + } + } - /** LaunchPlanClosure createdAt */ - createdAt?: (google.protobuf.ITimestamp|null); + /** Properties of a PluginOverrides. */ + interface IPluginOverrides { - /** LaunchPlanClosure updatedAt */ - updatedAt?: (google.protobuf.ITimestamp|null); + /** PluginOverrides overrides */ + overrides?: (flyteidl.admin.IPluginOverride[]|null); } - /** Represents a LaunchPlanClosure. */ - class LaunchPlanClosure implements ILaunchPlanClosure { + /** Represents a PluginOverrides. */ + class PluginOverrides implements IPluginOverrides { /** - * Constructs a new LaunchPlanClosure. + * Constructs a new PluginOverrides. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanClosure); - - /** LaunchPlanClosure state. */ - public state: flyteidl.admin.LaunchPlanState; - - /** LaunchPlanClosure expectedInputs. */ - public expectedInputs?: (flyteidl.core.IParameterMap|null); - - /** LaunchPlanClosure expectedOutputs. */ - public expectedOutputs?: (flyteidl.core.IVariableMap|null); - - /** LaunchPlanClosure createdAt. */ - public createdAt?: (google.protobuf.ITimestamp|null); + constructor(properties?: flyteidl.admin.IPluginOverrides); - /** LaunchPlanClosure updatedAt. */ - public updatedAt?: (google.protobuf.ITimestamp|null); + /** PluginOverrides overrides. */ + public overrides: flyteidl.admin.IPluginOverride[]; /** - * Creates a new LaunchPlanClosure instance using the specified properties. + * Creates a new PluginOverrides instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanClosure instance + * @returns PluginOverrides instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanClosure): flyteidl.admin.LaunchPlanClosure; + public static create(properties?: flyteidl.admin.IPluginOverrides): flyteidl.admin.PluginOverrides; /** - * Encodes the specified LaunchPlanClosure message. Does not implicitly {@link flyteidl.admin.LaunchPlanClosure.verify|verify} messages. - * @param message LaunchPlanClosure message or plain object to encode + * Encodes the specified PluginOverrides message. Does not implicitly {@link flyteidl.admin.PluginOverrides.verify|verify} messages. + * @param message PluginOverrides message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanClosure, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IPluginOverrides, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanClosure message from the specified reader or buffer. + * Decodes a PluginOverrides message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanClosure + * @returns PluginOverrides * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanClosure; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.PluginOverrides; /** - * Verifies a LaunchPlanClosure message. + * Verifies a PluginOverrides message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanMetadata. */ - interface ILaunchPlanMetadata { + /** Properties of a WorkflowExecutionConfig. */ + interface IWorkflowExecutionConfig { - /** LaunchPlanMetadata schedule */ - schedule?: (flyteidl.admin.ISchedule|null); + /** WorkflowExecutionConfig maxParallelism */ + maxParallelism?: (number|null); - /** LaunchPlanMetadata notifications */ - notifications?: (flyteidl.admin.INotification[]|null); + /** WorkflowExecutionConfig securityContext */ + securityContext?: (flyteidl.core.ISecurityContext|null); - /** LaunchPlanMetadata launchConditions */ - launchConditions?: (google.protobuf.IAny|null); + /** WorkflowExecutionConfig rawOutputDataConfig */ + rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); + + /** WorkflowExecutionConfig labels */ + labels?: (flyteidl.admin.ILabels|null); + + /** WorkflowExecutionConfig annotations */ + annotations?: (flyteidl.admin.IAnnotations|null); + + /** WorkflowExecutionConfig interruptible */ + interruptible?: (google.protobuf.IBoolValue|null); + + /** WorkflowExecutionConfig overwriteCache */ + overwriteCache?: (boolean|null); + + /** WorkflowExecutionConfig envs */ + envs?: (flyteidl.admin.IEnvs|null); } - /** Represents a LaunchPlanMetadata. */ - class LaunchPlanMetadata implements ILaunchPlanMetadata { + /** Represents a WorkflowExecutionConfig. */ + class WorkflowExecutionConfig implements IWorkflowExecutionConfig { /** - * Constructs a new LaunchPlanMetadata. + * Constructs a new WorkflowExecutionConfig. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanMetadata); + constructor(properties?: flyteidl.admin.IWorkflowExecutionConfig); - /** LaunchPlanMetadata schedule. */ - public schedule?: (flyteidl.admin.ISchedule|null); + /** WorkflowExecutionConfig maxParallelism. */ + public maxParallelism: number; - /** LaunchPlanMetadata notifications. */ - public notifications: flyteidl.admin.INotification[]; + /** WorkflowExecutionConfig securityContext. */ + public securityContext?: (flyteidl.core.ISecurityContext|null); - /** LaunchPlanMetadata launchConditions. */ - public launchConditions?: (google.protobuf.IAny|null); + /** WorkflowExecutionConfig rawOutputDataConfig. */ + public rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); + + /** WorkflowExecutionConfig labels. */ + public labels?: (flyteidl.admin.ILabels|null); + + /** WorkflowExecutionConfig annotations. */ + public annotations?: (flyteidl.admin.IAnnotations|null); + + /** WorkflowExecutionConfig interruptible. */ + public interruptible?: (google.protobuf.IBoolValue|null); + + /** WorkflowExecutionConfig overwriteCache. */ + public overwriteCache: boolean; + + /** WorkflowExecutionConfig envs. */ + public envs?: (flyteidl.admin.IEnvs|null); /** - * Creates a new LaunchPlanMetadata instance using the specified properties. + * Creates a new WorkflowExecutionConfig instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanMetadata instance + * @returns WorkflowExecutionConfig instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanMetadata): flyteidl.admin.LaunchPlanMetadata; + public static create(properties?: flyteidl.admin.IWorkflowExecutionConfig): flyteidl.admin.WorkflowExecutionConfig; /** - * Encodes the specified LaunchPlanMetadata message. Does not implicitly {@link flyteidl.admin.LaunchPlanMetadata.verify|verify} messages. - * @param message LaunchPlanMetadata message or plain object to encode + * Encodes the specified WorkflowExecutionConfig message. Does not implicitly {@link flyteidl.admin.WorkflowExecutionConfig.verify|verify} messages. + * @param message WorkflowExecutionConfig message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IWorkflowExecutionConfig, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanMetadata message from the specified reader or buffer. + * Decodes a WorkflowExecutionConfig message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanMetadata + * @returns WorkflowExecutionConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanMetadata; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.WorkflowExecutionConfig; /** - * Verifies a LaunchPlanMetadata message. + * Verifies a WorkflowExecutionConfig message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanUpdateRequest. */ - interface ILaunchPlanUpdateRequest { + /** Properties of a MatchingAttributes. */ + interface IMatchingAttributes { - /** LaunchPlanUpdateRequest id */ - id?: (flyteidl.core.IIdentifier|null); + /** MatchingAttributes taskResourceAttributes */ + taskResourceAttributes?: (flyteidl.admin.ITaskResourceAttributes|null); - /** LaunchPlanUpdateRequest state */ - state?: (flyteidl.admin.LaunchPlanState|null); + /** MatchingAttributes clusterResourceAttributes */ + clusterResourceAttributes?: (flyteidl.admin.IClusterResourceAttributes|null); + + /** MatchingAttributes executionQueueAttributes */ + executionQueueAttributes?: (flyteidl.admin.IExecutionQueueAttributes|null); + + /** MatchingAttributes executionClusterLabel */ + executionClusterLabel?: (flyteidl.admin.IExecutionClusterLabel|null); + + /** MatchingAttributes qualityOfService */ + qualityOfService?: (flyteidl.core.IQualityOfService|null); + + /** MatchingAttributes pluginOverrides */ + pluginOverrides?: (flyteidl.admin.IPluginOverrides|null); + + /** MatchingAttributes workflowExecutionConfig */ + workflowExecutionConfig?: (flyteidl.admin.IWorkflowExecutionConfig|null); + + /** MatchingAttributes clusterAssignment */ + clusterAssignment?: (flyteidl.admin.IClusterAssignment|null); } - /** Represents a LaunchPlanUpdateRequest. */ - class LaunchPlanUpdateRequest implements ILaunchPlanUpdateRequest { + /** Represents a MatchingAttributes. */ + class MatchingAttributes implements IMatchingAttributes { /** - * Constructs a new LaunchPlanUpdateRequest. + * Constructs a new MatchingAttributes. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanUpdateRequest); + constructor(properties?: flyteidl.admin.IMatchingAttributes); - /** LaunchPlanUpdateRequest id. */ - public id?: (flyteidl.core.IIdentifier|null); + /** MatchingAttributes taskResourceAttributes. */ + public taskResourceAttributes?: (flyteidl.admin.ITaskResourceAttributes|null); - /** LaunchPlanUpdateRequest state. */ - public state: flyteidl.admin.LaunchPlanState; + /** MatchingAttributes clusterResourceAttributes. */ + public clusterResourceAttributes?: (flyteidl.admin.IClusterResourceAttributes|null); + + /** MatchingAttributes executionQueueAttributes. */ + public executionQueueAttributes?: (flyteidl.admin.IExecutionQueueAttributes|null); + + /** MatchingAttributes executionClusterLabel. */ + public executionClusterLabel?: (flyteidl.admin.IExecutionClusterLabel|null); + + /** MatchingAttributes qualityOfService. */ + public qualityOfService?: (flyteidl.core.IQualityOfService|null); + + /** MatchingAttributes pluginOverrides. */ + public pluginOverrides?: (flyteidl.admin.IPluginOverrides|null); + + /** MatchingAttributes workflowExecutionConfig. */ + public workflowExecutionConfig?: (flyteidl.admin.IWorkflowExecutionConfig|null); + + /** MatchingAttributes clusterAssignment. */ + public clusterAssignment?: (flyteidl.admin.IClusterAssignment|null); + + /** MatchingAttributes target. */ + public target?: ("taskResourceAttributes"|"clusterResourceAttributes"|"executionQueueAttributes"|"executionClusterLabel"|"qualityOfService"|"pluginOverrides"|"workflowExecutionConfig"|"clusterAssignment"); /** - * Creates a new LaunchPlanUpdateRequest instance using the specified properties. + * Creates a new MatchingAttributes instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanUpdateRequest instance + * @returns MatchingAttributes instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanUpdateRequest): flyteidl.admin.LaunchPlanUpdateRequest; + public static create(properties?: flyteidl.admin.IMatchingAttributes): flyteidl.admin.MatchingAttributes; /** - * Encodes the specified LaunchPlanUpdateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateRequest.verify|verify} messages. - * @param message LaunchPlanUpdateRequest message or plain object to encode + * Encodes the specified MatchingAttributes message. Does not implicitly {@link flyteidl.admin.MatchingAttributes.verify|verify} messages. + * @param message MatchingAttributes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanUpdateRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IMatchingAttributes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanUpdateRequest message from the specified reader or buffer. + * Decodes a MatchingAttributes message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanUpdateRequest + * @returns MatchingAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanUpdateRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.MatchingAttributes; /** - * Verifies a LaunchPlanUpdateRequest message. + * Verifies a MatchingAttributes message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a LaunchPlanUpdateResponse. */ - interface ILaunchPlanUpdateResponse { + /** Properties of a MatchableAttributesConfiguration. */ + interface IMatchableAttributesConfiguration { + + /** MatchableAttributesConfiguration attributes */ + attributes?: (flyteidl.admin.IMatchingAttributes|null); + + /** MatchableAttributesConfiguration domain */ + domain?: (string|null); + + /** MatchableAttributesConfiguration project */ + project?: (string|null); + + /** MatchableAttributesConfiguration workflow */ + workflow?: (string|null); + + /** MatchableAttributesConfiguration launchPlan */ + launchPlan?: (string|null); + + /** MatchableAttributesConfiguration org */ + org?: (string|null); } - /** Represents a LaunchPlanUpdateResponse. */ - class LaunchPlanUpdateResponse implements ILaunchPlanUpdateResponse { + /** Represents a MatchableAttributesConfiguration. */ + class MatchableAttributesConfiguration implements IMatchableAttributesConfiguration { /** - * Constructs a new LaunchPlanUpdateResponse. + * Constructs a new MatchableAttributesConfiguration. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ILaunchPlanUpdateResponse); + constructor(properties?: flyteidl.admin.IMatchableAttributesConfiguration); + + /** MatchableAttributesConfiguration attributes. */ + public attributes?: (flyteidl.admin.IMatchingAttributes|null); + + /** MatchableAttributesConfiguration domain. */ + public domain: string; + + /** MatchableAttributesConfiguration project. */ + public project: string; + + /** MatchableAttributesConfiguration workflow. */ + public workflow: string; + + /** MatchableAttributesConfiguration launchPlan. */ + public launchPlan: string; + + /** MatchableAttributesConfiguration org. */ + public org: string; /** - * Creates a new LaunchPlanUpdateResponse instance using the specified properties. + * Creates a new MatchableAttributesConfiguration instance using the specified properties. * @param [properties] Properties to set - * @returns LaunchPlanUpdateResponse instance + * @returns MatchableAttributesConfiguration instance */ - public static create(properties?: flyteidl.admin.ILaunchPlanUpdateResponse): flyteidl.admin.LaunchPlanUpdateResponse; + public static create(properties?: flyteidl.admin.IMatchableAttributesConfiguration): flyteidl.admin.MatchableAttributesConfiguration; /** - * Encodes the specified LaunchPlanUpdateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateResponse.verify|verify} messages. - * @param message LaunchPlanUpdateResponse message or plain object to encode + * Encodes the specified MatchableAttributesConfiguration message. Does not implicitly {@link flyteidl.admin.MatchableAttributesConfiguration.verify|verify} messages. + * @param message MatchableAttributesConfiguration message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ILaunchPlanUpdateResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IMatchableAttributesConfiguration, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a LaunchPlanUpdateResponse message from the specified reader or buffer. + * Decodes a MatchableAttributesConfiguration message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns LaunchPlanUpdateResponse + * @returns MatchableAttributesConfiguration * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanUpdateResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.MatchableAttributesConfiguration; /** - * Verifies a LaunchPlanUpdateResponse message. + * Verifies a MatchableAttributesConfiguration message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of an ActiveLaunchPlanRequest. */ - interface IActiveLaunchPlanRequest { + /** Properties of a ListMatchableAttributesRequest. */ + interface IListMatchableAttributesRequest { - /** ActiveLaunchPlanRequest id */ - id?: (flyteidl.admin.INamedEntityIdentifier|null); + /** ListMatchableAttributesRequest resourceType */ + resourceType?: (flyteidl.admin.MatchableResource|null); + + /** ListMatchableAttributesRequest org */ + org?: (string|null); } - /** Represents an ActiveLaunchPlanRequest. */ - class ActiveLaunchPlanRequest implements IActiveLaunchPlanRequest { + /** Represents a ListMatchableAttributesRequest. */ + class ListMatchableAttributesRequest implements IListMatchableAttributesRequest { /** - * Constructs a new ActiveLaunchPlanRequest. + * Constructs a new ListMatchableAttributesRequest. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IActiveLaunchPlanRequest); + constructor(properties?: flyteidl.admin.IListMatchableAttributesRequest); - /** ActiveLaunchPlanRequest id. */ - public id?: (flyteidl.admin.INamedEntityIdentifier|null); + /** ListMatchableAttributesRequest resourceType. */ + public resourceType: flyteidl.admin.MatchableResource; + + /** ListMatchableAttributesRequest org. */ + public org: string; /** - * Creates a new ActiveLaunchPlanRequest instance using the specified properties. + * Creates a new ListMatchableAttributesRequest instance using the specified properties. * @param [properties] Properties to set - * @returns ActiveLaunchPlanRequest instance + * @returns ListMatchableAttributesRequest instance */ - public static create(properties?: flyteidl.admin.IActiveLaunchPlanRequest): flyteidl.admin.ActiveLaunchPlanRequest; + public static create(properties?: flyteidl.admin.IListMatchableAttributesRequest): flyteidl.admin.ListMatchableAttributesRequest; /** - * Encodes the specified ActiveLaunchPlanRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanRequest.verify|verify} messages. - * @param message ActiveLaunchPlanRequest message or plain object to encode + * Encodes the specified ListMatchableAttributesRequest message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesRequest.verify|verify} messages. + * @param message ListMatchableAttributesRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IActiveLaunchPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IListMatchableAttributesRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an ActiveLaunchPlanRequest message from the specified reader or buffer. + * Decodes a ListMatchableAttributesRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ActiveLaunchPlanRequest + * @returns ListMatchableAttributesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ActiveLaunchPlanRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ListMatchableAttributesRequest; /** - * Verifies an ActiveLaunchPlanRequest message. + * Verifies a ListMatchableAttributesRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of an ActiveLaunchPlanListRequest. */ - interface IActiveLaunchPlanListRequest { - - /** ActiveLaunchPlanListRequest project */ - project?: (string|null); - - /** ActiveLaunchPlanListRequest domain */ - domain?: (string|null); - - /** ActiveLaunchPlanListRequest limit */ - limit?: (number|null); - - /** ActiveLaunchPlanListRequest token */ - token?: (string|null); - - /** ActiveLaunchPlanListRequest sortBy */ - sortBy?: (flyteidl.admin.ISort|null); + /** Properties of a ListMatchableAttributesResponse. */ + interface IListMatchableAttributesResponse { - /** ActiveLaunchPlanListRequest org */ - org?: (string|null); + /** ListMatchableAttributesResponse configurations */ + configurations?: (flyteidl.admin.IMatchableAttributesConfiguration[]|null); } - /** Represents an ActiveLaunchPlanListRequest. */ - class ActiveLaunchPlanListRequest implements IActiveLaunchPlanListRequest { + /** Represents a ListMatchableAttributesResponse. */ + class ListMatchableAttributesResponse implements IListMatchableAttributesResponse { /** - * Constructs a new ActiveLaunchPlanListRequest. + * Constructs a new ListMatchableAttributesResponse. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IActiveLaunchPlanListRequest); - - /** ActiveLaunchPlanListRequest project. */ - public project: string; - - /** ActiveLaunchPlanListRequest domain. */ - public domain: string; - - /** ActiveLaunchPlanListRequest limit. */ - public limit: number; - - /** ActiveLaunchPlanListRequest token. */ - public token: string; - - /** ActiveLaunchPlanListRequest sortBy. */ - public sortBy?: (flyteidl.admin.ISort|null); + constructor(properties?: flyteidl.admin.IListMatchableAttributesResponse); - /** ActiveLaunchPlanListRequest org. */ - public org: string; + /** ListMatchableAttributesResponse configurations. */ + public configurations: flyteidl.admin.IMatchableAttributesConfiguration[]; /** - * Creates a new ActiveLaunchPlanListRequest instance using the specified properties. + * Creates a new ListMatchableAttributesResponse instance using the specified properties. * @param [properties] Properties to set - * @returns ActiveLaunchPlanListRequest instance + * @returns ListMatchableAttributesResponse instance */ - public static create(properties?: flyteidl.admin.IActiveLaunchPlanListRequest): flyteidl.admin.ActiveLaunchPlanListRequest; + public static create(properties?: flyteidl.admin.IListMatchableAttributesResponse): flyteidl.admin.ListMatchableAttributesResponse; /** - * Encodes the specified ActiveLaunchPlanListRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanListRequest.verify|verify} messages. - * @param message ActiveLaunchPlanListRequest message or plain object to encode + * Encodes the specified ListMatchableAttributesResponse message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesResponse.verify|verify} messages. + * @param message ListMatchableAttributesResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IActiveLaunchPlanListRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IListMatchableAttributesResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an ActiveLaunchPlanListRequest message from the specified reader or buffer. + * Decodes a ListMatchableAttributesResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ActiveLaunchPlanListRequest + * @returns ListMatchableAttributesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ActiveLaunchPlanListRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ListMatchableAttributesResponse; /** - * Verifies an ActiveLaunchPlanListRequest message. + * Verifies a ListMatchableAttributesResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** FixedRateUnit enum. */ - enum FixedRateUnit { - MINUTE = 0, - HOUR = 1, - DAY = 2 - } - - /** Properties of a FixedRate. */ - interface IFixedRate { + /** Properties of a LaunchPlanCreateRequest. */ + interface ILaunchPlanCreateRequest { - /** FixedRate value */ - value?: (number|null); + /** LaunchPlanCreateRequest id */ + id?: (flyteidl.core.IIdentifier|null); - /** FixedRate unit */ - unit?: (flyteidl.admin.FixedRateUnit|null); + /** LaunchPlanCreateRequest spec */ + spec?: (flyteidl.admin.ILaunchPlanSpec|null); } - /** Represents a FixedRate. */ - class FixedRate implements IFixedRate { + /** Represents a LaunchPlanCreateRequest. */ + class LaunchPlanCreateRequest implements ILaunchPlanCreateRequest { /** - * Constructs a new FixedRate. + * Constructs a new LaunchPlanCreateRequest. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IFixedRate); + constructor(properties?: flyteidl.admin.ILaunchPlanCreateRequest); - /** FixedRate value. */ - public value: number; + /** LaunchPlanCreateRequest id. */ + public id?: (flyteidl.core.IIdentifier|null); - /** FixedRate unit. */ - public unit: flyteidl.admin.FixedRateUnit; + /** LaunchPlanCreateRequest spec. */ + public spec?: (flyteidl.admin.ILaunchPlanSpec|null); /** - * Creates a new FixedRate instance using the specified properties. + * Creates a new LaunchPlanCreateRequest instance using the specified properties. * @param [properties] Properties to set - * @returns FixedRate instance + * @returns LaunchPlanCreateRequest instance */ - public static create(properties?: flyteidl.admin.IFixedRate): flyteidl.admin.FixedRate; + public static create(properties?: flyteidl.admin.ILaunchPlanCreateRequest): flyteidl.admin.LaunchPlanCreateRequest; /** - * Encodes the specified FixedRate message. Does not implicitly {@link flyteidl.admin.FixedRate.verify|verify} messages. - * @param message FixedRate message or plain object to encode + * Encodes the specified LaunchPlanCreateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateRequest.verify|verify} messages. + * @param message LaunchPlanCreateRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IFixedRate, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanCreateRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a FixedRate message from the specified reader or buffer. + * Decodes a LaunchPlanCreateRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns FixedRate + * @returns LaunchPlanCreateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.FixedRate; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanCreateRequest; /** - * Verifies a FixedRate message. + * Verifies a LaunchPlanCreateRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a CronSchedule. */ - interface ICronSchedule { - - /** CronSchedule schedule */ - schedule?: (string|null); - - /** CronSchedule offset */ - offset?: (string|null); + /** Properties of a LaunchPlanCreateResponse. */ + interface ILaunchPlanCreateResponse { } - /** Represents a CronSchedule. */ - class CronSchedule implements ICronSchedule { + /** Represents a LaunchPlanCreateResponse. */ + class LaunchPlanCreateResponse implements ILaunchPlanCreateResponse { /** - * Constructs a new CronSchedule. + * Constructs a new LaunchPlanCreateResponse. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ICronSchedule); - - /** CronSchedule schedule. */ - public schedule: string; - - /** CronSchedule offset. */ - public offset: string; + constructor(properties?: flyteidl.admin.ILaunchPlanCreateResponse); /** - * Creates a new CronSchedule instance using the specified properties. + * Creates a new LaunchPlanCreateResponse instance using the specified properties. * @param [properties] Properties to set - * @returns CronSchedule instance + * @returns LaunchPlanCreateResponse instance */ - public static create(properties?: flyteidl.admin.ICronSchedule): flyteidl.admin.CronSchedule; + public static create(properties?: flyteidl.admin.ILaunchPlanCreateResponse): flyteidl.admin.LaunchPlanCreateResponse; /** - * Encodes the specified CronSchedule message. Does not implicitly {@link flyteidl.admin.CronSchedule.verify|verify} messages. - * @param message CronSchedule message or plain object to encode + * Encodes the specified LaunchPlanCreateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateResponse.verify|verify} messages. + * @param message LaunchPlanCreateResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ICronSchedule, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanCreateResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CronSchedule message from the specified reader or buffer. + * Decodes a LaunchPlanCreateResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CronSchedule + * @returns LaunchPlanCreateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.CronSchedule; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanCreateResponse; /** - * Verifies a CronSchedule message. + * Verifies a LaunchPlanCreateResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a Schedule. */ - interface ISchedule { + /** LaunchPlanState enum. */ + enum LaunchPlanState { + INACTIVE = 0, + ACTIVE = 1 + } - /** Schedule cronExpression */ - cronExpression?: (string|null); + /** Properties of a LaunchPlan. */ + interface ILaunchPlan { - /** Schedule rate */ - rate?: (flyteidl.admin.IFixedRate|null); + /** LaunchPlan id */ + id?: (flyteidl.core.IIdentifier|null); - /** Schedule cronSchedule */ - cronSchedule?: (flyteidl.admin.ICronSchedule|null); + /** LaunchPlan spec */ + spec?: (flyteidl.admin.ILaunchPlanSpec|null); - /** Schedule kickoffTimeInputArg */ - kickoffTimeInputArg?: (string|null); + /** LaunchPlan closure */ + closure?: (flyteidl.admin.ILaunchPlanClosure|null); } - /** Represents a Schedule. */ - class Schedule implements ISchedule { + /** Represents a LaunchPlan. */ + class LaunchPlan implements ILaunchPlan { /** - * Constructs a new Schedule. + * Constructs a new LaunchPlan. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ISchedule); - - /** Schedule cronExpression. */ - public cronExpression: string; - - /** Schedule rate. */ - public rate?: (flyteidl.admin.IFixedRate|null); + constructor(properties?: flyteidl.admin.ILaunchPlan); - /** Schedule cronSchedule. */ - public cronSchedule?: (flyteidl.admin.ICronSchedule|null); + /** LaunchPlan id. */ + public id?: (flyteidl.core.IIdentifier|null); - /** Schedule kickoffTimeInputArg. */ - public kickoffTimeInputArg: string; + /** LaunchPlan spec. */ + public spec?: (flyteidl.admin.ILaunchPlanSpec|null); - /** Schedule ScheduleExpression. */ - public ScheduleExpression?: ("cronExpression"|"rate"|"cronSchedule"); + /** LaunchPlan closure. */ + public closure?: (flyteidl.admin.ILaunchPlanClosure|null); /** - * Creates a new Schedule instance using the specified properties. + * Creates a new LaunchPlan instance using the specified properties. * @param [properties] Properties to set - * @returns Schedule instance + * @returns LaunchPlan instance */ - public static create(properties?: flyteidl.admin.ISchedule): flyteidl.admin.Schedule; + public static create(properties?: flyteidl.admin.ILaunchPlan): flyteidl.admin.LaunchPlan; /** - * Encodes the specified Schedule message. Does not implicitly {@link flyteidl.admin.Schedule.verify|verify} messages. - * @param message Schedule message or plain object to encode + * Encodes the specified LaunchPlan message. Does not implicitly {@link flyteidl.admin.LaunchPlan.verify|verify} messages. + * @param message LaunchPlan message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ISchedule, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlan, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Schedule message from the specified reader or buffer. + * Decodes a LaunchPlan message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Schedule + * @returns LaunchPlan * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.Schedule; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlan; /** - * Verifies a Schedule message. + * Verifies a LaunchPlan message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** MatchableResource enum. */ - enum MatchableResource { - TASK_RESOURCE = 0, - CLUSTER_RESOURCE = 1, - EXECUTION_QUEUE = 2, - EXECUTION_CLUSTER_LABEL = 3, - QUALITY_OF_SERVICE_SPECIFICATION = 4, - PLUGIN_OVERRIDE = 5, - WORKFLOW_EXECUTION_CONFIG = 6, - CLUSTER_ASSIGNMENT = 7 - } - - /** Properties of a TaskResourceSpec. */ - interface ITaskResourceSpec { - - /** TaskResourceSpec cpu */ - cpu?: (string|null); - - /** TaskResourceSpec gpu */ - gpu?: (string|null); - - /** TaskResourceSpec memory */ - memory?: (string|null); + /** Properties of a LaunchPlanList. */ + interface ILaunchPlanList { - /** TaskResourceSpec storage */ - storage?: (string|null); + /** LaunchPlanList launchPlans */ + launchPlans?: (flyteidl.admin.ILaunchPlan[]|null); - /** TaskResourceSpec ephemeralStorage */ - ephemeralStorage?: (string|null); + /** LaunchPlanList token */ + token?: (string|null); } - /** Represents a TaskResourceSpec. */ - class TaskResourceSpec implements ITaskResourceSpec { + /** Represents a LaunchPlanList. */ + class LaunchPlanList implements ILaunchPlanList { /** - * Constructs a new TaskResourceSpec. + * Constructs a new LaunchPlanList. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ITaskResourceSpec); - - /** TaskResourceSpec cpu. */ - public cpu: string; - - /** TaskResourceSpec gpu. */ - public gpu: string; - - /** TaskResourceSpec memory. */ - public memory: string; + constructor(properties?: flyteidl.admin.ILaunchPlanList); - /** TaskResourceSpec storage. */ - public storage: string; + /** LaunchPlanList launchPlans. */ + public launchPlans: flyteidl.admin.ILaunchPlan[]; - /** TaskResourceSpec ephemeralStorage. */ - public ephemeralStorage: string; + /** LaunchPlanList token. */ + public token: string; /** - * Creates a new TaskResourceSpec instance using the specified properties. + * Creates a new LaunchPlanList instance using the specified properties. * @param [properties] Properties to set - * @returns TaskResourceSpec instance + * @returns LaunchPlanList instance */ - public static create(properties?: flyteidl.admin.ITaskResourceSpec): flyteidl.admin.TaskResourceSpec; + public static create(properties?: flyteidl.admin.ILaunchPlanList): flyteidl.admin.LaunchPlanList; /** - * Encodes the specified TaskResourceSpec message. Does not implicitly {@link flyteidl.admin.TaskResourceSpec.verify|verify} messages. - * @param message TaskResourceSpec message or plain object to encode + * Encodes the specified LaunchPlanList message. Does not implicitly {@link flyteidl.admin.LaunchPlanList.verify|verify} messages. + * @param message LaunchPlanList message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ITaskResourceSpec, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanList, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a TaskResourceSpec message from the specified reader or buffer. + * Decodes a LaunchPlanList message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns TaskResourceSpec + * @returns LaunchPlanList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.TaskResourceSpec; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanList; /** - * Verifies a TaskResourceSpec message. + * Verifies a LaunchPlanList message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a TaskResourceAttributes. */ - interface ITaskResourceAttributes { + /** Properties of an Auth. */ + interface IAuth { - /** TaskResourceAttributes defaults */ - defaults?: (flyteidl.admin.ITaskResourceSpec|null); + /** Auth assumableIamRole */ + assumableIamRole?: (string|null); - /** TaskResourceAttributes limits */ - limits?: (flyteidl.admin.ITaskResourceSpec|null); + /** Auth kubernetesServiceAccount */ + kubernetesServiceAccount?: (string|null); } - /** Represents a TaskResourceAttributes. */ - class TaskResourceAttributes implements ITaskResourceAttributes { + /** Represents an Auth. */ + class Auth implements IAuth { /** - * Constructs a new TaskResourceAttributes. + * Constructs a new Auth. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.ITaskResourceAttributes); + constructor(properties?: flyteidl.admin.IAuth); - /** TaskResourceAttributes defaults. */ - public defaults?: (flyteidl.admin.ITaskResourceSpec|null); + /** Auth assumableIamRole. */ + public assumableIamRole: string; - /** TaskResourceAttributes limits. */ - public limits?: (flyteidl.admin.ITaskResourceSpec|null); + /** Auth kubernetesServiceAccount. */ + public kubernetesServiceAccount: string; /** - * Creates a new TaskResourceAttributes instance using the specified properties. + * Creates a new Auth instance using the specified properties. * @param [properties] Properties to set - * @returns TaskResourceAttributes instance + * @returns Auth instance */ - public static create(properties?: flyteidl.admin.ITaskResourceAttributes): flyteidl.admin.TaskResourceAttributes; + public static create(properties?: flyteidl.admin.IAuth): flyteidl.admin.Auth; /** - * Encodes the specified TaskResourceAttributes message. Does not implicitly {@link flyteidl.admin.TaskResourceAttributes.verify|verify} messages. - * @param message TaskResourceAttributes message or plain object to encode + * Encodes the specified Auth message. Does not implicitly {@link flyteidl.admin.Auth.verify|verify} messages. + * @param message Auth message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.ITaskResourceAttributes, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IAuth, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a TaskResourceAttributes message from the specified reader or buffer. + * Decodes an Auth message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns TaskResourceAttributes + * @returns Auth * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.TaskResourceAttributes; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.Auth; /** - * Verifies a TaskResourceAttributes message. + * Verifies an Auth message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a ClusterResourceAttributes. */ - interface IClusterResourceAttributes { + /** Properties of a LaunchPlanSpec. */ + interface ILaunchPlanSpec { - /** ClusterResourceAttributes attributes */ - attributes?: ({ [k: string]: string }|null); + /** LaunchPlanSpec workflowId */ + workflowId?: (flyteidl.core.IIdentifier|null); + + /** LaunchPlanSpec entityMetadata */ + entityMetadata?: (flyteidl.admin.ILaunchPlanMetadata|null); + + /** LaunchPlanSpec defaultInputs */ + defaultInputs?: (flyteidl.core.IParameterMap|null); + + /** LaunchPlanSpec fixedInputs */ + fixedInputs?: (flyteidl.core.ILiteralMap|null); + + /** LaunchPlanSpec role */ + role?: (string|null); + + /** LaunchPlanSpec labels */ + labels?: (flyteidl.admin.ILabels|null); + + /** LaunchPlanSpec annotations */ + annotations?: (flyteidl.admin.IAnnotations|null); + + /** LaunchPlanSpec auth */ + auth?: (flyteidl.admin.IAuth|null); + + /** LaunchPlanSpec authRole */ + authRole?: (flyteidl.admin.IAuthRole|null); + + /** LaunchPlanSpec securityContext */ + securityContext?: (flyteidl.core.ISecurityContext|null); + + /** LaunchPlanSpec qualityOfService */ + qualityOfService?: (flyteidl.core.IQualityOfService|null); + + /** LaunchPlanSpec rawOutputDataConfig */ + rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); + + /** LaunchPlanSpec maxParallelism */ + maxParallelism?: (number|null); + + /** LaunchPlanSpec interruptible */ + interruptible?: (google.protobuf.IBoolValue|null); + + /** LaunchPlanSpec overwriteCache */ + overwriteCache?: (boolean|null); + + /** LaunchPlanSpec envs */ + envs?: (flyteidl.admin.IEnvs|null); } - /** Represents a ClusterResourceAttributes. */ - class ClusterResourceAttributes implements IClusterResourceAttributes { + /** Represents a LaunchPlanSpec. */ + class LaunchPlanSpec implements ILaunchPlanSpec { /** - * Constructs a new ClusterResourceAttributes. + * Constructs a new LaunchPlanSpec. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IClusterResourceAttributes); + constructor(properties?: flyteidl.admin.ILaunchPlanSpec); - /** ClusterResourceAttributes attributes. */ - public attributes: { [k: string]: string }; + /** LaunchPlanSpec workflowId. */ + public workflowId?: (flyteidl.core.IIdentifier|null); + + /** LaunchPlanSpec entityMetadata. */ + public entityMetadata?: (flyteidl.admin.ILaunchPlanMetadata|null); + + /** LaunchPlanSpec defaultInputs. */ + public defaultInputs?: (flyteidl.core.IParameterMap|null); + + /** LaunchPlanSpec fixedInputs. */ + public fixedInputs?: (flyteidl.core.ILiteralMap|null); + + /** LaunchPlanSpec role. */ + public role: string; + + /** LaunchPlanSpec labels. */ + public labels?: (flyteidl.admin.ILabels|null); + + /** LaunchPlanSpec annotations. */ + public annotations?: (flyteidl.admin.IAnnotations|null); + + /** LaunchPlanSpec auth. */ + public auth?: (flyteidl.admin.IAuth|null); + + /** LaunchPlanSpec authRole. */ + public authRole?: (flyteidl.admin.IAuthRole|null); + + /** LaunchPlanSpec securityContext. */ + public securityContext?: (flyteidl.core.ISecurityContext|null); + + /** LaunchPlanSpec qualityOfService. */ + public qualityOfService?: (flyteidl.core.IQualityOfService|null); + + /** LaunchPlanSpec rawOutputDataConfig. */ + public rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); + + /** LaunchPlanSpec maxParallelism. */ + public maxParallelism: number; + + /** LaunchPlanSpec interruptible. */ + public interruptible?: (google.protobuf.IBoolValue|null); + + /** LaunchPlanSpec overwriteCache. */ + public overwriteCache: boolean; + + /** LaunchPlanSpec envs. */ + public envs?: (flyteidl.admin.IEnvs|null); /** - * Creates a new ClusterResourceAttributes instance using the specified properties. + * Creates a new LaunchPlanSpec instance using the specified properties. * @param [properties] Properties to set - * @returns ClusterResourceAttributes instance + * @returns LaunchPlanSpec instance */ - public static create(properties?: flyteidl.admin.IClusterResourceAttributes): flyteidl.admin.ClusterResourceAttributes; + public static create(properties?: flyteidl.admin.ILaunchPlanSpec): flyteidl.admin.LaunchPlanSpec; /** - * Encodes the specified ClusterResourceAttributes message. Does not implicitly {@link flyteidl.admin.ClusterResourceAttributes.verify|verify} messages. - * @param message ClusterResourceAttributes message or plain object to encode + * Encodes the specified LaunchPlanSpec message. Does not implicitly {@link flyteidl.admin.LaunchPlanSpec.verify|verify} messages. + * @param message LaunchPlanSpec message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IClusterResourceAttributes, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanSpec, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ClusterResourceAttributes message from the specified reader or buffer. + * Decodes a LaunchPlanSpec message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ClusterResourceAttributes + * @returns LaunchPlanSpec * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ClusterResourceAttributes; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanSpec; /** - * Verifies a ClusterResourceAttributes message. + * Verifies a LaunchPlanSpec message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of an ExecutionQueueAttributes. */ - interface IExecutionQueueAttributes { + /** Properties of a LaunchPlanClosure. */ + interface ILaunchPlanClosure { - /** ExecutionQueueAttributes tags */ - tags?: (string[]|null); + /** LaunchPlanClosure state */ + state?: (flyteidl.admin.LaunchPlanState|null); + + /** LaunchPlanClosure expectedInputs */ + expectedInputs?: (flyteidl.core.IParameterMap|null); + + /** LaunchPlanClosure expectedOutputs */ + expectedOutputs?: (flyteidl.core.IVariableMap|null); + + /** LaunchPlanClosure createdAt */ + createdAt?: (google.protobuf.ITimestamp|null); + + /** LaunchPlanClosure updatedAt */ + updatedAt?: (google.protobuf.ITimestamp|null); } - /** Represents an ExecutionQueueAttributes. */ - class ExecutionQueueAttributes implements IExecutionQueueAttributes { + /** Represents a LaunchPlanClosure. */ + class LaunchPlanClosure implements ILaunchPlanClosure { /** - * Constructs a new ExecutionQueueAttributes. + * Constructs a new LaunchPlanClosure. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IExecutionQueueAttributes); + constructor(properties?: flyteidl.admin.ILaunchPlanClosure); - /** ExecutionQueueAttributes tags. */ - public tags: string[]; + /** LaunchPlanClosure state. */ + public state: flyteidl.admin.LaunchPlanState; + + /** LaunchPlanClosure expectedInputs. */ + public expectedInputs?: (flyteidl.core.IParameterMap|null); + + /** LaunchPlanClosure expectedOutputs. */ + public expectedOutputs?: (flyteidl.core.IVariableMap|null); + + /** LaunchPlanClosure createdAt. */ + public createdAt?: (google.protobuf.ITimestamp|null); + + /** LaunchPlanClosure updatedAt. */ + public updatedAt?: (google.protobuf.ITimestamp|null); /** - * Creates a new ExecutionQueueAttributes instance using the specified properties. + * Creates a new LaunchPlanClosure instance using the specified properties. * @param [properties] Properties to set - * @returns ExecutionQueueAttributes instance + * @returns LaunchPlanClosure instance */ - public static create(properties?: flyteidl.admin.IExecutionQueueAttributes): flyteidl.admin.ExecutionQueueAttributes; + public static create(properties?: flyteidl.admin.ILaunchPlanClosure): flyteidl.admin.LaunchPlanClosure; /** - * Encodes the specified ExecutionQueueAttributes message. Does not implicitly {@link flyteidl.admin.ExecutionQueueAttributes.verify|verify} messages. - * @param message ExecutionQueueAttributes message or plain object to encode + * Encodes the specified LaunchPlanClosure message. Does not implicitly {@link flyteidl.admin.LaunchPlanClosure.verify|verify} messages. + * @param message LaunchPlanClosure message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IExecutionQueueAttributes, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanClosure, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an ExecutionQueueAttributes message from the specified reader or buffer. + * Decodes a LaunchPlanClosure message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ExecutionQueueAttributes + * @returns LaunchPlanClosure * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ExecutionQueueAttributes; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanClosure; /** - * Verifies an ExecutionQueueAttributes message. + * Verifies a LaunchPlanClosure message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of an ExecutionClusterLabel. */ - interface IExecutionClusterLabel { + /** Properties of a LaunchPlanMetadata. */ + interface ILaunchPlanMetadata { + + /** LaunchPlanMetadata schedule */ + schedule?: (flyteidl.admin.ISchedule|null); + + /** LaunchPlanMetadata notifications */ + notifications?: (flyteidl.admin.INotification[]|null); - /** ExecutionClusterLabel value */ - value?: (string|null); + /** LaunchPlanMetadata launchConditions */ + launchConditions?: (google.protobuf.IAny|null); } - /** Represents an ExecutionClusterLabel. */ - class ExecutionClusterLabel implements IExecutionClusterLabel { + /** Represents a LaunchPlanMetadata. */ + class LaunchPlanMetadata implements ILaunchPlanMetadata { /** - * Constructs a new ExecutionClusterLabel. + * Constructs a new LaunchPlanMetadata. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IExecutionClusterLabel); + constructor(properties?: flyteidl.admin.ILaunchPlanMetadata); - /** ExecutionClusterLabel value. */ - public value: string; + /** LaunchPlanMetadata schedule. */ + public schedule?: (flyteidl.admin.ISchedule|null); + + /** LaunchPlanMetadata notifications. */ + public notifications: flyteidl.admin.INotification[]; + + /** LaunchPlanMetadata launchConditions. */ + public launchConditions?: (google.protobuf.IAny|null); /** - * Creates a new ExecutionClusterLabel instance using the specified properties. + * Creates a new LaunchPlanMetadata instance using the specified properties. * @param [properties] Properties to set - * @returns ExecutionClusterLabel instance + * @returns LaunchPlanMetadata instance */ - public static create(properties?: flyteidl.admin.IExecutionClusterLabel): flyteidl.admin.ExecutionClusterLabel; + public static create(properties?: flyteidl.admin.ILaunchPlanMetadata): flyteidl.admin.LaunchPlanMetadata; /** - * Encodes the specified ExecutionClusterLabel message. Does not implicitly {@link flyteidl.admin.ExecutionClusterLabel.verify|verify} messages. - * @param message ExecutionClusterLabel message or plain object to encode + * Encodes the specified LaunchPlanMetadata message. Does not implicitly {@link flyteidl.admin.LaunchPlanMetadata.verify|verify} messages. + * @param message LaunchPlanMetadata message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IExecutionClusterLabel, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanMetadata, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes an ExecutionClusterLabel message from the specified reader or buffer. + * Decodes a LaunchPlanMetadata message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ExecutionClusterLabel + * @returns LaunchPlanMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ExecutionClusterLabel; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanMetadata; /** - * Verifies an ExecutionClusterLabel message. + * Verifies a LaunchPlanMetadata message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a PluginOverride. */ - interface IPluginOverride { - - /** PluginOverride taskType */ - taskType?: (string|null); + /** Properties of a LaunchPlanUpdateRequest. */ + interface ILaunchPlanUpdateRequest { - /** PluginOverride pluginId */ - pluginId?: (string[]|null); + /** LaunchPlanUpdateRequest id */ + id?: (flyteidl.core.IIdentifier|null); - /** PluginOverride missingPluginBehavior */ - missingPluginBehavior?: (flyteidl.admin.PluginOverride.MissingPluginBehavior|null); + /** LaunchPlanUpdateRequest state */ + state?: (flyteidl.admin.LaunchPlanState|null); } - /** Represents a PluginOverride. */ - class PluginOverride implements IPluginOverride { + /** Represents a LaunchPlanUpdateRequest. */ + class LaunchPlanUpdateRequest implements ILaunchPlanUpdateRequest { /** - * Constructs a new PluginOverride. + * Constructs a new LaunchPlanUpdateRequest. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IPluginOverride); - - /** PluginOverride taskType. */ - public taskType: string; + constructor(properties?: flyteidl.admin.ILaunchPlanUpdateRequest); - /** PluginOverride pluginId. */ - public pluginId: string[]; + /** LaunchPlanUpdateRequest id. */ + public id?: (flyteidl.core.IIdentifier|null); - /** PluginOverride missingPluginBehavior. */ - public missingPluginBehavior: flyteidl.admin.PluginOverride.MissingPluginBehavior; + /** LaunchPlanUpdateRequest state. */ + public state: flyteidl.admin.LaunchPlanState; /** - * Creates a new PluginOverride instance using the specified properties. + * Creates a new LaunchPlanUpdateRequest instance using the specified properties. * @param [properties] Properties to set - * @returns PluginOverride instance + * @returns LaunchPlanUpdateRequest instance */ - public static create(properties?: flyteidl.admin.IPluginOverride): flyteidl.admin.PluginOverride; + public static create(properties?: flyteidl.admin.ILaunchPlanUpdateRequest): flyteidl.admin.LaunchPlanUpdateRequest; /** - * Encodes the specified PluginOverride message. Does not implicitly {@link flyteidl.admin.PluginOverride.verify|verify} messages. - * @param message PluginOverride message or plain object to encode + * Encodes the specified LaunchPlanUpdateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateRequest.verify|verify} messages. + * @param message LaunchPlanUpdateRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IPluginOverride, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanUpdateRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PluginOverride message from the specified reader or buffer. + * Decodes a LaunchPlanUpdateRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PluginOverride + * @returns LaunchPlanUpdateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.PluginOverride; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanUpdateRequest; /** - * Verifies a PluginOverride message. + * Verifies a LaunchPlanUpdateRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - namespace PluginOverride { - - /** MissingPluginBehavior enum. */ - enum MissingPluginBehavior { - FAIL = 0, - USE_DEFAULT = 1 - } - } - - /** Properties of a PluginOverrides. */ - interface IPluginOverrides { - - /** PluginOverrides overrides */ - overrides?: (flyteidl.admin.IPluginOverride[]|null); + /** Properties of a LaunchPlanUpdateResponse. */ + interface ILaunchPlanUpdateResponse { } - /** Represents a PluginOverrides. */ - class PluginOverrides implements IPluginOverrides { + /** Represents a LaunchPlanUpdateResponse. */ + class LaunchPlanUpdateResponse implements ILaunchPlanUpdateResponse { /** - * Constructs a new PluginOverrides. + * Constructs a new LaunchPlanUpdateResponse. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IPluginOverrides); - - /** PluginOverrides overrides. */ - public overrides: flyteidl.admin.IPluginOverride[]; + constructor(properties?: flyteidl.admin.ILaunchPlanUpdateResponse); /** - * Creates a new PluginOverrides instance using the specified properties. + * Creates a new LaunchPlanUpdateResponse instance using the specified properties. * @param [properties] Properties to set - * @returns PluginOverrides instance + * @returns LaunchPlanUpdateResponse instance */ - public static create(properties?: flyteidl.admin.IPluginOverrides): flyteidl.admin.PluginOverrides; + public static create(properties?: flyteidl.admin.ILaunchPlanUpdateResponse): flyteidl.admin.LaunchPlanUpdateResponse; /** - * Encodes the specified PluginOverrides message. Does not implicitly {@link flyteidl.admin.PluginOverrides.verify|verify} messages. - * @param message PluginOverrides message or plain object to encode + * Encodes the specified LaunchPlanUpdateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateResponse.verify|verify} messages. + * @param message LaunchPlanUpdateResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IPluginOverrides, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ILaunchPlanUpdateResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PluginOverrides message from the specified reader or buffer. + * Decodes a LaunchPlanUpdateResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PluginOverrides + * @returns LaunchPlanUpdateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.PluginOverrides; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.LaunchPlanUpdateResponse; /** - * Verifies a PluginOverrides message. + * Verifies a LaunchPlanUpdateResponse message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a WorkflowExecutionConfig. */ - interface IWorkflowExecutionConfig { - - /** WorkflowExecutionConfig maxParallelism */ - maxParallelism?: (number|null); - - /** WorkflowExecutionConfig securityContext */ - securityContext?: (flyteidl.core.ISecurityContext|null); - - /** WorkflowExecutionConfig rawOutputDataConfig */ - rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); - - /** WorkflowExecutionConfig labels */ - labels?: (flyteidl.admin.ILabels|null); - - /** WorkflowExecutionConfig annotations */ - annotations?: (flyteidl.admin.IAnnotations|null); - - /** WorkflowExecutionConfig interruptible */ - interruptible?: (google.protobuf.IBoolValue|null); - - /** WorkflowExecutionConfig overwriteCache */ - overwriteCache?: (boolean|null); + /** Properties of an ActiveLaunchPlanRequest. */ + interface IActiveLaunchPlanRequest { - /** WorkflowExecutionConfig envs */ - envs?: (flyteidl.admin.IEnvs|null); + /** ActiveLaunchPlanRequest id */ + id?: (flyteidl.admin.INamedEntityIdentifier|null); } - /** Represents a WorkflowExecutionConfig. */ - class WorkflowExecutionConfig implements IWorkflowExecutionConfig { + /** Represents an ActiveLaunchPlanRequest. */ + class ActiveLaunchPlanRequest implements IActiveLaunchPlanRequest { /** - * Constructs a new WorkflowExecutionConfig. + * Constructs a new ActiveLaunchPlanRequest. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IWorkflowExecutionConfig); - - /** WorkflowExecutionConfig maxParallelism. */ - public maxParallelism: number; - - /** WorkflowExecutionConfig securityContext. */ - public securityContext?: (flyteidl.core.ISecurityContext|null); - - /** WorkflowExecutionConfig rawOutputDataConfig. */ - public rawOutputDataConfig?: (flyteidl.admin.IRawOutputDataConfig|null); - - /** WorkflowExecutionConfig labels. */ - public labels?: (flyteidl.admin.ILabels|null); - - /** WorkflowExecutionConfig annotations. */ - public annotations?: (flyteidl.admin.IAnnotations|null); - - /** WorkflowExecutionConfig interruptible. */ - public interruptible?: (google.protobuf.IBoolValue|null); - - /** WorkflowExecutionConfig overwriteCache. */ - public overwriteCache: boolean; + constructor(properties?: flyteidl.admin.IActiveLaunchPlanRequest); - /** WorkflowExecutionConfig envs. */ - public envs?: (flyteidl.admin.IEnvs|null); + /** ActiveLaunchPlanRequest id. */ + public id?: (flyteidl.admin.INamedEntityIdentifier|null); /** - * Creates a new WorkflowExecutionConfig instance using the specified properties. + * Creates a new ActiveLaunchPlanRequest instance using the specified properties. * @param [properties] Properties to set - * @returns WorkflowExecutionConfig instance + * @returns ActiveLaunchPlanRequest instance */ - public static create(properties?: flyteidl.admin.IWorkflowExecutionConfig): flyteidl.admin.WorkflowExecutionConfig; + public static create(properties?: flyteidl.admin.IActiveLaunchPlanRequest): flyteidl.admin.ActiveLaunchPlanRequest; /** - * Encodes the specified WorkflowExecutionConfig message. Does not implicitly {@link flyteidl.admin.WorkflowExecutionConfig.verify|verify} messages. - * @param message WorkflowExecutionConfig message or plain object to encode + * Encodes the specified ActiveLaunchPlanRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanRequest.verify|verify} messages. + * @param message ActiveLaunchPlanRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IWorkflowExecutionConfig, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IActiveLaunchPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a WorkflowExecutionConfig message from the specified reader or buffer. + * Decodes an ActiveLaunchPlanRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns WorkflowExecutionConfig + * @returns ActiveLaunchPlanRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.WorkflowExecutionConfig; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ActiveLaunchPlanRequest; /** - * Verifies a WorkflowExecutionConfig message. + * Verifies an ActiveLaunchPlanRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a MatchingAttributes. */ - interface IMatchingAttributes { - - /** MatchingAttributes taskResourceAttributes */ - taskResourceAttributes?: (flyteidl.admin.ITaskResourceAttributes|null); - - /** MatchingAttributes clusterResourceAttributes */ - clusterResourceAttributes?: (flyteidl.admin.IClusterResourceAttributes|null); + /** Properties of an ActiveLaunchPlanListRequest. */ + interface IActiveLaunchPlanListRequest { - /** MatchingAttributes executionQueueAttributes */ - executionQueueAttributes?: (flyteidl.admin.IExecutionQueueAttributes|null); + /** ActiveLaunchPlanListRequest project */ + project?: (string|null); - /** MatchingAttributes executionClusterLabel */ - executionClusterLabel?: (flyteidl.admin.IExecutionClusterLabel|null); + /** ActiveLaunchPlanListRequest domain */ + domain?: (string|null); - /** MatchingAttributes qualityOfService */ - qualityOfService?: (flyteidl.core.IQualityOfService|null); + /** ActiveLaunchPlanListRequest limit */ + limit?: (number|null); - /** MatchingAttributes pluginOverrides */ - pluginOverrides?: (flyteidl.admin.IPluginOverrides|null); + /** ActiveLaunchPlanListRequest token */ + token?: (string|null); - /** MatchingAttributes workflowExecutionConfig */ - workflowExecutionConfig?: (flyteidl.admin.IWorkflowExecutionConfig|null); + /** ActiveLaunchPlanListRequest sortBy */ + sortBy?: (flyteidl.admin.ISort|null); - /** MatchingAttributes clusterAssignment */ - clusterAssignment?: (flyteidl.admin.IClusterAssignment|null); + /** ActiveLaunchPlanListRequest org */ + org?: (string|null); } - /** Represents a MatchingAttributes. */ - class MatchingAttributes implements IMatchingAttributes { + /** Represents an ActiveLaunchPlanListRequest. */ + class ActiveLaunchPlanListRequest implements IActiveLaunchPlanListRequest { /** - * Constructs a new MatchingAttributes. + * Constructs a new ActiveLaunchPlanListRequest. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IMatchingAttributes); - - /** MatchingAttributes taskResourceAttributes. */ - public taskResourceAttributes?: (flyteidl.admin.ITaskResourceAttributes|null); - - /** MatchingAttributes clusterResourceAttributes. */ - public clusterResourceAttributes?: (flyteidl.admin.IClusterResourceAttributes|null); - - /** MatchingAttributes executionQueueAttributes. */ - public executionQueueAttributes?: (flyteidl.admin.IExecutionQueueAttributes|null); + constructor(properties?: flyteidl.admin.IActiveLaunchPlanListRequest); - /** MatchingAttributes executionClusterLabel. */ - public executionClusterLabel?: (flyteidl.admin.IExecutionClusterLabel|null); + /** ActiveLaunchPlanListRequest project. */ + public project: string; - /** MatchingAttributes qualityOfService. */ - public qualityOfService?: (flyteidl.core.IQualityOfService|null); + /** ActiveLaunchPlanListRequest domain. */ + public domain: string; - /** MatchingAttributes pluginOverrides. */ - public pluginOverrides?: (flyteidl.admin.IPluginOverrides|null); + /** ActiveLaunchPlanListRequest limit. */ + public limit: number; - /** MatchingAttributes workflowExecutionConfig. */ - public workflowExecutionConfig?: (flyteidl.admin.IWorkflowExecutionConfig|null); + /** ActiveLaunchPlanListRequest token. */ + public token: string; - /** MatchingAttributes clusterAssignment. */ - public clusterAssignment?: (flyteidl.admin.IClusterAssignment|null); + /** ActiveLaunchPlanListRequest sortBy. */ + public sortBy?: (flyteidl.admin.ISort|null); - /** MatchingAttributes target. */ - public target?: ("taskResourceAttributes"|"clusterResourceAttributes"|"executionQueueAttributes"|"executionClusterLabel"|"qualityOfService"|"pluginOverrides"|"workflowExecutionConfig"|"clusterAssignment"); + /** ActiveLaunchPlanListRequest org. */ + public org: string; /** - * Creates a new MatchingAttributes instance using the specified properties. + * Creates a new ActiveLaunchPlanListRequest instance using the specified properties. * @param [properties] Properties to set - * @returns MatchingAttributes instance + * @returns ActiveLaunchPlanListRequest instance */ - public static create(properties?: flyteidl.admin.IMatchingAttributes): flyteidl.admin.MatchingAttributes; + public static create(properties?: flyteidl.admin.IActiveLaunchPlanListRequest): flyteidl.admin.ActiveLaunchPlanListRequest; /** - * Encodes the specified MatchingAttributes message. Does not implicitly {@link flyteidl.admin.MatchingAttributes.verify|verify} messages. - * @param message MatchingAttributes message or plain object to encode + * Encodes the specified ActiveLaunchPlanListRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanListRequest.verify|verify} messages. + * @param message ActiveLaunchPlanListRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IMatchingAttributes, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IActiveLaunchPlanListRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MatchingAttributes message from the specified reader or buffer. + * Decodes an ActiveLaunchPlanListRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MatchingAttributes + * @returns ActiveLaunchPlanListRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.MatchingAttributes; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ActiveLaunchPlanListRequest; /** - * Verifies a MatchingAttributes message. + * Verifies an ActiveLaunchPlanListRequest message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a MatchableAttributesConfiguration. */ - interface IMatchableAttributesConfiguration { - - /** MatchableAttributesConfiguration attributes */ - attributes?: (flyteidl.admin.IMatchingAttributes|null); - - /** MatchableAttributesConfiguration domain */ - domain?: (string|null); - - /** MatchableAttributesConfiguration project */ - project?: (string|null); + /** FixedRateUnit enum. */ + enum FixedRateUnit { + MINUTE = 0, + HOUR = 1, + DAY = 2 + } - /** MatchableAttributesConfiguration workflow */ - workflow?: (string|null); + /** Properties of a FixedRate. */ + interface IFixedRate { - /** MatchableAttributesConfiguration launchPlan */ - launchPlan?: (string|null); + /** FixedRate value */ + value?: (number|null); - /** MatchableAttributesConfiguration org */ - org?: (string|null); + /** FixedRate unit */ + unit?: (flyteidl.admin.FixedRateUnit|null); } - /** Represents a MatchableAttributesConfiguration. */ - class MatchableAttributesConfiguration implements IMatchableAttributesConfiguration { + /** Represents a FixedRate. */ + class FixedRate implements IFixedRate { /** - * Constructs a new MatchableAttributesConfiguration. + * Constructs a new FixedRate. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IMatchableAttributesConfiguration); - - /** MatchableAttributesConfiguration attributes. */ - public attributes?: (flyteidl.admin.IMatchingAttributes|null); - - /** MatchableAttributesConfiguration domain. */ - public domain: string; - - /** MatchableAttributesConfiguration project. */ - public project: string; - - /** MatchableAttributesConfiguration workflow. */ - public workflow: string; + constructor(properties?: flyteidl.admin.IFixedRate); - /** MatchableAttributesConfiguration launchPlan. */ - public launchPlan: string; + /** FixedRate value. */ + public value: number; - /** MatchableAttributesConfiguration org. */ - public org: string; + /** FixedRate unit. */ + public unit: flyteidl.admin.FixedRateUnit; /** - * Creates a new MatchableAttributesConfiguration instance using the specified properties. + * Creates a new FixedRate instance using the specified properties. * @param [properties] Properties to set - * @returns MatchableAttributesConfiguration instance + * @returns FixedRate instance */ - public static create(properties?: flyteidl.admin.IMatchableAttributesConfiguration): flyteidl.admin.MatchableAttributesConfiguration; + public static create(properties?: flyteidl.admin.IFixedRate): flyteidl.admin.FixedRate; /** - * Encodes the specified MatchableAttributesConfiguration message. Does not implicitly {@link flyteidl.admin.MatchableAttributesConfiguration.verify|verify} messages. - * @param message MatchableAttributesConfiguration message or plain object to encode + * Encodes the specified FixedRate message. Does not implicitly {@link flyteidl.admin.FixedRate.verify|verify} messages. + * @param message FixedRate message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IMatchableAttributesConfiguration, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.IFixedRate, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MatchableAttributesConfiguration message from the specified reader or buffer. + * Decodes a FixedRate message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MatchableAttributesConfiguration + * @returns FixedRate * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.MatchableAttributesConfiguration; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.FixedRate; /** - * Verifies a MatchableAttributesConfiguration message. + * Verifies a FixedRate message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a ListMatchableAttributesRequest. */ - interface IListMatchableAttributesRequest { + /** Properties of a CronSchedule. */ + interface ICronSchedule { - /** ListMatchableAttributesRequest resourceType */ - resourceType?: (flyteidl.admin.MatchableResource|null); + /** CronSchedule schedule */ + schedule?: (string|null); - /** ListMatchableAttributesRequest org */ - org?: (string|null); + /** CronSchedule offset */ + offset?: (string|null); } - /** Represents a ListMatchableAttributesRequest. */ - class ListMatchableAttributesRequest implements IListMatchableAttributesRequest { + /** Represents a CronSchedule. */ + class CronSchedule implements ICronSchedule { /** - * Constructs a new ListMatchableAttributesRequest. + * Constructs a new CronSchedule. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IListMatchableAttributesRequest); + constructor(properties?: flyteidl.admin.ICronSchedule); - /** ListMatchableAttributesRequest resourceType. */ - public resourceType: flyteidl.admin.MatchableResource; + /** CronSchedule schedule. */ + public schedule: string; - /** ListMatchableAttributesRequest org. */ - public org: string; + /** CronSchedule offset. */ + public offset: string; /** - * Creates a new ListMatchableAttributesRequest instance using the specified properties. + * Creates a new CronSchedule instance using the specified properties. * @param [properties] Properties to set - * @returns ListMatchableAttributesRequest instance + * @returns CronSchedule instance */ - public static create(properties?: flyteidl.admin.IListMatchableAttributesRequest): flyteidl.admin.ListMatchableAttributesRequest; + public static create(properties?: flyteidl.admin.ICronSchedule): flyteidl.admin.CronSchedule; /** - * Encodes the specified ListMatchableAttributesRequest message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesRequest.verify|verify} messages. - * @param message ListMatchableAttributesRequest message or plain object to encode + * Encodes the specified CronSchedule message. Does not implicitly {@link flyteidl.admin.CronSchedule.verify|verify} messages. + * @param message CronSchedule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IListMatchableAttributesRequest, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ICronSchedule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ListMatchableAttributesRequest message from the specified reader or buffer. + * Decodes a CronSchedule message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ListMatchableAttributesRequest + * @returns CronSchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ListMatchableAttributesRequest; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.CronSchedule; /** - * Verifies a ListMatchableAttributesRequest message. + * Verifies a CronSchedule message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); } - /** Properties of a ListMatchableAttributesResponse. */ - interface IListMatchableAttributesResponse { + /** Properties of a Schedule. */ + interface ISchedule { - /** ListMatchableAttributesResponse configurations */ - configurations?: (flyteidl.admin.IMatchableAttributesConfiguration[]|null); + /** Schedule cronExpression */ + cronExpression?: (string|null); + + /** Schedule rate */ + rate?: (flyteidl.admin.IFixedRate|null); + + /** Schedule cronSchedule */ + cronSchedule?: (flyteidl.admin.ICronSchedule|null); + + /** Schedule kickoffTimeInputArg */ + kickoffTimeInputArg?: (string|null); } - /** Represents a ListMatchableAttributesResponse. */ - class ListMatchableAttributesResponse implements IListMatchableAttributesResponse { + /** Represents a Schedule. */ + class Schedule implements ISchedule { /** - * Constructs a new ListMatchableAttributesResponse. + * Constructs a new Schedule. * @param [properties] Properties to set */ - constructor(properties?: flyteidl.admin.IListMatchableAttributesResponse); + constructor(properties?: flyteidl.admin.ISchedule); - /** ListMatchableAttributesResponse configurations. */ - public configurations: flyteidl.admin.IMatchableAttributesConfiguration[]; + /** Schedule cronExpression. */ + public cronExpression: string; + + /** Schedule rate. */ + public rate?: (flyteidl.admin.IFixedRate|null); + + /** Schedule cronSchedule. */ + public cronSchedule?: (flyteidl.admin.ICronSchedule|null); + + /** Schedule kickoffTimeInputArg. */ + public kickoffTimeInputArg: string; + + /** Schedule ScheduleExpression. */ + public ScheduleExpression?: ("cronExpression"|"rate"|"cronSchedule"); /** - * Creates a new ListMatchableAttributesResponse instance using the specified properties. + * Creates a new Schedule instance using the specified properties. * @param [properties] Properties to set - * @returns ListMatchableAttributesResponse instance + * @returns Schedule instance */ - public static create(properties?: flyteidl.admin.IListMatchableAttributesResponse): flyteidl.admin.ListMatchableAttributesResponse; + public static create(properties?: flyteidl.admin.ISchedule): flyteidl.admin.Schedule; /** - * Encodes the specified ListMatchableAttributesResponse message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesResponse.verify|verify} messages. - * @param message ListMatchableAttributesResponse message or plain object to encode + * Encodes the specified Schedule message. Does not implicitly {@link flyteidl.admin.Schedule.verify|verify} messages. + * @param message Schedule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: flyteidl.admin.IListMatchableAttributesResponse, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: flyteidl.admin.ISchedule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ListMatchableAttributesResponse message from the specified reader or buffer. + * Decodes a Schedule message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ListMatchableAttributesResponse + * @returns Schedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.ListMatchableAttributesResponse; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.Schedule; /** - * Verifies a ListMatchableAttributesResponse message. + * Verifies a Schedule message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 680cf11ee2..41484ba0ef 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -33630,6 +33630,7 @@ * @property {boolean|null} [overwriteCache] ExecutionSpec overwriteCache * @property {flyteidl.admin.IEnvs|null} [envs] ExecutionSpec envs * @property {Array.|null} [tags] ExecutionSpec tags + * @property {flyteidl.admin.IExecutionClusterLabel|null} [executionClusterLabel] ExecutionSpec executionClusterLabel */ /** @@ -33784,6 +33785,14 @@ */ ExecutionSpec.prototype.tags = $util.emptyArray; + /** + * ExecutionSpec executionClusterLabel. + * @member {flyteidl.admin.IExecutionClusterLabel|null|undefined} executionClusterLabel + * @memberof flyteidl.admin.ExecutionSpec + * @instance + */ + ExecutionSpec.prototype.executionClusterLabel = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -33857,6 +33866,8 @@ if (message.tags != null && message.tags.length) for (var i = 0; i < message.tags.length; ++i) writer.uint32(/* id 24, wireType 2 =*/194).string(message.tags[i]); + if (message.executionClusterLabel != null && message.hasOwnProperty("executionClusterLabel")) + $root.flyteidl.admin.ExecutionClusterLabel.encode(message.executionClusterLabel, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim(); return writer; }; @@ -33931,6 +33942,9 @@ message.tags = []; message.tags.push(reader.string()); break; + case 25: + message.executionClusterLabel = $root.flyteidl.admin.ExecutionClusterLabel.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -34039,6 +34053,11 @@ if (!$util.isString(message.tags[i])) return "tags: string[] expected"; } + if (message.executionClusterLabel != null && message.hasOwnProperty("executionClusterLabel")) { + var error = $root.flyteidl.admin.ExecutionClusterLabel.verify(message.executionClusterLabel); + if (error) + return "executionClusterLabel." + error; + } return null; }; @@ -35181,25 +35200,54 @@ return WorkflowExecutionGetMetricsResponse; })(); - admin.LaunchPlanCreateRequest = (function() { + /** + * MatchableResource enum. + * @name flyteidl.admin.MatchableResource + * @enum {string} + * @property {number} TASK_RESOURCE=0 TASK_RESOURCE value + * @property {number} CLUSTER_RESOURCE=1 CLUSTER_RESOURCE value + * @property {number} EXECUTION_QUEUE=2 EXECUTION_QUEUE value + * @property {number} EXECUTION_CLUSTER_LABEL=3 EXECUTION_CLUSTER_LABEL value + * @property {number} QUALITY_OF_SERVICE_SPECIFICATION=4 QUALITY_OF_SERVICE_SPECIFICATION value + * @property {number} PLUGIN_OVERRIDE=5 PLUGIN_OVERRIDE value + * @property {number} WORKFLOW_EXECUTION_CONFIG=6 WORKFLOW_EXECUTION_CONFIG value + * @property {number} CLUSTER_ASSIGNMENT=7 CLUSTER_ASSIGNMENT value + */ + admin.MatchableResource = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TASK_RESOURCE"] = 0; + values[valuesById[1] = "CLUSTER_RESOURCE"] = 1; + values[valuesById[2] = "EXECUTION_QUEUE"] = 2; + values[valuesById[3] = "EXECUTION_CLUSTER_LABEL"] = 3; + values[valuesById[4] = "QUALITY_OF_SERVICE_SPECIFICATION"] = 4; + values[valuesById[5] = "PLUGIN_OVERRIDE"] = 5; + values[valuesById[6] = "WORKFLOW_EXECUTION_CONFIG"] = 6; + values[valuesById[7] = "CLUSTER_ASSIGNMENT"] = 7; + return values; + })(); + + admin.TaskResourceSpec = (function() { /** - * Properties of a LaunchPlanCreateRequest. + * Properties of a TaskResourceSpec. * @memberof flyteidl.admin - * @interface ILaunchPlanCreateRequest - * @property {flyteidl.core.IIdentifier|null} [id] LaunchPlanCreateRequest id - * @property {flyteidl.admin.ILaunchPlanSpec|null} [spec] LaunchPlanCreateRequest spec + * @interface ITaskResourceSpec + * @property {string|null} [cpu] TaskResourceSpec cpu + * @property {string|null} [gpu] TaskResourceSpec gpu + * @property {string|null} [memory] TaskResourceSpec memory + * @property {string|null} [storage] TaskResourceSpec storage + * @property {string|null} [ephemeralStorage] TaskResourceSpec ephemeralStorage */ /** - * Constructs a new LaunchPlanCreateRequest. + * Constructs a new TaskResourceSpec. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanCreateRequest. - * @implements ILaunchPlanCreateRequest + * @classdesc Represents a TaskResourceSpec. + * @implements ITaskResourceSpec * @constructor - * @param {flyteidl.admin.ILaunchPlanCreateRequest=} [properties] Properties to set + * @param {flyteidl.admin.ITaskResourceSpec=} [properties] Properties to set */ - function LaunchPlanCreateRequest(properties) { + function TaskResourceSpec(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35207,75 +35255,114 @@ } /** - * LaunchPlanCreateRequest id. - * @member {flyteidl.core.IIdentifier|null|undefined} id - * @memberof flyteidl.admin.LaunchPlanCreateRequest + * TaskResourceSpec cpu. + * @member {string} cpu + * @memberof flyteidl.admin.TaskResourceSpec * @instance */ - LaunchPlanCreateRequest.prototype.id = null; + TaskResourceSpec.prototype.cpu = ""; /** - * LaunchPlanCreateRequest spec. - * @member {flyteidl.admin.ILaunchPlanSpec|null|undefined} spec - * @memberof flyteidl.admin.LaunchPlanCreateRequest + * TaskResourceSpec gpu. + * @member {string} gpu + * @memberof flyteidl.admin.TaskResourceSpec * @instance */ - LaunchPlanCreateRequest.prototype.spec = null; + TaskResourceSpec.prototype.gpu = ""; /** - * Creates a new LaunchPlanCreateRequest instance using the specified properties. + * TaskResourceSpec memory. + * @member {string} memory + * @memberof flyteidl.admin.TaskResourceSpec + * @instance + */ + TaskResourceSpec.prototype.memory = ""; + + /** + * TaskResourceSpec storage. + * @member {string} storage + * @memberof flyteidl.admin.TaskResourceSpec + * @instance + */ + TaskResourceSpec.prototype.storage = ""; + + /** + * TaskResourceSpec ephemeralStorage. + * @member {string} ephemeralStorage + * @memberof flyteidl.admin.TaskResourceSpec + * @instance + */ + TaskResourceSpec.prototype.ephemeralStorage = ""; + + /** + * Creates a new TaskResourceSpec instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanCreateRequest + * @memberof flyteidl.admin.TaskResourceSpec * @static - * @param {flyteidl.admin.ILaunchPlanCreateRequest=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanCreateRequest} LaunchPlanCreateRequest instance + * @param {flyteidl.admin.ITaskResourceSpec=} [properties] Properties to set + * @returns {flyteidl.admin.TaskResourceSpec} TaskResourceSpec instance */ - LaunchPlanCreateRequest.create = function create(properties) { - return new LaunchPlanCreateRequest(properties); + TaskResourceSpec.create = function create(properties) { + return new TaskResourceSpec(properties); }; /** - * Encodes the specified LaunchPlanCreateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateRequest.verify|verify} messages. + * Encodes the specified TaskResourceSpec message. Does not implicitly {@link flyteidl.admin.TaskResourceSpec.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanCreateRequest + * @memberof flyteidl.admin.TaskResourceSpec * @static - * @param {flyteidl.admin.ILaunchPlanCreateRequest} message LaunchPlanCreateRequest message or plain object to encode + * @param {flyteidl.admin.ITaskResourceSpec} message TaskResourceSpec message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanCreateRequest.encode = function encode(message, writer) { + TaskResourceSpec.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && message.hasOwnProperty("id")) - $root.flyteidl.core.Identifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.spec != null && message.hasOwnProperty("spec")) - $root.flyteidl.admin.LaunchPlanSpec.encode(message.spec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.cpu != null && message.hasOwnProperty("cpu")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.cpu); + if (message.gpu != null && message.hasOwnProperty("gpu")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.gpu); + if (message.memory != null && message.hasOwnProperty("memory")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.memory); + if (message.storage != null && message.hasOwnProperty("storage")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.storage); + if (message.ephemeralStorage != null && message.hasOwnProperty("ephemeralStorage")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.ephemeralStorage); return writer; }; /** - * Decodes a LaunchPlanCreateRequest message from the specified reader or buffer. + * Decodes a TaskResourceSpec message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanCreateRequest + * @memberof flyteidl.admin.TaskResourceSpec * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanCreateRequest} LaunchPlanCreateRequest + * @returns {flyteidl.admin.TaskResourceSpec} TaskResourceSpec * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanCreateRequest.decode = function decode(reader, length) { + TaskResourceSpec.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanCreateRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.TaskResourceSpec(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); + message.cpu = reader.string(); break; case 2: - message.spec = $root.flyteidl.admin.LaunchPlanSpec.decode(reader, reader.uint32()); + message.gpu = reader.string(); + break; + case 3: + message.memory = reader.string(); + break; + case 4: + message.storage = reader.string(); + break; + case 5: + message.ephemeralStorage = reader.string(); break; default: reader.skipType(tag & 7); @@ -35286,49 +35373,56 @@ }; /** - * Verifies a LaunchPlanCreateRequest message. + * Verifies a TaskResourceSpec message. * @function verify - * @memberof flyteidl.admin.LaunchPlanCreateRequest + * @memberof flyteidl.admin.TaskResourceSpec * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanCreateRequest.verify = function verify(message) { + TaskResourceSpec.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) { - var error = $root.flyteidl.core.Identifier.verify(message.id); - if (error) - return "id." + error; - } - if (message.spec != null && message.hasOwnProperty("spec")) { - var error = $root.flyteidl.admin.LaunchPlanSpec.verify(message.spec); - if (error) - return "spec." + error; - } + if (message.cpu != null && message.hasOwnProperty("cpu")) + if (!$util.isString(message.cpu)) + return "cpu: string expected"; + if (message.gpu != null && message.hasOwnProperty("gpu")) + if (!$util.isString(message.gpu)) + return "gpu: string expected"; + if (message.memory != null && message.hasOwnProperty("memory")) + if (!$util.isString(message.memory)) + return "memory: string expected"; + if (message.storage != null && message.hasOwnProperty("storage")) + if (!$util.isString(message.storage)) + return "storage: string expected"; + if (message.ephemeralStorage != null && message.hasOwnProperty("ephemeralStorage")) + if (!$util.isString(message.ephemeralStorage)) + return "ephemeralStorage: string expected"; return null; }; - return LaunchPlanCreateRequest; + return TaskResourceSpec; })(); - admin.LaunchPlanCreateResponse = (function() { + admin.TaskResourceAttributes = (function() { /** - * Properties of a LaunchPlanCreateResponse. + * Properties of a TaskResourceAttributes. * @memberof flyteidl.admin - * @interface ILaunchPlanCreateResponse + * @interface ITaskResourceAttributes + * @property {flyteidl.admin.ITaskResourceSpec|null} [defaults] TaskResourceAttributes defaults + * @property {flyteidl.admin.ITaskResourceSpec|null} [limits] TaskResourceAttributes limits */ /** - * Constructs a new LaunchPlanCreateResponse. + * Constructs a new TaskResourceAttributes. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanCreateResponse. - * @implements ILaunchPlanCreateResponse + * @classdesc Represents a TaskResourceAttributes. + * @implements ITaskResourceAttributes * @constructor - * @param {flyteidl.admin.ILaunchPlanCreateResponse=} [properties] Properties to set + * @param {flyteidl.admin.ITaskResourceAttributes=} [properties] Properties to set */ - function LaunchPlanCreateResponse(properties) { + function TaskResourceAttributes(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35336,50 +35430,76 @@ } /** - * Creates a new LaunchPlanCreateResponse instance using the specified properties. + * TaskResourceAttributes defaults. + * @member {flyteidl.admin.ITaskResourceSpec|null|undefined} defaults + * @memberof flyteidl.admin.TaskResourceAttributes + * @instance + */ + TaskResourceAttributes.prototype.defaults = null; + + /** + * TaskResourceAttributes limits. + * @member {flyteidl.admin.ITaskResourceSpec|null|undefined} limits + * @memberof flyteidl.admin.TaskResourceAttributes + * @instance + */ + TaskResourceAttributes.prototype.limits = null; + + /** + * Creates a new TaskResourceAttributes instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanCreateResponse + * @memberof flyteidl.admin.TaskResourceAttributes * @static - * @param {flyteidl.admin.ILaunchPlanCreateResponse=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanCreateResponse} LaunchPlanCreateResponse instance + * @param {flyteidl.admin.ITaskResourceAttributes=} [properties] Properties to set + * @returns {flyteidl.admin.TaskResourceAttributes} TaskResourceAttributes instance */ - LaunchPlanCreateResponse.create = function create(properties) { - return new LaunchPlanCreateResponse(properties); + TaskResourceAttributes.create = function create(properties) { + return new TaskResourceAttributes(properties); }; /** - * Encodes the specified LaunchPlanCreateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateResponse.verify|verify} messages. + * Encodes the specified TaskResourceAttributes message. Does not implicitly {@link flyteidl.admin.TaskResourceAttributes.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanCreateResponse + * @memberof flyteidl.admin.TaskResourceAttributes * @static - * @param {flyteidl.admin.ILaunchPlanCreateResponse} message LaunchPlanCreateResponse message or plain object to encode + * @param {flyteidl.admin.ITaskResourceAttributes} message TaskResourceAttributes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanCreateResponse.encode = function encode(message, writer) { + TaskResourceAttributes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.defaults != null && message.hasOwnProperty("defaults")) + $root.flyteidl.admin.TaskResourceSpec.encode(message.defaults, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.limits != null && message.hasOwnProperty("limits")) + $root.flyteidl.admin.TaskResourceSpec.encode(message.limits, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Decodes a LaunchPlanCreateResponse message from the specified reader or buffer. + * Decodes a TaskResourceAttributes message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanCreateResponse + * @memberof flyteidl.admin.TaskResourceAttributes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanCreateResponse} LaunchPlanCreateResponse + * @returns {flyteidl.admin.TaskResourceAttributes} TaskResourceAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanCreateResponse.decode = function decode(reader, length) { + TaskResourceAttributes.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanCreateResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.TaskResourceAttributes(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.defaults = $root.flyteidl.admin.TaskResourceSpec.decode(reader, reader.uint32()); + break; + case 2: + message.limits = $root.flyteidl.admin.TaskResourceSpec.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -35389,56 +35509,51 @@ }; /** - * Verifies a LaunchPlanCreateResponse message. + * Verifies a TaskResourceAttributes message. * @function verify - * @memberof flyteidl.admin.LaunchPlanCreateResponse + * @memberof flyteidl.admin.TaskResourceAttributes * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanCreateResponse.verify = function verify(message) { + TaskResourceAttributes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.defaults != null && message.hasOwnProperty("defaults")) { + var error = $root.flyteidl.admin.TaskResourceSpec.verify(message.defaults); + if (error) + return "defaults." + error; + } + if (message.limits != null && message.hasOwnProperty("limits")) { + var error = $root.flyteidl.admin.TaskResourceSpec.verify(message.limits); + if (error) + return "limits." + error; + } return null; }; - return LaunchPlanCreateResponse; - })(); - - /** - * LaunchPlanState enum. - * @name flyteidl.admin.LaunchPlanState - * @enum {string} - * @property {number} INACTIVE=0 INACTIVE value - * @property {number} ACTIVE=1 ACTIVE value - */ - admin.LaunchPlanState = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "INACTIVE"] = 0; - values[valuesById[1] = "ACTIVE"] = 1; - return values; + return TaskResourceAttributes; })(); - admin.LaunchPlan = (function() { + admin.ClusterResourceAttributes = (function() { /** - * Properties of a LaunchPlan. + * Properties of a ClusterResourceAttributes. * @memberof flyteidl.admin - * @interface ILaunchPlan - * @property {flyteidl.core.IIdentifier|null} [id] LaunchPlan id - * @property {flyteidl.admin.ILaunchPlanSpec|null} [spec] LaunchPlan spec - * @property {flyteidl.admin.ILaunchPlanClosure|null} [closure] LaunchPlan closure + * @interface IClusterResourceAttributes + * @property {Object.|null} [attributes] ClusterResourceAttributes attributes */ /** - * Constructs a new LaunchPlan. + * Constructs a new ClusterResourceAttributes. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlan. - * @implements ILaunchPlan + * @classdesc Represents a ClusterResourceAttributes. + * @implements IClusterResourceAttributes * @constructor - * @param {flyteidl.admin.ILaunchPlan=} [properties] Properties to set + * @param {flyteidl.admin.IClusterResourceAttributes=} [properties] Properties to set */ - function LaunchPlan(properties) { + function ClusterResourceAttributes(properties) { + this.attributes = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35446,88 +35561,68 @@ } /** - * LaunchPlan id. - * @member {flyteidl.core.IIdentifier|null|undefined} id - * @memberof flyteidl.admin.LaunchPlan - * @instance - */ - LaunchPlan.prototype.id = null; - - /** - * LaunchPlan spec. - * @member {flyteidl.admin.ILaunchPlanSpec|null|undefined} spec - * @memberof flyteidl.admin.LaunchPlan - * @instance - */ - LaunchPlan.prototype.spec = null; - - /** - * LaunchPlan closure. - * @member {flyteidl.admin.ILaunchPlanClosure|null|undefined} closure - * @memberof flyteidl.admin.LaunchPlan + * ClusterResourceAttributes attributes. + * @member {Object.} attributes + * @memberof flyteidl.admin.ClusterResourceAttributes * @instance */ - LaunchPlan.prototype.closure = null; + ClusterResourceAttributes.prototype.attributes = $util.emptyObject; /** - * Creates a new LaunchPlan instance using the specified properties. + * Creates a new ClusterResourceAttributes instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlan + * @memberof flyteidl.admin.ClusterResourceAttributes * @static - * @param {flyteidl.admin.ILaunchPlan=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlan} LaunchPlan instance + * @param {flyteidl.admin.IClusterResourceAttributes=} [properties] Properties to set + * @returns {flyteidl.admin.ClusterResourceAttributes} ClusterResourceAttributes instance */ - LaunchPlan.create = function create(properties) { - return new LaunchPlan(properties); + ClusterResourceAttributes.create = function create(properties) { + return new ClusterResourceAttributes(properties); }; /** - * Encodes the specified LaunchPlan message. Does not implicitly {@link flyteidl.admin.LaunchPlan.verify|verify} messages. + * Encodes the specified ClusterResourceAttributes message. Does not implicitly {@link flyteidl.admin.ClusterResourceAttributes.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlan + * @memberof flyteidl.admin.ClusterResourceAttributes * @static - * @param {flyteidl.admin.ILaunchPlan} message LaunchPlan message or plain object to encode + * @param {flyteidl.admin.IClusterResourceAttributes} message ClusterResourceAttributes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlan.encode = function encode(message, writer) { + ClusterResourceAttributes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && message.hasOwnProperty("id")) - $root.flyteidl.core.Identifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.spec != null && message.hasOwnProperty("spec")) - $root.flyteidl.admin.LaunchPlanSpec.encode(message.spec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.closure != null && message.hasOwnProperty("closure")) - $root.flyteidl.admin.LaunchPlanClosure.encode(message.closure, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.attributes != null && message.hasOwnProperty("attributes")) + for (var keys = Object.keys(message.attributes), i = 0; i < keys.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.attributes[keys[i]]).ldelim(); return writer; }; /** - * Decodes a LaunchPlan message from the specified reader or buffer. + * Decodes a ClusterResourceAttributes message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlan + * @memberof flyteidl.admin.ClusterResourceAttributes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlan} LaunchPlan + * @returns {flyteidl.admin.ClusterResourceAttributes} ClusterResourceAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlan.decode = function decode(reader, length) { + ClusterResourceAttributes.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlan(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ClusterResourceAttributes(), key; while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); - break; - case 2: - message.spec = $root.flyteidl.admin.LaunchPlanSpec.decode(reader, reader.uint32()); - break; - case 3: - message.closure = $root.flyteidl.admin.LaunchPlanClosure.decode(reader, reader.uint32()); + reader.skip().pos++; + if (message.attributes === $util.emptyObject) + message.attributes = {}; + key = reader.string(); + reader.pos++; + message.attributes[key] = reader.string(); break; default: reader.skipType(tag & 7); @@ -35538,57 +35633,49 @@ }; /** - * Verifies a LaunchPlan message. + * Verifies a ClusterResourceAttributes message. * @function verify - * @memberof flyteidl.admin.LaunchPlan + * @memberof flyteidl.admin.ClusterResourceAttributes * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlan.verify = function verify(message) { + ClusterResourceAttributes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) { - var error = $root.flyteidl.core.Identifier.verify(message.id); - if (error) - return "id." + error; - } - if (message.spec != null && message.hasOwnProperty("spec")) { - var error = $root.flyteidl.admin.LaunchPlanSpec.verify(message.spec); - if (error) - return "spec." + error; - } - if (message.closure != null && message.hasOwnProperty("closure")) { - var error = $root.flyteidl.admin.LaunchPlanClosure.verify(message.closure); - if (error) - return "closure." + error; + if (message.attributes != null && message.hasOwnProperty("attributes")) { + if (!$util.isObject(message.attributes)) + return "attributes: object expected"; + var key = Object.keys(message.attributes); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.attributes[key[i]])) + return "attributes: string{k:string} expected"; } return null; }; - return LaunchPlan; + return ClusterResourceAttributes; })(); - admin.LaunchPlanList = (function() { + admin.ExecutionQueueAttributes = (function() { /** - * Properties of a LaunchPlanList. + * Properties of an ExecutionQueueAttributes. * @memberof flyteidl.admin - * @interface ILaunchPlanList - * @property {Array.|null} [launchPlans] LaunchPlanList launchPlans - * @property {string|null} [token] LaunchPlanList token + * @interface IExecutionQueueAttributes + * @property {Array.|null} [tags] ExecutionQueueAttributes tags */ /** - * Constructs a new LaunchPlanList. + * Constructs a new ExecutionQueueAttributes. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanList. - * @implements ILaunchPlanList + * @classdesc Represents an ExecutionQueueAttributes. + * @implements IExecutionQueueAttributes * @constructor - * @param {flyteidl.admin.ILaunchPlanList=} [properties] Properties to set + * @param {flyteidl.admin.IExecutionQueueAttributes=} [properties] Properties to set */ - function LaunchPlanList(properties) { - this.launchPlans = []; + function ExecutionQueueAttributes(properties) { + this.tags = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35596,78 +35683,65 @@ } /** - * LaunchPlanList launchPlans. - * @member {Array.} launchPlans - * @memberof flyteidl.admin.LaunchPlanList - * @instance - */ - LaunchPlanList.prototype.launchPlans = $util.emptyArray; - - /** - * LaunchPlanList token. - * @member {string} token - * @memberof flyteidl.admin.LaunchPlanList + * ExecutionQueueAttributes tags. + * @member {Array.} tags + * @memberof flyteidl.admin.ExecutionQueueAttributes * @instance */ - LaunchPlanList.prototype.token = ""; + ExecutionQueueAttributes.prototype.tags = $util.emptyArray; /** - * Creates a new LaunchPlanList instance using the specified properties. + * Creates a new ExecutionQueueAttributes instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanList + * @memberof flyteidl.admin.ExecutionQueueAttributes * @static - * @param {flyteidl.admin.ILaunchPlanList=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanList} LaunchPlanList instance + * @param {flyteidl.admin.IExecutionQueueAttributes=} [properties] Properties to set + * @returns {flyteidl.admin.ExecutionQueueAttributes} ExecutionQueueAttributes instance */ - LaunchPlanList.create = function create(properties) { - return new LaunchPlanList(properties); + ExecutionQueueAttributes.create = function create(properties) { + return new ExecutionQueueAttributes(properties); }; /** - * Encodes the specified LaunchPlanList message. Does not implicitly {@link flyteidl.admin.LaunchPlanList.verify|verify} messages. + * Encodes the specified ExecutionQueueAttributes message. Does not implicitly {@link flyteidl.admin.ExecutionQueueAttributes.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanList + * @memberof flyteidl.admin.ExecutionQueueAttributes * @static - * @param {flyteidl.admin.ILaunchPlanList} message LaunchPlanList message or plain object to encode + * @param {flyteidl.admin.IExecutionQueueAttributes} message ExecutionQueueAttributes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanList.encode = function encode(message, writer) { + ExecutionQueueAttributes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.launchPlans != null && message.launchPlans.length) - for (var i = 0; i < message.launchPlans.length; ++i) - $root.flyteidl.admin.LaunchPlan.encode(message.launchPlans[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.token != null && message.hasOwnProperty("token")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.token); + if (message.tags != null && message.tags.length) + for (var i = 0; i < message.tags.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.tags[i]); return writer; }; /** - * Decodes a LaunchPlanList message from the specified reader or buffer. + * Decodes an ExecutionQueueAttributes message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanList + * @memberof flyteidl.admin.ExecutionQueueAttributes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanList} LaunchPlanList + * @returns {flyteidl.admin.ExecutionQueueAttributes} ExecutionQueueAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanList.decode = function decode(reader, length) { + ExecutionQueueAttributes.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanList(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionQueueAttributes(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.launchPlans && message.launchPlans.length)) - message.launchPlans = []; - message.launchPlans.push($root.flyteidl.admin.LaunchPlan.decode(reader, reader.uint32())); - break; - case 2: - message.token = reader.string(); + if (!(message.tags && message.tags.length)) + message.tags = []; + message.tags.push(reader.string()); break; default: reader.skipType(tag & 7); @@ -35678,53 +35752,47 @@ }; /** - * Verifies a LaunchPlanList message. + * Verifies an ExecutionQueueAttributes message. * @function verify - * @memberof flyteidl.admin.LaunchPlanList + * @memberof flyteidl.admin.ExecutionQueueAttributes * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanList.verify = function verify(message) { + ExecutionQueueAttributes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.launchPlans != null && message.hasOwnProperty("launchPlans")) { - if (!Array.isArray(message.launchPlans)) - return "launchPlans: array expected"; - for (var i = 0; i < message.launchPlans.length; ++i) { - var error = $root.flyteidl.admin.LaunchPlan.verify(message.launchPlans[i]); - if (error) - return "launchPlans." + error; - } + if (message.tags != null && message.hasOwnProperty("tags")) { + if (!Array.isArray(message.tags)) + return "tags: array expected"; + for (var i = 0; i < message.tags.length; ++i) + if (!$util.isString(message.tags[i])) + return "tags: string[] expected"; } - if (message.token != null && message.hasOwnProperty("token")) - if (!$util.isString(message.token)) - return "token: string expected"; return null; }; - return LaunchPlanList; + return ExecutionQueueAttributes; })(); - admin.Auth = (function() { + admin.ExecutionClusterLabel = (function() { /** - * Properties of an Auth. + * Properties of an ExecutionClusterLabel. * @memberof flyteidl.admin - * @interface IAuth - * @property {string|null} [assumableIamRole] Auth assumableIamRole - * @property {string|null} [kubernetesServiceAccount] Auth kubernetesServiceAccount + * @interface IExecutionClusterLabel + * @property {string|null} [value] ExecutionClusterLabel value */ /** - * Constructs a new Auth. + * Constructs a new ExecutionClusterLabel. * @memberof flyteidl.admin - * @classdesc Represents an Auth. - * @implements IAuth + * @classdesc Represents an ExecutionClusterLabel. + * @implements IExecutionClusterLabel * @constructor - * @param {flyteidl.admin.IAuth=} [properties] Properties to set + * @param {flyteidl.admin.IExecutionClusterLabel=} [properties] Properties to set */ - function Auth(properties) { + function ExecutionClusterLabel(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35732,75 +35800,62 @@ } /** - * Auth assumableIamRole. - * @member {string} assumableIamRole - * @memberof flyteidl.admin.Auth - * @instance - */ - Auth.prototype.assumableIamRole = ""; - - /** - * Auth kubernetesServiceAccount. - * @member {string} kubernetesServiceAccount - * @memberof flyteidl.admin.Auth + * ExecutionClusterLabel value. + * @member {string} value + * @memberof flyteidl.admin.ExecutionClusterLabel * @instance */ - Auth.prototype.kubernetesServiceAccount = ""; + ExecutionClusterLabel.prototype.value = ""; /** - * Creates a new Auth instance using the specified properties. + * Creates a new ExecutionClusterLabel instance using the specified properties. * @function create - * @memberof flyteidl.admin.Auth + * @memberof flyteidl.admin.ExecutionClusterLabel * @static - * @param {flyteidl.admin.IAuth=} [properties] Properties to set - * @returns {flyteidl.admin.Auth} Auth instance + * @param {flyteidl.admin.IExecutionClusterLabel=} [properties] Properties to set + * @returns {flyteidl.admin.ExecutionClusterLabel} ExecutionClusterLabel instance */ - Auth.create = function create(properties) { - return new Auth(properties); + ExecutionClusterLabel.create = function create(properties) { + return new ExecutionClusterLabel(properties); }; /** - * Encodes the specified Auth message. Does not implicitly {@link flyteidl.admin.Auth.verify|verify} messages. + * Encodes the specified ExecutionClusterLabel message. Does not implicitly {@link flyteidl.admin.ExecutionClusterLabel.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.Auth + * @memberof flyteidl.admin.ExecutionClusterLabel * @static - * @param {flyteidl.admin.IAuth} message Auth message or plain object to encode + * @param {flyteidl.admin.IExecutionClusterLabel} message ExecutionClusterLabel message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Auth.encode = function encode(message, writer) { + ExecutionClusterLabel.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.assumableIamRole != null && message.hasOwnProperty("assumableIamRole")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.assumableIamRole); - if (message.kubernetesServiceAccount != null && message.hasOwnProperty("kubernetesServiceAccount")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.kubernetesServiceAccount); + if (message.value != null && message.hasOwnProperty("value")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); return writer; }; /** - * Decodes an Auth message from the specified reader or buffer. + * Decodes an ExecutionClusterLabel message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.Auth + * @memberof flyteidl.admin.ExecutionClusterLabel * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.Auth} Auth + * @returns {flyteidl.admin.ExecutionClusterLabel} ExecutionClusterLabel * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Auth.decode = function decode(reader, length) { + ExecutionClusterLabel.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.Auth(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionClusterLabel(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.assumableIamRole = reader.string(); - break; - case 2: - message.kubernetesServiceAccount = reader.string(); + message.value = reader.string(); break; default: reader.skipType(tag & 7); @@ -35811,61 +35866,46 @@ }; /** - * Verifies an Auth message. + * Verifies an ExecutionClusterLabel message. * @function verify - * @memberof flyteidl.admin.Auth + * @memberof flyteidl.admin.ExecutionClusterLabel * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Auth.verify = function verify(message) { + ExecutionClusterLabel.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.assumableIamRole != null && message.hasOwnProperty("assumableIamRole")) - if (!$util.isString(message.assumableIamRole)) - return "assumableIamRole: string expected"; - if (message.kubernetesServiceAccount != null && message.hasOwnProperty("kubernetesServiceAccount")) - if (!$util.isString(message.kubernetesServiceAccount)) - return "kubernetesServiceAccount: string expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!$util.isString(message.value)) + return "value: string expected"; return null; }; - return Auth; + return ExecutionClusterLabel; })(); - admin.LaunchPlanSpec = (function() { + admin.PluginOverride = (function() { /** - * Properties of a LaunchPlanSpec. + * Properties of a PluginOverride. * @memberof flyteidl.admin - * @interface ILaunchPlanSpec - * @property {flyteidl.core.IIdentifier|null} [workflowId] LaunchPlanSpec workflowId - * @property {flyteidl.admin.ILaunchPlanMetadata|null} [entityMetadata] LaunchPlanSpec entityMetadata - * @property {flyteidl.core.IParameterMap|null} [defaultInputs] LaunchPlanSpec defaultInputs - * @property {flyteidl.core.ILiteralMap|null} [fixedInputs] LaunchPlanSpec fixedInputs - * @property {string|null} [role] LaunchPlanSpec role - * @property {flyteidl.admin.ILabels|null} [labels] LaunchPlanSpec labels - * @property {flyteidl.admin.IAnnotations|null} [annotations] LaunchPlanSpec annotations - * @property {flyteidl.admin.IAuth|null} [auth] LaunchPlanSpec auth - * @property {flyteidl.admin.IAuthRole|null} [authRole] LaunchPlanSpec authRole - * @property {flyteidl.core.ISecurityContext|null} [securityContext] LaunchPlanSpec securityContext - * @property {flyteidl.core.IQualityOfService|null} [qualityOfService] LaunchPlanSpec qualityOfService - * @property {flyteidl.admin.IRawOutputDataConfig|null} [rawOutputDataConfig] LaunchPlanSpec rawOutputDataConfig - * @property {number|null} [maxParallelism] LaunchPlanSpec maxParallelism - * @property {google.protobuf.IBoolValue|null} [interruptible] LaunchPlanSpec interruptible - * @property {boolean|null} [overwriteCache] LaunchPlanSpec overwriteCache - * @property {flyteidl.admin.IEnvs|null} [envs] LaunchPlanSpec envs + * @interface IPluginOverride + * @property {string|null} [taskType] PluginOverride taskType + * @property {Array.|null} [pluginId] PluginOverride pluginId + * @property {flyteidl.admin.PluginOverride.MissingPluginBehavior|null} [missingPluginBehavior] PluginOverride missingPluginBehavior */ /** - * Constructs a new LaunchPlanSpec. + * Constructs a new PluginOverride. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanSpec. - * @implements ILaunchPlanSpec + * @classdesc Represents a PluginOverride. + * @implements IPluginOverride * @constructor - * @param {flyteidl.admin.ILaunchPlanSpec=} [properties] Properties to set + * @param {flyteidl.admin.IPluginOverride=} [properties] Properties to set */ - function LaunchPlanSpec(properties) { + function PluginOverride(properties) { + this.pluginId = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -35873,257 +35913,234 @@ } /** - * LaunchPlanSpec workflowId. - * @member {flyteidl.core.IIdentifier|null|undefined} workflowId - * @memberof flyteidl.admin.LaunchPlanSpec + * PluginOverride taskType. + * @member {string} taskType + * @memberof flyteidl.admin.PluginOverride * @instance */ - LaunchPlanSpec.prototype.workflowId = null; + PluginOverride.prototype.taskType = ""; /** - * LaunchPlanSpec entityMetadata. - * @member {flyteidl.admin.ILaunchPlanMetadata|null|undefined} entityMetadata - * @memberof flyteidl.admin.LaunchPlanSpec + * PluginOverride pluginId. + * @member {Array.} pluginId + * @memberof flyteidl.admin.PluginOverride * @instance */ - LaunchPlanSpec.prototype.entityMetadata = null; + PluginOverride.prototype.pluginId = $util.emptyArray; /** - * LaunchPlanSpec defaultInputs. - * @member {flyteidl.core.IParameterMap|null|undefined} defaultInputs - * @memberof flyteidl.admin.LaunchPlanSpec + * PluginOverride missingPluginBehavior. + * @member {flyteidl.admin.PluginOverride.MissingPluginBehavior} missingPluginBehavior + * @memberof flyteidl.admin.PluginOverride * @instance */ - LaunchPlanSpec.prototype.defaultInputs = null; + PluginOverride.prototype.missingPluginBehavior = 0; /** - * LaunchPlanSpec fixedInputs. - * @member {flyteidl.core.ILiteralMap|null|undefined} fixedInputs - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * Creates a new PluginOverride instance using the specified properties. + * @function create + * @memberof flyteidl.admin.PluginOverride + * @static + * @param {flyteidl.admin.IPluginOverride=} [properties] Properties to set + * @returns {flyteidl.admin.PluginOverride} PluginOverride instance */ - LaunchPlanSpec.prototype.fixedInputs = null; + PluginOverride.create = function create(properties) { + return new PluginOverride(properties); + }; /** - * LaunchPlanSpec role. - * @member {string} role - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * Encodes the specified PluginOverride message. Does not implicitly {@link flyteidl.admin.PluginOverride.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.PluginOverride + * @static + * @param {flyteidl.admin.IPluginOverride} message PluginOverride message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - LaunchPlanSpec.prototype.role = ""; + PluginOverride.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.taskType != null && message.hasOwnProperty("taskType")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.taskType); + if (message.pluginId != null && message.pluginId.length) + for (var i = 0; i < message.pluginId.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.pluginId[i]); + if (message.missingPluginBehavior != null && message.hasOwnProperty("missingPluginBehavior")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.missingPluginBehavior); + return writer; + }; /** - * LaunchPlanSpec labels. - * @member {flyteidl.admin.ILabels|null|undefined} labels - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * Decodes a PluginOverride message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.PluginOverride + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.PluginOverride} PluginOverride + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanSpec.prototype.labels = null; + PluginOverride.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.PluginOverride(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.taskType = reader.string(); + break; + case 2: + if (!(message.pluginId && message.pluginId.length)) + message.pluginId = []; + message.pluginId.push(reader.string()); + break; + case 4: + message.missingPluginBehavior = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * LaunchPlanSpec annotations. - * @member {flyteidl.admin.IAnnotations|null|undefined} annotations - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance - */ - LaunchPlanSpec.prototype.annotations = null; - - /** - * LaunchPlanSpec auth. - * @member {flyteidl.admin.IAuth|null|undefined} auth - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance - */ - LaunchPlanSpec.prototype.auth = null; - - /** - * LaunchPlanSpec authRole. - * @member {flyteidl.admin.IAuthRole|null|undefined} authRole - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance - */ - LaunchPlanSpec.prototype.authRole = null; - - /** - * LaunchPlanSpec securityContext. - * @member {flyteidl.core.ISecurityContext|null|undefined} securityContext - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * Verifies a PluginOverride message. + * @function verify + * @memberof flyteidl.admin.PluginOverride + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanSpec.prototype.securityContext = null; + PluginOverride.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.taskType != null && message.hasOwnProperty("taskType")) + if (!$util.isString(message.taskType)) + return "taskType: string expected"; + if (message.pluginId != null && message.hasOwnProperty("pluginId")) { + if (!Array.isArray(message.pluginId)) + return "pluginId: array expected"; + for (var i = 0; i < message.pluginId.length; ++i) + if (!$util.isString(message.pluginId[i])) + return "pluginId: string[] expected"; + } + if (message.missingPluginBehavior != null && message.hasOwnProperty("missingPluginBehavior")) + switch (message.missingPluginBehavior) { + default: + return "missingPluginBehavior: enum value expected"; + case 0: + case 1: + break; + } + return null; + }; /** - * LaunchPlanSpec qualityOfService. - * @member {flyteidl.core.IQualityOfService|null|undefined} qualityOfService - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * MissingPluginBehavior enum. + * @name flyteidl.admin.PluginOverride.MissingPluginBehavior + * @enum {string} + * @property {number} FAIL=0 FAIL value + * @property {number} USE_DEFAULT=1 USE_DEFAULT value */ - LaunchPlanSpec.prototype.qualityOfService = null; + PluginOverride.MissingPluginBehavior = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FAIL"] = 0; + values[valuesById[1] = "USE_DEFAULT"] = 1; + return values; + })(); - /** - * LaunchPlanSpec rawOutputDataConfig. - * @member {flyteidl.admin.IRawOutputDataConfig|null|undefined} rawOutputDataConfig - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance - */ - LaunchPlanSpec.prototype.rawOutputDataConfig = null; + return PluginOverride; + })(); - /** - * LaunchPlanSpec maxParallelism. - * @member {number} maxParallelism - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance - */ - LaunchPlanSpec.prototype.maxParallelism = 0; + admin.PluginOverrides = (function() { /** - * LaunchPlanSpec interruptible. - * @member {google.protobuf.IBoolValue|null|undefined} interruptible - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * Properties of a PluginOverrides. + * @memberof flyteidl.admin + * @interface IPluginOverrides + * @property {Array.|null} [overrides] PluginOverrides overrides */ - LaunchPlanSpec.prototype.interruptible = null; /** - * LaunchPlanSpec overwriteCache. - * @member {boolean} overwriteCache - * @memberof flyteidl.admin.LaunchPlanSpec - * @instance + * Constructs a new PluginOverrides. + * @memberof flyteidl.admin + * @classdesc Represents a PluginOverrides. + * @implements IPluginOverrides + * @constructor + * @param {flyteidl.admin.IPluginOverrides=} [properties] Properties to set */ - LaunchPlanSpec.prototype.overwriteCache = false; + function PluginOverrides(properties) { + this.overrides = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } /** - * LaunchPlanSpec envs. - * @member {flyteidl.admin.IEnvs|null|undefined} envs - * @memberof flyteidl.admin.LaunchPlanSpec + * PluginOverrides overrides. + * @member {Array.} overrides + * @memberof flyteidl.admin.PluginOverrides * @instance */ - LaunchPlanSpec.prototype.envs = null; + PluginOverrides.prototype.overrides = $util.emptyArray; /** - * Creates a new LaunchPlanSpec instance using the specified properties. + * Creates a new PluginOverrides instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanSpec + * @memberof flyteidl.admin.PluginOverrides * @static - * @param {flyteidl.admin.ILaunchPlanSpec=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanSpec} LaunchPlanSpec instance + * @param {flyteidl.admin.IPluginOverrides=} [properties] Properties to set + * @returns {flyteidl.admin.PluginOverrides} PluginOverrides instance */ - LaunchPlanSpec.create = function create(properties) { - return new LaunchPlanSpec(properties); + PluginOverrides.create = function create(properties) { + return new PluginOverrides(properties); }; /** - * Encodes the specified LaunchPlanSpec message. Does not implicitly {@link flyteidl.admin.LaunchPlanSpec.verify|verify} messages. + * Encodes the specified PluginOverrides message. Does not implicitly {@link flyteidl.admin.PluginOverrides.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanSpec + * @memberof flyteidl.admin.PluginOverrides * @static - * @param {flyteidl.admin.ILaunchPlanSpec} message LaunchPlanSpec message or plain object to encode + * @param {flyteidl.admin.IPluginOverrides} message PluginOverrides message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanSpec.encode = function encode(message, writer) { + PluginOverrides.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.workflowId != null && message.hasOwnProperty("workflowId")) - $root.flyteidl.core.Identifier.encode(message.workflowId, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.entityMetadata != null && message.hasOwnProperty("entityMetadata")) - $root.flyteidl.admin.LaunchPlanMetadata.encode(message.entityMetadata, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.defaultInputs != null && message.hasOwnProperty("defaultInputs")) - $root.flyteidl.core.ParameterMap.encode(message.defaultInputs, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.fixedInputs != null && message.hasOwnProperty("fixedInputs")) - $root.flyteidl.core.LiteralMap.encode(message.fixedInputs, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.role != null && message.hasOwnProperty("role")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.role); - if (message.labels != null && message.hasOwnProperty("labels")) - $root.flyteidl.admin.Labels.encode(message.labels, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.annotations != null && message.hasOwnProperty("annotations")) - $root.flyteidl.admin.Annotations.encode(message.annotations, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.auth != null && message.hasOwnProperty("auth")) - $root.flyteidl.admin.Auth.encode(message.auth, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.authRole != null && message.hasOwnProperty("authRole")) - $root.flyteidl.admin.AuthRole.encode(message.authRole, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.securityContext != null && message.hasOwnProperty("securityContext")) - $root.flyteidl.core.SecurityContext.encode(message.securityContext, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); - if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) - $root.flyteidl.core.QualityOfService.encode(message.qualityOfService, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); - if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) - $root.flyteidl.admin.RawOutputDataConfig.encode(message.rawOutputDataConfig, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); - if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) - writer.uint32(/* id 18, wireType 0 =*/144).int32(message.maxParallelism); - if (message.interruptible != null && message.hasOwnProperty("interruptible")) - $root.google.protobuf.BoolValue.encode(message.interruptible, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); - if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) - writer.uint32(/* id 20, wireType 0 =*/160).bool(message.overwriteCache); - if (message.envs != null && message.hasOwnProperty("envs")) - $root.flyteidl.admin.Envs.encode(message.envs, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim(); + if (message.overrides != null && message.overrides.length) + for (var i = 0; i < message.overrides.length; ++i) + $root.flyteidl.admin.PluginOverride.encode(message.overrides[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Decodes a LaunchPlanSpec message from the specified reader or buffer. + * Decodes a PluginOverrides message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanSpec + * @memberof flyteidl.admin.PluginOverrides * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanSpec} LaunchPlanSpec + * @returns {flyteidl.admin.PluginOverrides} PluginOverrides * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanSpec.decode = function decode(reader, length) { + PluginOverrides.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanSpec(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.PluginOverrides(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.workflowId = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); - break; - case 2: - message.entityMetadata = $root.flyteidl.admin.LaunchPlanMetadata.decode(reader, reader.uint32()); - break; - case 3: - message.defaultInputs = $root.flyteidl.core.ParameterMap.decode(reader, reader.uint32()); - break; - case 4: - message.fixedInputs = $root.flyteidl.core.LiteralMap.decode(reader, reader.uint32()); - break; - case 5: - message.role = reader.string(); - break; - case 6: - message.labels = $root.flyteidl.admin.Labels.decode(reader, reader.uint32()); - break; - case 7: - message.annotations = $root.flyteidl.admin.Annotations.decode(reader, reader.uint32()); - break; - case 8: - message.auth = $root.flyteidl.admin.Auth.decode(reader, reader.uint32()); - break; - case 9: - message.authRole = $root.flyteidl.admin.AuthRole.decode(reader, reader.uint32()); - break; - case 10: - message.securityContext = $root.flyteidl.core.SecurityContext.decode(reader, reader.uint32()); - break; - case 16: - message.qualityOfService = $root.flyteidl.core.QualityOfService.decode(reader, reader.uint32()); - break; - case 17: - message.rawOutputDataConfig = $root.flyteidl.admin.RawOutputDataConfig.decode(reader, reader.uint32()); - break; - case 18: - message.maxParallelism = reader.int32(); - break; - case 19: - message.interruptible = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); - break; - case 20: - message.overwriteCache = reader.bool(); - break; - case 21: - message.envs = $root.flyteidl.admin.Envs.decode(reader, reader.uint32()); + if (!(message.overrides && message.overrides.length)) + message.overrides = []; + message.overrides.push($root.flyteidl.admin.PluginOverride.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -36134,118 +36151,56 @@ }; /** - * Verifies a LaunchPlanSpec message. + * Verifies a PluginOverrides message. * @function verify - * @memberof flyteidl.admin.LaunchPlanSpec + * @memberof flyteidl.admin.PluginOverrides * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanSpec.verify = function verify(message) { + PluginOverrides.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.workflowId != null && message.hasOwnProperty("workflowId")) { - var error = $root.flyteidl.core.Identifier.verify(message.workflowId); - if (error) - return "workflowId." + error; - } - if (message.entityMetadata != null && message.hasOwnProperty("entityMetadata")) { - var error = $root.flyteidl.admin.LaunchPlanMetadata.verify(message.entityMetadata); - if (error) - return "entityMetadata." + error; - } - if (message.defaultInputs != null && message.hasOwnProperty("defaultInputs")) { - var error = $root.flyteidl.core.ParameterMap.verify(message.defaultInputs); - if (error) - return "defaultInputs." + error; - } - if (message.fixedInputs != null && message.hasOwnProperty("fixedInputs")) { - var error = $root.flyteidl.core.LiteralMap.verify(message.fixedInputs); - if (error) - return "fixedInputs." + error; - } - if (message.role != null && message.hasOwnProperty("role")) - if (!$util.isString(message.role)) - return "role: string expected"; - if (message.labels != null && message.hasOwnProperty("labels")) { - var error = $root.flyteidl.admin.Labels.verify(message.labels); - if (error) - return "labels." + error; - } - if (message.annotations != null && message.hasOwnProperty("annotations")) { - var error = $root.flyteidl.admin.Annotations.verify(message.annotations); - if (error) - return "annotations." + error; - } - if (message.auth != null && message.hasOwnProperty("auth")) { - var error = $root.flyteidl.admin.Auth.verify(message.auth); - if (error) - return "auth." + error; - } - if (message.authRole != null && message.hasOwnProperty("authRole")) { - var error = $root.flyteidl.admin.AuthRole.verify(message.authRole); - if (error) - return "authRole." + error; - } - if (message.securityContext != null && message.hasOwnProperty("securityContext")) { - var error = $root.flyteidl.core.SecurityContext.verify(message.securityContext); - if (error) - return "securityContext." + error; - } - if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) { - var error = $root.flyteidl.core.QualityOfService.verify(message.qualityOfService); - if (error) - return "qualityOfService." + error; - } - if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) { - var error = $root.flyteidl.admin.RawOutputDataConfig.verify(message.rawOutputDataConfig); - if (error) - return "rawOutputDataConfig." + error; - } - if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) - if (!$util.isInteger(message.maxParallelism)) - return "maxParallelism: integer expected"; - if (message.interruptible != null && message.hasOwnProperty("interruptible")) { - var error = $root.google.protobuf.BoolValue.verify(message.interruptible); - if (error) - return "interruptible." + error; - } - if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) - if (typeof message.overwriteCache !== "boolean") - return "overwriteCache: boolean expected"; - if (message.envs != null && message.hasOwnProperty("envs")) { - var error = $root.flyteidl.admin.Envs.verify(message.envs); - if (error) - return "envs." + error; + if (message.overrides != null && message.hasOwnProperty("overrides")) { + if (!Array.isArray(message.overrides)) + return "overrides: array expected"; + for (var i = 0; i < message.overrides.length; ++i) { + var error = $root.flyteidl.admin.PluginOverride.verify(message.overrides[i]); + if (error) + return "overrides." + error; + } } return null; }; - return LaunchPlanSpec; + return PluginOverrides; })(); - admin.LaunchPlanClosure = (function() { + admin.WorkflowExecutionConfig = (function() { /** - * Properties of a LaunchPlanClosure. + * Properties of a WorkflowExecutionConfig. * @memberof flyteidl.admin - * @interface ILaunchPlanClosure - * @property {flyteidl.admin.LaunchPlanState|null} [state] LaunchPlanClosure state - * @property {flyteidl.core.IParameterMap|null} [expectedInputs] LaunchPlanClosure expectedInputs - * @property {flyteidl.core.IVariableMap|null} [expectedOutputs] LaunchPlanClosure expectedOutputs - * @property {google.protobuf.ITimestamp|null} [createdAt] LaunchPlanClosure createdAt - * @property {google.protobuf.ITimestamp|null} [updatedAt] LaunchPlanClosure updatedAt + * @interface IWorkflowExecutionConfig + * @property {number|null} [maxParallelism] WorkflowExecutionConfig maxParallelism + * @property {flyteidl.core.ISecurityContext|null} [securityContext] WorkflowExecutionConfig securityContext + * @property {flyteidl.admin.IRawOutputDataConfig|null} [rawOutputDataConfig] WorkflowExecutionConfig rawOutputDataConfig + * @property {flyteidl.admin.ILabels|null} [labels] WorkflowExecutionConfig labels + * @property {flyteidl.admin.IAnnotations|null} [annotations] WorkflowExecutionConfig annotations + * @property {google.protobuf.IBoolValue|null} [interruptible] WorkflowExecutionConfig interruptible + * @property {boolean|null} [overwriteCache] WorkflowExecutionConfig overwriteCache + * @property {flyteidl.admin.IEnvs|null} [envs] WorkflowExecutionConfig envs */ /** - * Constructs a new LaunchPlanClosure. + * Constructs a new WorkflowExecutionConfig. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanClosure. - * @implements ILaunchPlanClosure + * @classdesc Represents a WorkflowExecutionConfig. + * @implements IWorkflowExecutionConfig * @constructor - * @param {flyteidl.admin.ILaunchPlanClosure=} [properties] Properties to set + * @param {flyteidl.admin.IWorkflowExecutionConfig=} [properties] Properties to set */ - function LaunchPlanClosure(properties) { + function WorkflowExecutionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36253,114 +36208,153 @@ } /** - * LaunchPlanClosure state. - * @member {flyteidl.admin.LaunchPlanState} state - * @memberof flyteidl.admin.LaunchPlanClosure + * WorkflowExecutionConfig maxParallelism. + * @member {number} maxParallelism + * @memberof flyteidl.admin.WorkflowExecutionConfig * @instance */ - LaunchPlanClosure.prototype.state = 0; + WorkflowExecutionConfig.prototype.maxParallelism = 0; /** - * LaunchPlanClosure expectedInputs. - * @member {flyteidl.core.IParameterMap|null|undefined} expectedInputs - * @memberof flyteidl.admin.LaunchPlanClosure + * WorkflowExecutionConfig securityContext. + * @member {flyteidl.core.ISecurityContext|null|undefined} securityContext + * @memberof flyteidl.admin.WorkflowExecutionConfig * @instance */ - LaunchPlanClosure.prototype.expectedInputs = null; + WorkflowExecutionConfig.prototype.securityContext = null; /** - * LaunchPlanClosure expectedOutputs. - * @member {flyteidl.core.IVariableMap|null|undefined} expectedOutputs - * @memberof flyteidl.admin.LaunchPlanClosure + * WorkflowExecutionConfig rawOutputDataConfig. + * @member {flyteidl.admin.IRawOutputDataConfig|null|undefined} rawOutputDataConfig + * @memberof flyteidl.admin.WorkflowExecutionConfig * @instance */ - LaunchPlanClosure.prototype.expectedOutputs = null; + WorkflowExecutionConfig.prototype.rawOutputDataConfig = null; /** - * LaunchPlanClosure createdAt. - * @member {google.protobuf.ITimestamp|null|undefined} createdAt - * @memberof flyteidl.admin.LaunchPlanClosure + * WorkflowExecutionConfig labels. + * @member {flyteidl.admin.ILabels|null|undefined} labels + * @memberof flyteidl.admin.WorkflowExecutionConfig * @instance */ - LaunchPlanClosure.prototype.createdAt = null; + WorkflowExecutionConfig.prototype.labels = null; /** - * LaunchPlanClosure updatedAt. - * @member {google.protobuf.ITimestamp|null|undefined} updatedAt - * @memberof flyteidl.admin.LaunchPlanClosure + * WorkflowExecutionConfig annotations. + * @member {flyteidl.admin.IAnnotations|null|undefined} annotations + * @memberof flyteidl.admin.WorkflowExecutionConfig * @instance */ - LaunchPlanClosure.prototype.updatedAt = null; + WorkflowExecutionConfig.prototype.annotations = null; /** - * Creates a new LaunchPlanClosure instance using the specified properties. + * WorkflowExecutionConfig interruptible. + * @member {google.protobuf.IBoolValue|null|undefined} interruptible + * @memberof flyteidl.admin.WorkflowExecutionConfig + * @instance + */ + WorkflowExecutionConfig.prototype.interruptible = null; + + /** + * WorkflowExecutionConfig overwriteCache. + * @member {boolean} overwriteCache + * @memberof flyteidl.admin.WorkflowExecutionConfig + * @instance + */ + WorkflowExecutionConfig.prototype.overwriteCache = false; + + /** + * WorkflowExecutionConfig envs. + * @member {flyteidl.admin.IEnvs|null|undefined} envs + * @memberof flyteidl.admin.WorkflowExecutionConfig + * @instance + */ + WorkflowExecutionConfig.prototype.envs = null; + + /** + * Creates a new WorkflowExecutionConfig instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanClosure + * @memberof flyteidl.admin.WorkflowExecutionConfig * @static - * @param {flyteidl.admin.ILaunchPlanClosure=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanClosure} LaunchPlanClosure instance + * @param {flyteidl.admin.IWorkflowExecutionConfig=} [properties] Properties to set + * @returns {flyteidl.admin.WorkflowExecutionConfig} WorkflowExecutionConfig instance */ - LaunchPlanClosure.create = function create(properties) { - return new LaunchPlanClosure(properties); + WorkflowExecutionConfig.create = function create(properties) { + return new WorkflowExecutionConfig(properties); }; /** - * Encodes the specified LaunchPlanClosure message. Does not implicitly {@link flyteidl.admin.LaunchPlanClosure.verify|verify} messages. + * Encodes the specified WorkflowExecutionConfig message. Does not implicitly {@link flyteidl.admin.WorkflowExecutionConfig.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanClosure + * @memberof flyteidl.admin.WorkflowExecutionConfig * @static - * @param {flyteidl.admin.ILaunchPlanClosure} message LaunchPlanClosure message or plain object to encode + * @param {flyteidl.admin.IWorkflowExecutionConfig} message WorkflowExecutionConfig message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanClosure.encode = function encode(message, writer) { + WorkflowExecutionConfig.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.state != null && message.hasOwnProperty("state")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); - if (message.expectedInputs != null && message.hasOwnProperty("expectedInputs")) - $root.flyteidl.core.ParameterMap.encode(message.expectedInputs, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.expectedOutputs != null && message.hasOwnProperty("expectedOutputs")) - $root.flyteidl.core.VariableMap.encode(message.expectedOutputs, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.createdAt != null && message.hasOwnProperty("createdAt")) - $root.google.protobuf.Timestamp.encode(message.createdAt, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.updatedAt != null && message.hasOwnProperty("updatedAt")) - $root.google.protobuf.Timestamp.encode(message.updatedAt, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.maxParallelism); + if (message.securityContext != null && message.hasOwnProperty("securityContext")) + $root.flyteidl.core.SecurityContext.encode(message.securityContext, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) + $root.flyteidl.admin.RawOutputDataConfig.encode(message.rawOutputDataConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.labels != null && message.hasOwnProperty("labels")) + $root.flyteidl.admin.Labels.encode(message.labels, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.annotations != null && message.hasOwnProperty("annotations")) + $root.flyteidl.admin.Annotations.encode(message.annotations, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.interruptible != null && message.hasOwnProperty("interruptible")) + $root.google.protobuf.BoolValue.encode(message.interruptible, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) + writer.uint32(/* id 7, wireType 0 =*/56).bool(message.overwriteCache); + if (message.envs != null && message.hasOwnProperty("envs")) + $root.flyteidl.admin.Envs.encode(message.envs, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; /** - * Decodes a LaunchPlanClosure message from the specified reader or buffer. + * Decodes a WorkflowExecutionConfig message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanClosure + * @memberof flyteidl.admin.WorkflowExecutionConfig * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanClosure} LaunchPlanClosure + * @returns {flyteidl.admin.WorkflowExecutionConfig} WorkflowExecutionConfig * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanClosure.decode = function decode(reader, length) { + WorkflowExecutionConfig.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanClosure(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.WorkflowExecutionConfig(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.state = reader.int32(); + message.maxParallelism = reader.int32(); break; case 2: - message.expectedInputs = $root.flyteidl.core.ParameterMap.decode(reader, reader.uint32()); + message.securityContext = $root.flyteidl.core.SecurityContext.decode(reader, reader.uint32()); break; case 3: - message.expectedOutputs = $root.flyteidl.core.VariableMap.decode(reader, reader.uint32()); + message.rawOutputDataConfig = $root.flyteidl.admin.RawOutputDataConfig.decode(reader, reader.uint32()); break; case 4: - message.createdAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.labels = $root.flyteidl.admin.Labels.decode(reader, reader.uint32()); break; case 5: - message.updatedAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.annotations = $root.flyteidl.admin.Annotations.decode(reader, reader.uint32()); + break; + case 6: + message.interruptible = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + break; + case 7: + message.overwriteCache = reader.bool(); + break; + case 8: + message.envs = $root.flyteidl.admin.Envs.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -36371,71 +36365,83 @@ }; /** - * Verifies a LaunchPlanClosure message. + * Verifies a WorkflowExecutionConfig message. * @function verify - * @memberof flyteidl.admin.LaunchPlanClosure + * @memberof flyteidl.admin.WorkflowExecutionConfig * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanClosure.verify = function verify(message) { + WorkflowExecutionConfig.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.state != null && message.hasOwnProperty("state")) - switch (message.state) { - default: - return "state: enum value expected"; - case 0: - case 1: - break; - } - if (message.expectedInputs != null && message.hasOwnProperty("expectedInputs")) { - var error = $root.flyteidl.core.ParameterMap.verify(message.expectedInputs); + if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) + if (!$util.isInteger(message.maxParallelism)) + return "maxParallelism: integer expected"; + if (message.securityContext != null && message.hasOwnProperty("securityContext")) { + var error = $root.flyteidl.core.SecurityContext.verify(message.securityContext); if (error) - return "expectedInputs." + error; + return "securityContext." + error; } - if (message.expectedOutputs != null && message.hasOwnProperty("expectedOutputs")) { - var error = $root.flyteidl.core.VariableMap.verify(message.expectedOutputs); + if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) { + var error = $root.flyteidl.admin.RawOutputDataConfig.verify(message.rawOutputDataConfig); if (error) - return "expectedOutputs." + error; + return "rawOutputDataConfig." + error; } - if (message.createdAt != null && message.hasOwnProperty("createdAt")) { - var error = $root.google.protobuf.Timestamp.verify(message.createdAt); + if (message.labels != null && message.hasOwnProperty("labels")) { + var error = $root.flyteidl.admin.Labels.verify(message.labels); if (error) - return "createdAt." + error; + return "labels." + error; } - if (message.updatedAt != null && message.hasOwnProperty("updatedAt")) { - var error = $root.google.protobuf.Timestamp.verify(message.updatedAt); + if (message.annotations != null && message.hasOwnProperty("annotations")) { + var error = $root.flyteidl.admin.Annotations.verify(message.annotations); if (error) - return "updatedAt." + error; + return "annotations." + error; + } + if (message.interruptible != null && message.hasOwnProperty("interruptible")) { + var error = $root.google.protobuf.BoolValue.verify(message.interruptible); + if (error) + return "interruptible." + error; + } + if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) + if (typeof message.overwriteCache !== "boolean") + return "overwriteCache: boolean expected"; + if (message.envs != null && message.hasOwnProperty("envs")) { + var error = $root.flyteidl.admin.Envs.verify(message.envs); + if (error) + return "envs." + error; } return null; }; - return LaunchPlanClosure; + return WorkflowExecutionConfig; })(); - admin.LaunchPlanMetadata = (function() { + admin.MatchingAttributes = (function() { /** - * Properties of a LaunchPlanMetadata. + * Properties of a MatchingAttributes. * @memberof flyteidl.admin - * @interface ILaunchPlanMetadata - * @property {flyteidl.admin.ISchedule|null} [schedule] LaunchPlanMetadata schedule - * @property {Array.|null} [notifications] LaunchPlanMetadata notifications - * @property {google.protobuf.IAny|null} [launchConditions] LaunchPlanMetadata launchConditions + * @interface IMatchingAttributes + * @property {flyteidl.admin.ITaskResourceAttributes|null} [taskResourceAttributes] MatchingAttributes taskResourceAttributes + * @property {flyteidl.admin.IClusterResourceAttributes|null} [clusterResourceAttributes] MatchingAttributes clusterResourceAttributes + * @property {flyteidl.admin.IExecutionQueueAttributes|null} [executionQueueAttributes] MatchingAttributes executionQueueAttributes + * @property {flyteidl.admin.IExecutionClusterLabel|null} [executionClusterLabel] MatchingAttributes executionClusterLabel + * @property {flyteidl.core.IQualityOfService|null} [qualityOfService] MatchingAttributes qualityOfService + * @property {flyteidl.admin.IPluginOverrides|null} [pluginOverrides] MatchingAttributes pluginOverrides + * @property {flyteidl.admin.IWorkflowExecutionConfig|null} [workflowExecutionConfig] MatchingAttributes workflowExecutionConfig + * @property {flyteidl.admin.IClusterAssignment|null} [clusterAssignment] MatchingAttributes clusterAssignment */ /** - * Constructs a new LaunchPlanMetadata. + * Constructs a new MatchingAttributes. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanMetadata. - * @implements ILaunchPlanMetadata + * @classdesc Represents a MatchingAttributes. + * @implements IMatchingAttributes * @constructor - * @param {flyteidl.admin.ILaunchPlanMetadata=} [properties] Properties to set + * @param {flyteidl.admin.IMatchingAttributes=} [properties] Properties to set */ - function LaunchPlanMetadata(properties) { - this.notifications = []; + function MatchingAttributes(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36443,91 +36449,167 @@ } /** - * LaunchPlanMetadata schedule. - * @member {flyteidl.admin.ISchedule|null|undefined} schedule - * @memberof flyteidl.admin.LaunchPlanMetadata + * MatchingAttributes taskResourceAttributes. + * @member {flyteidl.admin.ITaskResourceAttributes|null|undefined} taskResourceAttributes + * @memberof flyteidl.admin.MatchingAttributes * @instance */ - LaunchPlanMetadata.prototype.schedule = null; + MatchingAttributes.prototype.taskResourceAttributes = null; /** - * LaunchPlanMetadata notifications. - * @member {Array.} notifications - * @memberof flyteidl.admin.LaunchPlanMetadata + * MatchingAttributes clusterResourceAttributes. + * @member {flyteidl.admin.IClusterResourceAttributes|null|undefined} clusterResourceAttributes + * @memberof flyteidl.admin.MatchingAttributes * @instance */ - LaunchPlanMetadata.prototype.notifications = $util.emptyArray; + MatchingAttributes.prototype.clusterResourceAttributes = null; /** - * LaunchPlanMetadata launchConditions. - * @member {google.protobuf.IAny|null|undefined} launchConditions - * @memberof flyteidl.admin.LaunchPlanMetadata + * MatchingAttributes executionQueueAttributes. + * @member {flyteidl.admin.IExecutionQueueAttributes|null|undefined} executionQueueAttributes + * @memberof flyteidl.admin.MatchingAttributes * @instance */ - LaunchPlanMetadata.prototype.launchConditions = null; + MatchingAttributes.prototype.executionQueueAttributes = null; /** - * Creates a new LaunchPlanMetadata instance using the specified properties. + * MatchingAttributes executionClusterLabel. + * @member {flyteidl.admin.IExecutionClusterLabel|null|undefined} executionClusterLabel + * @memberof flyteidl.admin.MatchingAttributes + * @instance + */ + MatchingAttributes.prototype.executionClusterLabel = null; + + /** + * MatchingAttributes qualityOfService. + * @member {flyteidl.core.IQualityOfService|null|undefined} qualityOfService + * @memberof flyteidl.admin.MatchingAttributes + * @instance + */ + MatchingAttributes.prototype.qualityOfService = null; + + /** + * MatchingAttributes pluginOverrides. + * @member {flyteidl.admin.IPluginOverrides|null|undefined} pluginOverrides + * @memberof flyteidl.admin.MatchingAttributes + * @instance + */ + MatchingAttributes.prototype.pluginOverrides = null; + + /** + * MatchingAttributes workflowExecutionConfig. + * @member {flyteidl.admin.IWorkflowExecutionConfig|null|undefined} workflowExecutionConfig + * @memberof flyteidl.admin.MatchingAttributes + * @instance + */ + MatchingAttributes.prototype.workflowExecutionConfig = null; + + /** + * MatchingAttributes clusterAssignment. + * @member {flyteidl.admin.IClusterAssignment|null|undefined} clusterAssignment + * @memberof flyteidl.admin.MatchingAttributes + * @instance + */ + MatchingAttributes.prototype.clusterAssignment = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * MatchingAttributes target. + * @member {"taskResourceAttributes"|"clusterResourceAttributes"|"executionQueueAttributes"|"executionClusterLabel"|"qualityOfService"|"pluginOverrides"|"workflowExecutionConfig"|"clusterAssignment"|undefined} target + * @memberof flyteidl.admin.MatchingAttributes + * @instance + */ + Object.defineProperty(MatchingAttributes.prototype, "target", { + get: $util.oneOfGetter($oneOfFields = ["taskResourceAttributes", "clusterResourceAttributes", "executionQueueAttributes", "executionClusterLabel", "qualityOfService", "pluginOverrides", "workflowExecutionConfig", "clusterAssignment"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MatchingAttributes instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanMetadata + * @memberof flyteidl.admin.MatchingAttributes * @static - * @param {flyteidl.admin.ILaunchPlanMetadata=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanMetadata} LaunchPlanMetadata instance + * @param {flyteidl.admin.IMatchingAttributes=} [properties] Properties to set + * @returns {flyteidl.admin.MatchingAttributes} MatchingAttributes instance */ - LaunchPlanMetadata.create = function create(properties) { - return new LaunchPlanMetadata(properties); + MatchingAttributes.create = function create(properties) { + return new MatchingAttributes(properties); }; /** - * Encodes the specified LaunchPlanMetadata message. Does not implicitly {@link flyteidl.admin.LaunchPlanMetadata.verify|verify} messages. + * Encodes the specified MatchingAttributes message. Does not implicitly {@link flyteidl.admin.MatchingAttributes.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanMetadata + * @memberof flyteidl.admin.MatchingAttributes * @static - * @param {flyteidl.admin.ILaunchPlanMetadata} message LaunchPlanMetadata message or plain object to encode + * @param {flyteidl.admin.IMatchingAttributes} message MatchingAttributes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanMetadata.encode = function encode(message, writer) { + MatchingAttributes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.schedule != null && message.hasOwnProperty("schedule")) - $root.flyteidl.admin.Schedule.encode(message.schedule, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.notifications != null && message.notifications.length) - for (var i = 0; i < message.notifications.length; ++i) - $root.flyteidl.admin.Notification.encode(message.notifications[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.launchConditions != null && message.hasOwnProperty("launchConditions")) - $root.google.protobuf.Any.encode(message.launchConditions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.taskResourceAttributes != null && message.hasOwnProperty("taskResourceAttributes")) + $root.flyteidl.admin.TaskResourceAttributes.encode(message.taskResourceAttributes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.clusterResourceAttributes != null && message.hasOwnProperty("clusterResourceAttributes")) + $root.flyteidl.admin.ClusterResourceAttributes.encode(message.clusterResourceAttributes, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.executionQueueAttributes != null && message.hasOwnProperty("executionQueueAttributes")) + $root.flyteidl.admin.ExecutionQueueAttributes.encode(message.executionQueueAttributes, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.executionClusterLabel != null && message.hasOwnProperty("executionClusterLabel")) + $root.flyteidl.admin.ExecutionClusterLabel.encode(message.executionClusterLabel, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) + $root.flyteidl.core.QualityOfService.encode(message.qualityOfService, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.pluginOverrides != null && message.hasOwnProperty("pluginOverrides")) + $root.flyteidl.admin.PluginOverrides.encode(message.pluginOverrides, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.workflowExecutionConfig != null && message.hasOwnProperty("workflowExecutionConfig")) + $root.flyteidl.admin.WorkflowExecutionConfig.encode(message.workflowExecutionConfig, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.clusterAssignment != null && message.hasOwnProperty("clusterAssignment")) + $root.flyteidl.admin.ClusterAssignment.encode(message.clusterAssignment, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; /** - * Decodes a LaunchPlanMetadata message from the specified reader or buffer. + * Decodes a MatchingAttributes message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanMetadata + * @memberof flyteidl.admin.MatchingAttributes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanMetadata} LaunchPlanMetadata + * @returns {flyteidl.admin.MatchingAttributes} MatchingAttributes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanMetadata.decode = function decode(reader, length) { + MatchingAttributes.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanMetadata(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.MatchingAttributes(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.schedule = $root.flyteidl.admin.Schedule.decode(reader, reader.uint32()); + message.taskResourceAttributes = $root.flyteidl.admin.TaskResourceAttributes.decode(reader, reader.uint32()); break; case 2: - if (!(message.notifications && message.notifications.length)) - message.notifications = []; - message.notifications.push($root.flyteidl.admin.Notification.decode(reader, reader.uint32())); + message.clusterResourceAttributes = $root.flyteidl.admin.ClusterResourceAttributes.decode(reader, reader.uint32()); break; case 3: - message.launchConditions = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.executionQueueAttributes = $root.flyteidl.admin.ExecutionQueueAttributes.decode(reader, reader.uint32()); + break; + case 4: + message.executionClusterLabel = $root.flyteidl.admin.ExecutionClusterLabel.decode(reader, reader.uint32()); + break; + case 5: + message.qualityOfService = $root.flyteidl.core.QualityOfService.decode(reader, reader.uint32()); + break; + case 6: + message.pluginOverrides = $root.flyteidl.admin.PluginOverrides.decode(reader, reader.uint32()); + break; + case 7: + message.workflowExecutionConfig = $root.flyteidl.admin.WorkflowExecutionConfig.decode(reader, reader.uint32()); + break; + case 8: + message.clusterAssignment = $root.flyteidl.admin.ClusterAssignment.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -36538,60 +36620,124 @@ }; /** - * Verifies a LaunchPlanMetadata message. + * Verifies a MatchingAttributes message. * @function verify - * @memberof flyteidl.admin.LaunchPlanMetadata + * @memberof flyteidl.admin.MatchingAttributes * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanMetadata.verify = function verify(message) { + MatchingAttributes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.schedule != null && message.hasOwnProperty("schedule")) { - var error = $root.flyteidl.admin.Schedule.verify(message.schedule); - if (error) - return "schedule." + error; - } - if (message.notifications != null && message.hasOwnProperty("notifications")) { - if (!Array.isArray(message.notifications)) - return "notifications: array expected"; - for (var i = 0; i < message.notifications.length; ++i) { - var error = $root.flyteidl.admin.Notification.verify(message.notifications[i]); + var properties = {}; + if (message.taskResourceAttributes != null && message.hasOwnProperty("taskResourceAttributes")) { + properties.target = 1; + { + var error = $root.flyteidl.admin.TaskResourceAttributes.verify(message.taskResourceAttributes); if (error) - return "notifications." + error; + return "taskResourceAttributes." + error; } } - if (message.launchConditions != null && message.hasOwnProperty("launchConditions")) { - var error = $root.google.protobuf.Any.verify(message.launchConditions); - if (error) - return "launchConditions." + error; + if (message.clusterResourceAttributes != null && message.hasOwnProperty("clusterResourceAttributes")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.admin.ClusterResourceAttributes.verify(message.clusterResourceAttributes); + if (error) + return "clusterResourceAttributes." + error; + } } - return null; - }; - - return LaunchPlanMetadata; + if (message.executionQueueAttributes != null && message.hasOwnProperty("executionQueueAttributes")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.admin.ExecutionQueueAttributes.verify(message.executionQueueAttributes); + if (error) + return "executionQueueAttributes." + error; + } + } + if (message.executionClusterLabel != null && message.hasOwnProperty("executionClusterLabel")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.admin.ExecutionClusterLabel.verify(message.executionClusterLabel); + if (error) + return "executionClusterLabel." + error; + } + } + if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.core.QualityOfService.verify(message.qualityOfService); + if (error) + return "qualityOfService." + error; + } + } + if (message.pluginOverrides != null && message.hasOwnProperty("pluginOverrides")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.admin.PluginOverrides.verify(message.pluginOverrides); + if (error) + return "pluginOverrides." + error; + } + } + if (message.workflowExecutionConfig != null && message.hasOwnProperty("workflowExecutionConfig")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.admin.WorkflowExecutionConfig.verify(message.workflowExecutionConfig); + if (error) + return "workflowExecutionConfig." + error; + } + } + if (message.clusterAssignment != null && message.hasOwnProperty("clusterAssignment")) { + if (properties.target === 1) + return "target: multiple values"; + properties.target = 1; + { + var error = $root.flyteidl.admin.ClusterAssignment.verify(message.clusterAssignment); + if (error) + return "clusterAssignment." + error; + } + } + return null; + }; + + return MatchingAttributes; })(); - admin.LaunchPlanUpdateRequest = (function() { + admin.MatchableAttributesConfiguration = (function() { /** - * Properties of a LaunchPlanUpdateRequest. + * Properties of a MatchableAttributesConfiguration. * @memberof flyteidl.admin - * @interface ILaunchPlanUpdateRequest - * @property {flyteidl.core.IIdentifier|null} [id] LaunchPlanUpdateRequest id - * @property {flyteidl.admin.LaunchPlanState|null} [state] LaunchPlanUpdateRequest state + * @interface IMatchableAttributesConfiguration + * @property {flyteidl.admin.IMatchingAttributes|null} [attributes] MatchableAttributesConfiguration attributes + * @property {string|null} [domain] MatchableAttributesConfiguration domain + * @property {string|null} [project] MatchableAttributesConfiguration project + * @property {string|null} [workflow] MatchableAttributesConfiguration workflow + * @property {string|null} [launchPlan] MatchableAttributesConfiguration launchPlan + * @property {string|null} [org] MatchableAttributesConfiguration org */ /** - * Constructs a new LaunchPlanUpdateRequest. + * Constructs a new MatchableAttributesConfiguration. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanUpdateRequest. - * @implements ILaunchPlanUpdateRequest + * @classdesc Represents a MatchableAttributesConfiguration. + * @implements IMatchableAttributesConfiguration * @constructor - * @param {flyteidl.admin.ILaunchPlanUpdateRequest=} [properties] Properties to set + * @param {flyteidl.admin.IMatchableAttributesConfiguration=} [properties] Properties to set */ - function LaunchPlanUpdateRequest(properties) { + function MatchableAttributesConfiguration(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36599,75 +36745,127 @@ } /** - * LaunchPlanUpdateRequest id. - * @member {flyteidl.core.IIdentifier|null|undefined} id - * @memberof flyteidl.admin.LaunchPlanUpdateRequest + * MatchableAttributesConfiguration attributes. + * @member {flyteidl.admin.IMatchingAttributes|null|undefined} attributes + * @memberof flyteidl.admin.MatchableAttributesConfiguration * @instance */ - LaunchPlanUpdateRequest.prototype.id = null; + MatchableAttributesConfiguration.prototype.attributes = null; /** - * LaunchPlanUpdateRequest state. - * @member {flyteidl.admin.LaunchPlanState} state - * @memberof flyteidl.admin.LaunchPlanUpdateRequest + * MatchableAttributesConfiguration domain. + * @member {string} domain + * @memberof flyteidl.admin.MatchableAttributesConfiguration * @instance */ - LaunchPlanUpdateRequest.prototype.state = 0; + MatchableAttributesConfiguration.prototype.domain = ""; /** - * Creates a new LaunchPlanUpdateRequest instance using the specified properties. + * MatchableAttributesConfiguration project. + * @member {string} project + * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @instance + */ + MatchableAttributesConfiguration.prototype.project = ""; + + /** + * MatchableAttributesConfiguration workflow. + * @member {string} workflow + * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @instance + */ + MatchableAttributesConfiguration.prototype.workflow = ""; + + /** + * MatchableAttributesConfiguration launchPlan. + * @member {string} launchPlan + * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @instance + */ + MatchableAttributesConfiguration.prototype.launchPlan = ""; + + /** + * MatchableAttributesConfiguration org. + * @member {string} org + * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @instance + */ + MatchableAttributesConfiguration.prototype.org = ""; + + /** + * Creates a new MatchableAttributesConfiguration instance using the specified properties. * @function create - * @memberof flyteidl.admin.LaunchPlanUpdateRequest + * @memberof flyteidl.admin.MatchableAttributesConfiguration * @static - * @param {flyteidl.admin.ILaunchPlanUpdateRequest=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanUpdateRequest} LaunchPlanUpdateRequest instance + * @param {flyteidl.admin.IMatchableAttributesConfiguration=} [properties] Properties to set + * @returns {flyteidl.admin.MatchableAttributesConfiguration} MatchableAttributesConfiguration instance */ - LaunchPlanUpdateRequest.create = function create(properties) { - return new LaunchPlanUpdateRequest(properties); + MatchableAttributesConfiguration.create = function create(properties) { + return new MatchableAttributesConfiguration(properties); }; /** - * Encodes the specified LaunchPlanUpdateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateRequest.verify|verify} messages. + * Encodes the specified MatchableAttributesConfiguration message. Does not implicitly {@link flyteidl.admin.MatchableAttributesConfiguration.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanUpdateRequest + * @memberof flyteidl.admin.MatchableAttributesConfiguration * @static - * @param {flyteidl.admin.ILaunchPlanUpdateRequest} message LaunchPlanUpdateRequest message or plain object to encode + * @param {flyteidl.admin.IMatchableAttributesConfiguration} message MatchableAttributesConfiguration message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanUpdateRequest.encode = function encode(message, writer) { + MatchableAttributesConfiguration.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && message.hasOwnProperty("id")) - $root.flyteidl.core.Identifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.state != null && message.hasOwnProperty("state")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.state); + if (message.attributes != null && message.hasOwnProperty("attributes")) + $root.flyteidl.admin.MatchingAttributes.encode(message.attributes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.domain != null && message.hasOwnProperty("domain")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); + if (message.project != null && message.hasOwnProperty("project")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.project); + if (message.workflow != null && message.hasOwnProperty("workflow")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.workflow); + if (message.launchPlan != null && message.hasOwnProperty("launchPlan")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.launchPlan); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); return writer; }; /** - * Decodes a LaunchPlanUpdateRequest message from the specified reader or buffer. + * Decodes a MatchableAttributesConfiguration message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanUpdateRequest + * @memberof flyteidl.admin.MatchableAttributesConfiguration * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanUpdateRequest} LaunchPlanUpdateRequest + * @returns {flyteidl.admin.MatchableAttributesConfiguration} MatchableAttributesConfiguration * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanUpdateRequest.decode = function decode(reader, length) { + MatchableAttributesConfiguration.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanUpdateRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.MatchableAttributesConfiguration(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); + message.attributes = $root.flyteidl.admin.MatchingAttributes.decode(reader, reader.uint32()); break; case 2: - message.state = reader.int32(); + message.domain = reader.string(); + break; + case 3: + message.project = reader.string(); + break; + case 4: + message.workflow = reader.string(); + break; + case 5: + message.launchPlan = reader.string(); + break; + case 6: + message.org = reader.string(); break; default: reader.skipType(tag & 7); @@ -36678,52 +36876,61 @@ }; /** - * Verifies a LaunchPlanUpdateRequest message. + * Verifies a MatchableAttributesConfiguration message. * @function verify - * @memberof flyteidl.admin.LaunchPlanUpdateRequest + * @memberof flyteidl.admin.MatchableAttributesConfiguration * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanUpdateRequest.verify = function verify(message) { + MatchableAttributesConfiguration.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) { - var error = $root.flyteidl.core.Identifier.verify(message.id); + if (message.attributes != null && message.hasOwnProperty("attributes")) { + var error = $root.flyteidl.admin.MatchingAttributes.verify(message.attributes); if (error) - return "id." + error; + return "attributes." + error; } - if (message.state != null && message.hasOwnProperty("state")) - switch (message.state) { - default: - return "state: enum value expected"; - case 0: - case 1: - break; - } + if (message.domain != null && message.hasOwnProperty("domain")) + if (!$util.isString(message.domain)) + return "domain: string expected"; + if (message.project != null && message.hasOwnProperty("project")) + if (!$util.isString(message.project)) + return "project: string expected"; + if (message.workflow != null && message.hasOwnProperty("workflow")) + if (!$util.isString(message.workflow)) + return "workflow: string expected"; + if (message.launchPlan != null && message.hasOwnProperty("launchPlan")) + if (!$util.isString(message.launchPlan)) + return "launchPlan: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; - return LaunchPlanUpdateRequest; + return MatchableAttributesConfiguration; })(); - admin.LaunchPlanUpdateResponse = (function() { + admin.ListMatchableAttributesRequest = (function() { /** - * Properties of a LaunchPlanUpdateResponse. + * Properties of a ListMatchableAttributesRequest. * @memberof flyteidl.admin - * @interface ILaunchPlanUpdateResponse + * @interface IListMatchableAttributesRequest + * @property {flyteidl.admin.MatchableResource|null} [resourceType] ListMatchableAttributesRequest resourceType + * @property {string|null} [org] ListMatchableAttributesRequest org */ /** - * Constructs a new LaunchPlanUpdateResponse. + * Constructs a new ListMatchableAttributesRequest. * @memberof flyteidl.admin - * @classdesc Represents a LaunchPlanUpdateResponse. - * @implements ILaunchPlanUpdateResponse + * @classdesc Represents a ListMatchableAttributesRequest. + * @implements IListMatchableAttributesRequest * @constructor - * @param {flyteidl.admin.ILaunchPlanUpdateResponse=} [properties] Properties to set + * @param {flyteidl.admin.IListMatchableAttributesRequest=} [properties] Properties to set */ - function LaunchPlanUpdateResponse(properties) { + function ListMatchableAttributesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36731,50 +36938,76 @@ } /** - * Creates a new LaunchPlanUpdateResponse instance using the specified properties. - * @function create - * @memberof flyteidl.admin.LaunchPlanUpdateResponse + * ListMatchableAttributesRequest resourceType. + * @member {flyteidl.admin.MatchableResource} resourceType + * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @instance + */ + ListMatchableAttributesRequest.prototype.resourceType = 0; + + /** + * ListMatchableAttributesRequest org. + * @member {string} org + * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @instance + */ + ListMatchableAttributesRequest.prototype.org = ""; + + /** + * Creates a new ListMatchableAttributesRequest instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ListMatchableAttributesRequest * @static - * @param {flyteidl.admin.ILaunchPlanUpdateResponse=} [properties] Properties to set - * @returns {flyteidl.admin.LaunchPlanUpdateResponse} LaunchPlanUpdateResponse instance + * @param {flyteidl.admin.IListMatchableAttributesRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ListMatchableAttributesRequest} ListMatchableAttributesRequest instance */ - LaunchPlanUpdateResponse.create = function create(properties) { - return new LaunchPlanUpdateResponse(properties); + ListMatchableAttributesRequest.create = function create(properties) { + return new ListMatchableAttributesRequest(properties); }; /** - * Encodes the specified LaunchPlanUpdateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateResponse.verify|verify} messages. + * Encodes the specified ListMatchableAttributesRequest message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesRequest.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.LaunchPlanUpdateResponse + * @memberof flyteidl.admin.ListMatchableAttributesRequest * @static - * @param {flyteidl.admin.ILaunchPlanUpdateResponse} message LaunchPlanUpdateResponse message or plain object to encode + * @param {flyteidl.admin.IListMatchableAttributesRequest} message ListMatchableAttributesRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - LaunchPlanUpdateResponse.encode = function encode(message, writer) { + ListMatchableAttributesRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.resourceType); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.org); return writer; }; /** - * Decodes a LaunchPlanUpdateResponse message from the specified reader or buffer. + * Decodes a ListMatchableAttributesRequest message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.LaunchPlanUpdateResponse + * @memberof flyteidl.admin.ListMatchableAttributesRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.LaunchPlanUpdateResponse} LaunchPlanUpdateResponse + * @returns {flyteidl.admin.ListMatchableAttributesRequest} ListMatchableAttributesRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LaunchPlanUpdateResponse.decode = function decode(reader, length) { + ListMatchableAttributesRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanUpdateResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ListMatchableAttributesRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.resourceType = reader.int32(); + break; + case 2: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -36784,40 +37017,58 @@ }; /** - * Verifies a LaunchPlanUpdateResponse message. + * Verifies a ListMatchableAttributesRequest message. * @function verify - * @memberof flyteidl.admin.LaunchPlanUpdateResponse + * @memberof flyteidl.admin.ListMatchableAttributesRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LaunchPlanUpdateResponse.verify = function verify(message) { + ListMatchableAttributesRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + switch (message.resourceType) { + default: + return "resourceType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; - return LaunchPlanUpdateResponse; + return ListMatchableAttributesRequest; })(); - admin.ActiveLaunchPlanRequest = (function() { + admin.ListMatchableAttributesResponse = (function() { /** - * Properties of an ActiveLaunchPlanRequest. + * Properties of a ListMatchableAttributesResponse. * @memberof flyteidl.admin - * @interface IActiveLaunchPlanRequest - * @property {flyteidl.admin.INamedEntityIdentifier|null} [id] ActiveLaunchPlanRequest id + * @interface IListMatchableAttributesResponse + * @property {Array.|null} [configurations] ListMatchableAttributesResponse configurations */ /** - * Constructs a new ActiveLaunchPlanRequest. + * Constructs a new ListMatchableAttributesResponse. * @memberof flyteidl.admin - * @classdesc Represents an ActiveLaunchPlanRequest. - * @implements IActiveLaunchPlanRequest + * @classdesc Represents a ListMatchableAttributesResponse. + * @implements IListMatchableAttributesResponse * @constructor - * @param {flyteidl.admin.IActiveLaunchPlanRequest=} [properties] Properties to set + * @param {flyteidl.admin.IListMatchableAttributesResponse=} [properties] Properties to set */ - function ActiveLaunchPlanRequest(properties) { + function ListMatchableAttributesResponse(properties) { + this.configurations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36825,62 +37076,65 @@ } /** - * ActiveLaunchPlanRequest id. - * @member {flyteidl.admin.INamedEntityIdentifier|null|undefined} id - * @memberof flyteidl.admin.ActiveLaunchPlanRequest + * ListMatchableAttributesResponse configurations. + * @member {Array.} configurations + * @memberof flyteidl.admin.ListMatchableAttributesResponse * @instance */ - ActiveLaunchPlanRequest.prototype.id = null; + ListMatchableAttributesResponse.prototype.configurations = $util.emptyArray; /** - * Creates a new ActiveLaunchPlanRequest instance using the specified properties. + * Creates a new ListMatchableAttributesResponse instance using the specified properties. * @function create - * @memberof flyteidl.admin.ActiveLaunchPlanRequest + * @memberof flyteidl.admin.ListMatchableAttributesResponse * @static - * @param {flyteidl.admin.IActiveLaunchPlanRequest=} [properties] Properties to set - * @returns {flyteidl.admin.ActiveLaunchPlanRequest} ActiveLaunchPlanRequest instance + * @param {flyteidl.admin.IListMatchableAttributesResponse=} [properties] Properties to set + * @returns {flyteidl.admin.ListMatchableAttributesResponse} ListMatchableAttributesResponse instance */ - ActiveLaunchPlanRequest.create = function create(properties) { - return new ActiveLaunchPlanRequest(properties); + ListMatchableAttributesResponse.create = function create(properties) { + return new ListMatchableAttributesResponse(properties); }; /** - * Encodes the specified ActiveLaunchPlanRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanRequest.verify|verify} messages. + * Encodes the specified ListMatchableAttributesResponse message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesResponse.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ActiveLaunchPlanRequest + * @memberof flyteidl.admin.ListMatchableAttributesResponse * @static - * @param {flyteidl.admin.IActiveLaunchPlanRequest} message ActiveLaunchPlanRequest message or plain object to encode + * @param {flyteidl.admin.IListMatchableAttributesResponse} message ListMatchableAttributesResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ActiveLaunchPlanRequest.encode = function encode(message, writer) { + ListMatchableAttributesResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && message.hasOwnProperty("id")) - $root.flyteidl.admin.NamedEntityIdentifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.configurations != null && message.configurations.length) + for (var i = 0; i < message.configurations.length; ++i) + $root.flyteidl.admin.MatchableAttributesConfiguration.encode(message.configurations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Decodes an ActiveLaunchPlanRequest message from the specified reader or buffer. + * Decodes a ListMatchableAttributesResponse message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ActiveLaunchPlanRequest + * @memberof flyteidl.admin.ListMatchableAttributesResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ActiveLaunchPlanRequest} ActiveLaunchPlanRequest + * @returns {flyteidl.admin.ListMatchableAttributesResponse} ListMatchableAttributesResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ActiveLaunchPlanRequest.decode = function decode(reader, length) { + ListMatchableAttributesResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ActiveLaunchPlanRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ListMatchableAttributesResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = $root.flyteidl.admin.NamedEntityIdentifier.decode(reader, reader.uint32()); + if (!(message.configurations && message.configurations.length)) + message.configurations = []; + message.configurations.push($root.flyteidl.admin.MatchableAttributesConfiguration.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -36891,50 +37145,50 @@ }; /** - * Verifies an ActiveLaunchPlanRequest message. + * Verifies a ListMatchableAttributesResponse message. * @function verify - * @memberof flyteidl.admin.ActiveLaunchPlanRequest + * @memberof flyteidl.admin.ListMatchableAttributesResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ActiveLaunchPlanRequest.verify = function verify(message) { + ListMatchableAttributesResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) { - var error = $root.flyteidl.admin.NamedEntityIdentifier.verify(message.id); - if (error) - return "id." + error; + if (message.configurations != null && message.hasOwnProperty("configurations")) { + if (!Array.isArray(message.configurations)) + return "configurations: array expected"; + for (var i = 0; i < message.configurations.length; ++i) { + var error = $root.flyteidl.admin.MatchableAttributesConfiguration.verify(message.configurations[i]); + if (error) + return "configurations." + error; + } } return null; }; - return ActiveLaunchPlanRequest; + return ListMatchableAttributesResponse; })(); - admin.ActiveLaunchPlanListRequest = (function() { + admin.LaunchPlanCreateRequest = (function() { /** - * Properties of an ActiveLaunchPlanListRequest. + * Properties of a LaunchPlanCreateRequest. * @memberof flyteidl.admin - * @interface IActiveLaunchPlanListRequest - * @property {string|null} [project] ActiveLaunchPlanListRequest project - * @property {string|null} [domain] ActiveLaunchPlanListRequest domain - * @property {number|null} [limit] ActiveLaunchPlanListRequest limit - * @property {string|null} [token] ActiveLaunchPlanListRequest token - * @property {flyteidl.admin.ISort|null} [sortBy] ActiveLaunchPlanListRequest sortBy - * @property {string|null} [org] ActiveLaunchPlanListRequest org + * @interface ILaunchPlanCreateRequest + * @property {flyteidl.core.IIdentifier|null} [id] LaunchPlanCreateRequest id + * @property {flyteidl.admin.ILaunchPlanSpec|null} [spec] LaunchPlanCreateRequest spec */ /** - * Constructs a new ActiveLaunchPlanListRequest. + * Constructs a new LaunchPlanCreateRequest. * @memberof flyteidl.admin - * @classdesc Represents an ActiveLaunchPlanListRequest. - * @implements IActiveLaunchPlanListRequest + * @classdesc Represents a LaunchPlanCreateRequest. + * @implements ILaunchPlanCreateRequest * @constructor - * @param {flyteidl.admin.IActiveLaunchPlanListRequest=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanCreateRequest=} [properties] Properties to set */ - function ActiveLaunchPlanListRequest(properties) { + function LaunchPlanCreateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -36942,127 +37196,75 @@ } /** - * ActiveLaunchPlanListRequest project. - * @member {string} project - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest - * @instance - */ - ActiveLaunchPlanListRequest.prototype.project = ""; - - /** - * ActiveLaunchPlanListRequest domain. - * @member {string} domain - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest - * @instance - */ - ActiveLaunchPlanListRequest.prototype.domain = ""; - - /** - * ActiveLaunchPlanListRequest limit. - * @member {number} limit - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest - * @instance - */ - ActiveLaunchPlanListRequest.prototype.limit = 0; - - /** - * ActiveLaunchPlanListRequest token. - * @member {string} token - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest - * @instance - */ - ActiveLaunchPlanListRequest.prototype.token = ""; - - /** - * ActiveLaunchPlanListRequest sortBy. - * @member {flyteidl.admin.ISort|null|undefined} sortBy - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * LaunchPlanCreateRequest id. + * @member {flyteidl.core.IIdentifier|null|undefined} id + * @memberof flyteidl.admin.LaunchPlanCreateRequest * @instance */ - ActiveLaunchPlanListRequest.prototype.sortBy = null; + LaunchPlanCreateRequest.prototype.id = null; /** - * ActiveLaunchPlanListRequest org. - * @member {string} org - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * LaunchPlanCreateRequest spec. + * @member {flyteidl.admin.ILaunchPlanSpec|null|undefined} spec + * @memberof flyteidl.admin.LaunchPlanCreateRequest * @instance */ - ActiveLaunchPlanListRequest.prototype.org = ""; + LaunchPlanCreateRequest.prototype.spec = null; /** - * Creates a new ActiveLaunchPlanListRequest instance using the specified properties. + * Creates a new LaunchPlanCreateRequest instance using the specified properties. * @function create - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * @memberof flyteidl.admin.LaunchPlanCreateRequest * @static - * @param {flyteidl.admin.IActiveLaunchPlanListRequest=} [properties] Properties to set - * @returns {flyteidl.admin.ActiveLaunchPlanListRequest} ActiveLaunchPlanListRequest instance + * @param {flyteidl.admin.ILaunchPlanCreateRequest=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanCreateRequest} LaunchPlanCreateRequest instance */ - ActiveLaunchPlanListRequest.create = function create(properties) { - return new ActiveLaunchPlanListRequest(properties); + LaunchPlanCreateRequest.create = function create(properties) { + return new LaunchPlanCreateRequest(properties); }; /** - * Encodes the specified ActiveLaunchPlanListRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanListRequest.verify|verify} messages. + * Encodes the specified LaunchPlanCreateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateRequest.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * @memberof flyteidl.admin.LaunchPlanCreateRequest * @static - * @param {flyteidl.admin.IActiveLaunchPlanListRequest} message ActiveLaunchPlanListRequest message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanCreateRequest} message LaunchPlanCreateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ActiveLaunchPlanListRequest.encode = function encode(message, writer) { + LaunchPlanCreateRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.project != null && message.hasOwnProperty("project")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); - if (message.domain != null && message.hasOwnProperty("domain")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); - if (message.limit != null && message.hasOwnProperty("limit")) - writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.limit); - if (message.token != null && message.hasOwnProperty("token")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.token); - if (message.sortBy != null && message.hasOwnProperty("sortBy")) - $root.flyteidl.admin.Sort.encode(message.sortBy, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.org != null && message.hasOwnProperty("org")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); + if (message.id != null && message.hasOwnProperty("id")) + $root.flyteidl.core.Identifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.spec != null && message.hasOwnProperty("spec")) + $root.flyteidl.admin.LaunchPlanSpec.encode(message.spec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Decodes an ActiveLaunchPlanListRequest message from the specified reader or buffer. + * Decodes a LaunchPlanCreateRequest message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * @memberof flyteidl.admin.LaunchPlanCreateRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ActiveLaunchPlanListRequest} ActiveLaunchPlanListRequest + * @returns {flyteidl.admin.LaunchPlanCreateRequest} LaunchPlanCreateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ActiveLaunchPlanListRequest.decode = function decode(reader, length) { + LaunchPlanCreateRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ActiveLaunchPlanListRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanCreateRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.project = reader.string(); + message.id = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); break; case 2: - message.domain = reader.string(); - break; - case 3: - message.limit = reader.uint32(); - break; - case 4: - message.token = reader.string(); - break; - case 5: - message.sortBy = $root.flyteidl.admin.Sort.decode(reader, reader.uint32()); - break; - case 6: - message.org = reader.string(); + message.spec = $root.flyteidl.admin.LaunchPlanSpec.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -37073,77 +37275,49 @@ }; /** - * Verifies an ActiveLaunchPlanListRequest message. + * Verifies a LaunchPlanCreateRequest message. * @function verify - * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * @memberof flyteidl.admin.LaunchPlanCreateRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ActiveLaunchPlanListRequest.verify = function verify(message) { + LaunchPlanCreateRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.project != null && message.hasOwnProperty("project")) - if (!$util.isString(message.project)) - return "project: string expected"; - if (message.domain != null && message.hasOwnProperty("domain")) - if (!$util.isString(message.domain)) - return "domain: string expected"; - if (message.limit != null && message.hasOwnProperty("limit")) - if (!$util.isInteger(message.limit)) - return "limit: integer expected"; - if (message.token != null && message.hasOwnProperty("token")) - if (!$util.isString(message.token)) - return "token: string expected"; - if (message.sortBy != null && message.hasOwnProperty("sortBy")) { - var error = $root.flyteidl.admin.Sort.verify(message.sortBy); + if (message.id != null && message.hasOwnProperty("id")) { + var error = $root.flyteidl.core.Identifier.verify(message.id); if (error) - return "sortBy." + error; + return "id." + error; + } + if (message.spec != null && message.hasOwnProperty("spec")) { + var error = $root.flyteidl.admin.LaunchPlanSpec.verify(message.spec); + if (error) + return "spec." + error; } - if (message.org != null && message.hasOwnProperty("org")) - if (!$util.isString(message.org)) - return "org: string expected"; return null; }; - return ActiveLaunchPlanListRequest; - })(); - - /** - * FixedRateUnit enum. - * @name flyteidl.admin.FixedRateUnit - * @enum {string} - * @property {number} MINUTE=0 MINUTE value - * @property {number} HOUR=1 HOUR value - * @property {number} DAY=2 DAY value - */ - admin.FixedRateUnit = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "MINUTE"] = 0; - values[valuesById[1] = "HOUR"] = 1; - values[valuesById[2] = "DAY"] = 2; - return values; + return LaunchPlanCreateRequest; })(); - admin.FixedRate = (function() { + admin.LaunchPlanCreateResponse = (function() { /** - * Properties of a FixedRate. + * Properties of a LaunchPlanCreateResponse. * @memberof flyteidl.admin - * @interface IFixedRate - * @property {number|null} [value] FixedRate value - * @property {flyteidl.admin.FixedRateUnit|null} [unit] FixedRate unit + * @interface ILaunchPlanCreateResponse */ /** - * Constructs a new FixedRate. + * Constructs a new LaunchPlanCreateResponse. * @memberof flyteidl.admin - * @classdesc Represents a FixedRate. - * @implements IFixedRate + * @classdesc Represents a LaunchPlanCreateResponse. + * @implements ILaunchPlanCreateResponse * @constructor - * @param {flyteidl.admin.IFixedRate=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanCreateResponse=} [properties] Properties to set */ - function FixedRate(properties) { + function LaunchPlanCreateResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37151,76 +37325,50 @@ } /** - * FixedRate value. - * @member {number} value - * @memberof flyteidl.admin.FixedRate - * @instance - */ - FixedRate.prototype.value = 0; - - /** - * FixedRate unit. - * @member {flyteidl.admin.FixedRateUnit} unit - * @memberof flyteidl.admin.FixedRate - * @instance - */ - FixedRate.prototype.unit = 0; - - /** - * Creates a new FixedRate instance using the specified properties. + * Creates a new LaunchPlanCreateResponse instance using the specified properties. * @function create - * @memberof flyteidl.admin.FixedRate + * @memberof flyteidl.admin.LaunchPlanCreateResponse * @static - * @param {flyteidl.admin.IFixedRate=} [properties] Properties to set - * @returns {flyteidl.admin.FixedRate} FixedRate instance + * @param {flyteidl.admin.ILaunchPlanCreateResponse=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanCreateResponse} LaunchPlanCreateResponse instance */ - FixedRate.create = function create(properties) { - return new FixedRate(properties); + LaunchPlanCreateResponse.create = function create(properties) { + return new LaunchPlanCreateResponse(properties); }; /** - * Encodes the specified FixedRate message. Does not implicitly {@link flyteidl.admin.FixedRate.verify|verify} messages. + * Encodes the specified LaunchPlanCreateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanCreateResponse.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.FixedRate + * @memberof flyteidl.admin.LaunchPlanCreateResponse * @static - * @param {flyteidl.admin.IFixedRate} message FixedRate message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanCreateResponse} message LaunchPlanCreateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - FixedRate.encode = function encode(message, writer) { + LaunchPlanCreateResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && message.hasOwnProperty("value")) - writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.value); - if (message.unit != null && message.hasOwnProperty("unit")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.unit); return writer; }; /** - * Decodes a FixedRate message from the specified reader or buffer. + * Decodes a LaunchPlanCreateResponse message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.FixedRate + * @memberof flyteidl.admin.LaunchPlanCreateResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.FixedRate} FixedRate + * @returns {flyteidl.admin.LaunchPlanCreateResponse} LaunchPlanCreateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FixedRate.decode = function decode(reader, length) { + LaunchPlanCreateResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.FixedRate(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanCreateResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.value = reader.uint32(); - break; - case 2: - message.unit = reader.int32(); - break; default: reader.skipType(tag & 7); break; @@ -37230,53 +37378,56 @@ }; /** - * Verifies a FixedRate message. + * Verifies a LaunchPlanCreateResponse message. * @function verify - * @memberof flyteidl.admin.FixedRate + * @memberof flyteidl.admin.LaunchPlanCreateResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FixedRate.verify = function verify(message) { + LaunchPlanCreateResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) - if (!$util.isInteger(message.value)) - return "value: integer expected"; - if (message.unit != null && message.hasOwnProperty("unit")) - switch (message.unit) { - default: - return "unit: enum value expected"; - case 0: - case 1: - case 2: - break; - } return null; }; - return FixedRate; + return LaunchPlanCreateResponse; })(); - admin.CronSchedule = (function() { + /** + * LaunchPlanState enum. + * @name flyteidl.admin.LaunchPlanState + * @enum {string} + * @property {number} INACTIVE=0 INACTIVE value + * @property {number} ACTIVE=1 ACTIVE value + */ + admin.LaunchPlanState = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "INACTIVE"] = 0; + values[valuesById[1] = "ACTIVE"] = 1; + return values; + })(); + + admin.LaunchPlan = (function() { /** - * Properties of a CronSchedule. + * Properties of a LaunchPlan. * @memberof flyteidl.admin - * @interface ICronSchedule - * @property {string|null} [schedule] CronSchedule schedule - * @property {string|null} [offset] CronSchedule offset + * @interface ILaunchPlan + * @property {flyteidl.core.IIdentifier|null} [id] LaunchPlan id + * @property {flyteidl.admin.ILaunchPlanSpec|null} [spec] LaunchPlan spec + * @property {flyteidl.admin.ILaunchPlanClosure|null} [closure] LaunchPlan closure */ /** - * Constructs a new CronSchedule. + * Constructs a new LaunchPlan. * @memberof flyteidl.admin - * @classdesc Represents a CronSchedule. - * @implements ICronSchedule + * @classdesc Represents a LaunchPlan. + * @implements ILaunchPlan * @constructor - * @param {flyteidl.admin.ICronSchedule=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlan=} [properties] Properties to set */ - function CronSchedule(properties) { + function LaunchPlan(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37284,75 +37435,88 @@ } /** - * CronSchedule schedule. - * @member {string} schedule - * @memberof flyteidl.admin.CronSchedule + * LaunchPlan id. + * @member {flyteidl.core.IIdentifier|null|undefined} id + * @memberof flyteidl.admin.LaunchPlan * @instance */ - CronSchedule.prototype.schedule = ""; + LaunchPlan.prototype.id = null; /** - * CronSchedule offset. - * @member {string} offset - * @memberof flyteidl.admin.CronSchedule + * LaunchPlan spec. + * @member {flyteidl.admin.ILaunchPlanSpec|null|undefined} spec + * @memberof flyteidl.admin.LaunchPlan * @instance */ - CronSchedule.prototype.offset = ""; + LaunchPlan.prototype.spec = null; /** - * Creates a new CronSchedule instance using the specified properties. - * @function create - * @memberof flyteidl.admin.CronSchedule - * @static - * @param {flyteidl.admin.ICronSchedule=} [properties] Properties to set - * @returns {flyteidl.admin.CronSchedule} CronSchedule instance + * LaunchPlan closure. + * @member {flyteidl.admin.ILaunchPlanClosure|null|undefined} closure + * @memberof flyteidl.admin.LaunchPlan + * @instance */ - CronSchedule.create = function create(properties) { - return new CronSchedule(properties); - }; + LaunchPlan.prototype.closure = null; /** - * Encodes the specified CronSchedule message. Does not implicitly {@link flyteidl.admin.CronSchedule.verify|verify} messages. - * @function encode - * @memberof flyteidl.admin.CronSchedule + * Creates a new LaunchPlan instance using the specified properties. + * @function create + * @memberof flyteidl.admin.LaunchPlan * @static - * @param {flyteidl.admin.ICronSchedule} message CronSchedule message or plain object to encode + * @param {flyteidl.admin.ILaunchPlan=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlan} LaunchPlan instance + */ + LaunchPlan.create = function create(properties) { + return new LaunchPlan(properties); + }; + + /** + * Encodes the specified LaunchPlan message. Does not implicitly {@link flyteidl.admin.LaunchPlan.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.LaunchPlan + * @static + * @param {flyteidl.admin.ILaunchPlan} message LaunchPlan message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CronSchedule.encode = function encode(message, writer) { + LaunchPlan.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.schedule != null && message.hasOwnProperty("schedule")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.schedule); - if (message.offset != null && message.hasOwnProperty("offset")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.offset); + if (message.id != null && message.hasOwnProperty("id")) + $root.flyteidl.core.Identifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.spec != null && message.hasOwnProperty("spec")) + $root.flyteidl.admin.LaunchPlanSpec.encode(message.spec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.closure != null && message.hasOwnProperty("closure")) + $root.flyteidl.admin.LaunchPlanClosure.encode(message.closure, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Decodes a CronSchedule message from the specified reader or buffer. + * Decodes a LaunchPlan message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.CronSchedule + * @memberof flyteidl.admin.LaunchPlan * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.CronSchedule} CronSchedule + * @returns {flyteidl.admin.LaunchPlan} LaunchPlan * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CronSchedule.decode = function decode(reader, length) { + LaunchPlan.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.CronSchedule(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlan(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.schedule = reader.string(); + message.id = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); break; case 2: - message.offset = reader.string(); + message.spec = $root.flyteidl.admin.LaunchPlanSpec.decode(reader, reader.uint32()); + break; + case 3: + message.closure = $root.flyteidl.admin.LaunchPlanClosure.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -37363,49 +37527,57 @@ }; /** - * Verifies a CronSchedule message. + * Verifies a LaunchPlan message. * @function verify - * @memberof flyteidl.admin.CronSchedule + * @memberof flyteidl.admin.LaunchPlan * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CronSchedule.verify = function verify(message) { + LaunchPlan.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.schedule != null && message.hasOwnProperty("schedule")) - if (!$util.isString(message.schedule)) - return "schedule: string expected"; - if (message.offset != null && message.hasOwnProperty("offset")) - if (!$util.isString(message.offset)) - return "offset: string expected"; + if (message.id != null && message.hasOwnProperty("id")) { + var error = $root.flyteidl.core.Identifier.verify(message.id); + if (error) + return "id." + error; + } + if (message.spec != null && message.hasOwnProperty("spec")) { + var error = $root.flyteidl.admin.LaunchPlanSpec.verify(message.spec); + if (error) + return "spec." + error; + } + if (message.closure != null && message.hasOwnProperty("closure")) { + var error = $root.flyteidl.admin.LaunchPlanClosure.verify(message.closure); + if (error) + return "closure." + error; + } return null; }; - return CronSchedule; + return LaunchPlan; })(); - admin.Schedule = (function() { + admin.LaunchPlanList = (function() { /** - * Properties of a Schedule. + * Properties of a LaunchPlanList. * @memberof flyteidl.admin - * @interface ISchedule - * @property {string|null} [cronExpression] Schedule cronExpression - * @property {flyteidl.admin.IFixedRate|null} [rate] Schedule rate - * @property {flyteidl.admin.ICronSchedule|null} [cronSchedule] Schedule cronSchedule - * @property {string|null} [kickoffTimeInputArg] Schedule kickoffTimeInputArg + * @interface ILaunchPlanList + * @property {Array.|null} [launchPlans] LaunchPlanList launchPlans + * @property {string|null} [token] LaunchPlanList token */ /** - * Constructs a new Schedule. + * Constructs a new LaunchPlanList. * @memberof flyteidl.admin - * @classdesc Represents a Schedule. - * @implements ISchedule + * @classdesc Represents a LaunchPlanList. + * @implements ILaunchPlanList * @constructor - * @param {flyteidl.admin.ISchedule=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanList=} [properties] Properties to set */ - function Schedule(properties) { + function LaunchPlanList(properties) { + this.launchPlans = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37413,115 +37585,78 @@ } /** - * Schedule cronExpression. - * @member {string} cronExpression - * @memberof flyteidl.admin.Schedule - * @instance - */ - Schedule.prototype.cronExpression = ""; - - /** - * Schedule rate. - * @member {flyteidl.admin.IFixedRate|null|undefined} rate - * @memberof flyteidl.admin.Schedule - * @instance - */ - Schedule.prototype.rate = null; - - /** - * Schedule cronSchedule. - * @member {flyteidl.admin.ICronSchedule|null|undefined} cronSchedule - * @memberof flyteidl.admin.Schedule - * @instance - */ - Schedule.prototype.cronSchedule = null; - - /** - * Schedule kickoffTimeInputArg. - * @member {string} kickoffTimeInputArg - * @memberof flyteidl.admin.Schedule + * LaunchPlanList launchPlans. + * @member {Array.} launchPlans + * @memberof flyteidl.admin.LaunchPlanList * @instance */ - Schedule.prototype.kickoffTimeInputArg = ""; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + LaunchPlanList.prototype.launchPlans = $util.emptyArray; /** - * Schedule ScheduleExpression. - * @member {"cronExpression"|"rate"|"cronSchedule"|undefined} ScheduleExpression - * @memberof flyteidl.admin.Schedule + * LaunchPlanList token. + * @member {string} token + * @memberof flyteidl.admin.LaunchPlanList * @instance */ - Object.defineProperty(Schedule.prototype, "ScheduleExpression", { - get: $util.oneOfGetter($oneOfFields = ["cronExpression", "rate", "cronSchedule"]), - set: $util.oneOfSetter($oneOfFields) - }); + LaunchPlanList.prototype.token = ""; /** - * Creates a new Schedule instance using the specified properties. + * Creates a new LaunchPlanList instance using the specified properties. * @function create - * @memberof flyteidl.admin.Schedule + * @memberof flyteidl.admin.LaunchPlanList * @static - * @param {flyteidl.admin.ISchedule=} [properties] Properties to set - * @returns {flyteidl.admin.Schedule} Schedule instance + * @param {flyteidl.admin.ILaunchPlanList=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanList} LaunchPlanList instance */ - Schedule.create = function create(properties) { - return new Schedule(properties); + LaunchPlanList.create = function create(properties) { + return new LaunchPlanList(properties); }; /** - * Encodes the specified Schedule message. Does not implicitly {@link flyteidl.admin.Schedule.verify|verify} messages. + * Encodes the specified LaunchPlanList message. Does not implicitly {@link flyteidl.admin.LaunchPlanList.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.Schedule + * @memberof flyteidl.admin.LaunchPlanList * @static - * @param {flyteidl.admin.ISchedule} message Schedule message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanList} message LaunchPlanList message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Schedule.encode = function encode(message, writer) { + LaunchPlanList.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.cronExpression != null && message.hasOwnProperty("cronExpression")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.cronExpression); - if (message.rate != null && message.hasOwnProperty("rate")) - $root.flyteidl.admin.FixedRate.encode(message.rate, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.kickoffTimeInputArg != null && message.hasOwnProperty("kickoffTimeInputArg")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.kickoffTimeInputArg); - if (message.cronSchedule != null && message.hasOwnProperty("cronSchedule")) - $root.flyteidl.admin.CronSchedule.encode(message.cronSchedule, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.launchPlans != null && message.launchPlans.length) + for (var i = 0; i < message.launchPlans.length; ++i) + $root.flyteidl.admin.LaunchPlan.encode(message.launchPlans[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.token != null && message.hasOwnProperty("token")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.token); return writer; }; /** - * Decodes a Schedule message from the specified reader or buffer. + * Decodes a LaunchPlanList message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.Schedule + * @memberof flyteidl.admin.LaunchPlanList * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.Schedule} Schedule + * @returns {flyteidl.admin.LaunchPlanList} LaunchPlanList * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Schedule.decode = function decode(reader, length) { + LaunchPlanList.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.Schedule(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanList(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.cronExpression = reader.string(); + if (!(message.launchPlans && message.launchPlans.length)) + message.launchPlans = []; + message.launchPlans.push($root.flyteidl.admin.LaunchPlan.decode(reader, reader.uint32())); break; case 2: - message.rate = $root.flyteidl.admin.FixedRate.decode(reader, reader.uint32()); - break; - case 4: - message.cronSchedule = $root.flyteidl.admin.CronSchedule.decode(reader, reader.uint32()); - break; - case 3: - message.kickoffTimeInputArg = reader.string(); + message.token = reader.string(); break; default: reader.skipType(tag & 7); @@ -37532,99 +37667,53 @@ }; /** - * Verifies a Schedule message. + * Verifies a LaunchPlanList message. * @function verify - * @memberof flyteidl.admin.Schedule + * @memberof flyteidl.admin.LaunchPlanList * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Schedule.verify = function verify(message) { + LaunchPlanList.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.cronExpression != null && message.hasOwnProperty("cronExpression")) { - properties.ScheduleExpression = 1; - if (!$util.isString(message.cronExpression)) - return "cronExpression: string expected"; - } - if (message.rate != null && message.hasOwnProperty("rate")) { - if (properties.ScheduleExpression === 1) - return "ScheduleExpression: multiple values"; - properties.ScheduleExpression = 1; - { - var error = $root.flyteidl.admin.FixedRate.verify(message.rate); - if (error) - return "rate." + error; - } - } - if (message.cronSchedule != null && message.hasOwnProperty("cronSchedule")) { - if (properties.ScheduleExpression === 1) - return "ScheduleExpression: multiple values"; - properties.ScheduleExpression = 1; - { - var error = $root.flyteidl.admin.CronSchedule.verify(message.cronSchedule); + if (message.launchPlans != null && message.hasOwnProperty("launchPlans")) { + if (!Array.isArray(message.launchPlans)) + return "launchPlans: array expected"; + for (var i = 0; i < message.launchPlans.length; ++i) { + var error = $root.flyteidl.admin.LaunchPlan.verify(message.launchPlans[i]); if (error) - return "cronSchedule." + error; + return "launchPlans." + error; } } - if (message.kickoffTimeInputArg != null && message.hasOwnProperty("kickoffTimeInputArg")) - if (!$util.isString(message.kickoffTimeInputArg)) - return "kickoffTimeInputArg: string expected"; + if (message.token != null && message.hasOwnProperty("token")) + if (!$util.isString(message.token)) + return "token: string expected"; return null; }; - return Schedule; + return LaunchPlanList; })(); - /** - * MatchableResource enum. - * @name flyteidl.admin.MatchableResource - * @enum {string} - * @property {number} TASK_RESOURCE=0 TASK_RESOURCE value - * @property {number} CLUSTER_RESOURCE=1 CLUSTER_RESOURCE value - * @property {number} EXECUTION_QUEUE=2 EXECUTION_QUEUE value - * @property {number} EXECUTION_CLUSTER_LABEL=3 EXECUTION_CLUSTER_LABEL value - * @property {number} QUALITY_OF_SERVICE_SPECIFICATION=4 QUALITY_OF_SERVICE_SPECIFICATION value - * @property {number} PLUGIN_OVERRIDE=5 PLUGIN_OVERRIDE value - * @property {number} WORKFLOW_EXECUTION_CONFIG=6 WORKFLOW_EXECUTION_CONFIG value - * @property {number} CLUSTER_ASSIGNMENT=7 CLUSTER_ASSIGNMENT value - */ - admin.MatchableResource = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "TASK_RESOURCE"] = 0; - values[valuesById[1] = "CLUSTER_RESOURCE"] = 1; - values[valuesById[2] = "EXECUTION_QUEUE"] = 2; - values[valuesById[3] = "EXECUTION_CLUSTER_LABEL"] = 3; - values[valuesById[4] = "QUALITY_OF_SERVICE_SPECIFICATION"] = 4; - values[valuesById[5] = "PLUGIN_OVERRIDE"] = 5; - values[valuesById[6] = "WORKFLOW_EXECUTION_CONFIG"] = 6; - values[valuesById[7] = "CLUSTER_ASSIGNMENT"] = 7; - return values; - })(); - - admin.TaskResourceSpec = (function() { + admin.Auth = (function() { /** - * Properties of a TaskResourceSpec. + * Properties of an Auth. * @memberof flyteidl.admin - * @interface ITaskResourceSpec - * @property {string|null} [cpu] TaskResourceSpec cpu - * @property {string|null} [gpu] TaskResourceSpec gpu - * @property {string|null} [memory] TaskResourceSpec memory - * @property {string|null} [storage] TaskResourceSpec storage - * @property {string|null} [ephemeralStorage] TaskResourceSpec ephemeralStorage + * @interface IAuth + * @property {string|null} [assumableIamRole] Auth assumableIamRole + * @property {string|null} [kubernetesServiceAccount] Auth kubernetesServiceAccount */ /** - * Constructs a new TaskResourceSpec. + * Constructs a new Auth. * @memberof flyteidl.admin - * @classdesc Represents a TaskResourceSpec. - * @implements ITaskResourceSpec + * @classdesc Represents an Auth. + * @implements IAuth * @constructor - * @param {flyteidl.admin.ITaskResourceSpec=} [properties] Properties to set + * @param {flyteidl.admin.IAuth=} [properties] Properties to set */ - function TaskResourceSpec(properties) { + function Auth(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37632,114 +37721,75 @@ } /** - * TaskResourceSpec cpu. - * @member {string} cpu - * @memberof flyteidl.admin.TaskResourceSpec - * @instance - */ - TaskResourceSpec.prototype.cpu = ""; - - /** - * TaskResourceSpec gpu. - * @member {string} gpu - * @memberof flyteidl.admin.TaskResourceSpec - * @instance - */ - TaskResourceSpec.prototype.gpu = ""; - - /** - * TaskResourceSpec memory. - * @member {string} memory - * @memberof flyteidl.admin.TaskResourceSpec - * @instance - */ - TaskResourceSpec.prototype.memory = ""; - - /** - * TaskResourceSpec storage. - * @member {string} storage - * @memberof flyteidl.admin.TaskResourceSpec + * Auth assumableIamRole. + * @member {string} assumableIamRole + * @memberof flyteidl.admin.Auth * @instance */ - TaskResourceSpec.prototype.storage = ""; + Auth.prototype.assumableIamRole = ""; /** - * TaskResourceSpec ephemeralStorage. - * @member {string} ephemeralStorage - * @memberof flyteidl.admin.TaskResourceSpec + * Auth kubernetesServiceAccount. + * @member {string} kubernetesServiceAccount + * @memberof flyteidl.admin.Auth * @instance */ - TaskResourceSpec.prototype.ephemeralStorage = ""; + Auth.prototype.kubernetesServiceAccount = ""; /** - * Creates a new TaskResourceSpec instance using the specified properties. + * Creates a new Auth instance using the specified properties. * @function create - * @memberof flyteidl.admin.TaskResourceSpec + * @memberof flyteidl.admin.Auth * @static - * @param {flyteidl.admin.ITaskResourceSpec=} [properties] Properties to set - * @returns {flyteidl.admin.TaskResourceSpec} TaskResourceSpec instance + * @param {flyteidl.admin.IAuth=} [properties] Properties to set + * @returns {flyteidl.admin.Auth} Auth instance */ - TaskResourceSpec.create = function create(properties) { - return new TaskResourceSpec(properties); + Auth.create = function create(properties) { + return new Auth(properties); }; /** - * Encodes the specified TaskResourceSpec message. Does not implicitly {@link flyteidl.admin.TaskResourceSpec.verify|verify} messages. + * Encodes the specified Auth message. Does not implicitly {@link flyteidl.admin.Auth.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.TaskResourceSpec + * @memberof flyteidl.admin.Auth * @static - * @param {flyteidl.admin.ITaskResourceSpec} message TaskResourceSpec message or plain object to encode + * @param {flyteidl.admin.IAuth} message Auth message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - TaskResourceSpec.encode = function encode(message, writer) { + Auth.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.cpu != null && message.hasOwnProperty("cpu")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.cpu); - if (message.gpu != null && message.hasOwnProperty("gpu")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.gpu); - if (message.memory != null && message.hasOwnProperty("memory")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.memory); - if (message.storage != null && message.hasOwnProperty("storage")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.storage); - if (message.ephemeralStorage != null && message.hasOwnProperty("ephemeralStorage")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.ephemeralStorage); + if (message.assumableIamRole != null && message.hasOwnProperty("assumableIamRole")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.assumableIamRole); + if (message.kubernetesServiceAccount != null && message.hasOwnProperty("kubernetesServiceAccount")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.kubernetesServiceAccount); return writer; }; /** - * Decodes a TaskResourceSpec message from the specified reader or buffer. + * Decodes an Auth message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.TaskResourceSpec + * @memberof flyteidl.admin.Auth * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.TaskResourceSpec} TaskResourceSpec + * @returns {flyteidl.admin.Auth} Auth * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TaskResourceSpec.decode = function decode(reader, length) { + Auth.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.TaskResourceSpec(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.Auth(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.cpu = reader.string(); + message.assumableIamRole = reader.string(); break; case 2: - message.gpu = reader.string(); - break; - case 3: - message.memory = reader.string(); - break; - case 4: - message.storage = reader.string(); - break; - case 5: - message.ephemeralStorage = reader.string(); + message.kubernetesServiceAccount = reader.string(); break; default: reader.skipType(tag & 7); @@ -37750,56 +37800,61 @@ }; /** - * Verifies a TaskResourceSpec message. + * Verifies an Auth message. * @function verify - * @memberof flyteidl.admin.TaskResourceSpec + * @memberof flyteidl.admin.Auth * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TaskResourceSpec.verify = function verify(message) { + Auth.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.cpu != null && message.hasOwnProperty("cpu")) - if (!$util.isString(message.cpu)) - return "cpu: string expected"; - if (message.gpu != null && message.hasOwnProperty("gpu")) - if (!$util.isString(message.gpu)) - return "gpu: string expected"; - if (message.memory != null && message.hasOwnProperty("memory")) - if (!$util.isString(message.memory)) - return "memory: string expected"; - if (message.storage != null && message.hasOwnProperty("storage")) - if (!$util.isString(message.storage)) - return "storage: string expected"; - if (message.ephemeralStorage != null && message.hasOwnProperty("ephemeralStorage")) - if (!$util.isString(message.ephemeralStorage)) - return "ephemeralStorage: string expected"; + if (message.assumableIamRole != null && message.hasOwnProperty("assumableIamRole")) + if (!$util.isString(message.assumableIamRole)) + return "assumableIamRole: string expected"; + if (message.kubernetesServiceAccount != null && message.hasOwnProperty("kubernetesServiceAccount")) + if (!$util.isString(message.kubernetesServiceAccount)) + return "kubernetesServiceAccount: string expected"; return null; }; - return TaskResourceSpec; + return Auth; })(); - admin.TaskResourceAttributes = (function() { + admin.LaunchPlanSpec = (function() { /** - * Properties of a TaskResourceAttributes. + * Properties of a LaunchPlanSpec. * @memberof flyteidl.admin - * @interface ITaskResourceAttributes - * @property {flyteidl.admin.ITaskResourceSpec|null} [defaults] TaskResourceAttributes defaults - * @property {flyteidl.admin.ITaskResourceSpec|null} [limits] TaskResourceAttributes limits + * @interface ILaunchPlanSpec + * @property {flyteidl.core.IIdentifier|null} [workflowId] LaunchPlanSpec workflowId + * @property {flyteidl.admin.ILaunchPlanMetadata|null} [entityMetadata] LaunchPlanSpec entityMetadata + * @property {flyteidl.core.IParameterMap|null} [defaultInputs] LaunchPlanSpec defaultInputs + * @property {flyteidl.core.ILiteralMap|null} [fixedInputs] LaunchPlanSpec fixedInputs + * @property {string|null} [role] LaunchPlanSpec role + * @property {flyteidl.admin.ILabels|null} [labels] LaunchPlanSpec labels + * @property {flyteidl.admin.IAnnotations|null} [annotations] LaunchPlanSpec annotations + * @property {flyteidl.admin.IAuth|null} [auth] LaunchPlanSpec auth + * @property {flyteidl.admin.IAuthRole|null} [authRole] LaunchPlanSpec authRole + * @property {flyteidl.core.ISecurityContext|null} [securityContext] LaunchPlanSpec securityContext + * @property {flyteidl.core.IQualityOfService|null} [qualityOfService] LaunchPlanSpec qualityOfService + * @property {flyteidl.admin.IRawOutputDataConfig|null} [rawOutputDataConfig] LaunchPlanSpec rawOutputDataConfig + * @property {number|null} [maxParallelism] LaunchPlanSpec maxParallelism + * @property {google.protobuf.IBoolValue|null} [interruptible] LaunchPlanSpec interruptible + * @property {boolean|null} [overwriteCache] LaunchPlanSpec overwriteCache + * @property {flyteidl.admin.IEnvs|null} [envs] LaunchPlanSpec envs */ /** - * Constructs a new TaskResourceAttributes. + * Constructs a new LaunchPlanSpec. * @memberof flyteidl.admin - * @classdesc Represents a TaskResourceAttributes. - * @implements ITaskResourceAttributes + * @classdesc Represents a LaunchPlanSpec. + * @implements ILaunchPlanSpec * @constructor - * @param {flyteidl.admin.ITaskResourceAttributes=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanSpec=} [properties] Properties to set */ - function TaskResourceAttributes(properties) { + function LaunchPlanSpec(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -37807,252 +37862,379 @@ } /** - * TaskResourceAttributes defaults. - * @member {flyteidl.admin.ITaskResourceSpec|null|undefined} defaults - * @memberof flyteidl.admin.TaskResourceAttributes + * LaunchPlanSpec workflowId. + * @member {flyteidl.core.IIdentifier|null|undefined} workflowId + * @memberof flyteidl.admin.LaunchPlanSpec * @instance */ - TaskResourceAttributes.prototype.defaults = null; + LaunchPlanSpec.prototype.workflowId = null; /** - * TaskResourceAttributes limits. - * @member {flyteidl.admin.ITaskResourceSpec|null|undefined} limits - * @memberof flyteidl.admin.TaskResourceAttributes + * LaunchPlanSpec entityMetadata. + * @member {flyteidl.admin.ILaunchPlanMetadata|null|undefined} entityMetadata + * @memberof flyteidl.admin.LaunchPlanSpec * @instance */ - TaskResourceAttributes.prototype.limits = null; + LaunchPlanSpec.prototype.entityMetadata = null; /** - * Creates a new TaskResourceAttributes instance using the specified properties. - * @function create - * @memberof flyteidl.admin.TaskResourceAttributes - * @static - * @param {flyteidl.admin.ITaskResourceAttributes=} [properties] Properties to set - * @returns {flyteidl.admin.TaskResourceAttributes} TaskResourceAttributes instance + * LaunchPlanSpec defaultInputs. + * @member {flyteidl.core.IParameterMap|null|undefined} defaultInputs + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance */ - TaskResourceAttributes.create = function create(properties) { - return new TaskResourceAttributes(properties); - }; + LaunchPlanSpec.prototype.defaultInputs = null; /** - * Encodes the specified TaskResourceAttributes message. Does not implicitly {@link flyteidl.admin.TaskResourceAttributes.verify|verify} messages. - * @function encode - * @memberof flyteidl.admin.TaskResourceAttributes - * @static - * @param {flyteidl.admin.ITaskResourceAttributes} message TaskResourceAttributes message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer + * LaunchPlanSpec fixedInputs. + * @member {flyteidl.core.ILiteralMap|null|undefined} fixedInputs + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance */ - TaskResourceAttributes.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.defaults != null && message.hasOwnProperty("defaults")) - $root.flyteidl.admin.TaskResourceSpec.encode(message.defaults, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.limits != null && message.hasOwnProperty("limits")) - $root.flyteidl.admin.TaskResourceSpec.encode(message.limits, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + LaunchPlanSpec.prototype.fixedInputs = null; /** - * Decodes a TaskResourceAttributes message from the specified reader or buffer. - * @function decode - * @memberof flyteidl.admin.TaskResourceAttributes - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.TaskResourceAttributes} TaskResourceAttributes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing + * LaunchPlanSpec role. + * @member {string} role + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance */ - TaskResourceAttributes.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.TaskResourceAttributes(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.defaults = $root.flyteidl.admin.TaskResourceSpec.decode(reader, reader.uint32()); - break; - case 2: - message.limits = $root.flyteidl.admin.TaskResourceSpec.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + LaunchPlanSpec.prototype.role = ""; /** - * Verifies a TaskResourceAttributes message. - * @function verify - * @memberof flyteidl.admin.TaskResourceAttributes - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not + * LaunchPlanSpec labels. + * @member {flyteidl.admin.ILabels|null|undefined} labels + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance */ - TaskResourceAttributes.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.defaults != null && message.hasOwnProperty("defaults")) { - var error = $root.flyteidl.admin.TaskResourceSpec.verify(message.defaults); - if (error) - return "defaults." + error; - } - if (message.limits != null && message.hasOwnProperty("limits")) { - var error = $root.flyteidl.admin.TaskResourceSpec.verify(message.limits); - if (error) - return "limits." + error; - } - return null; - }; + LaunchPlanSpec.prototype.labels = null; - return TaskResourceAttributes; - })(); + /** + * LaunchPlanSpec annotations. + * @member {flyteidl.admin.IAnnotations|null|undefined} annotations + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.annotations = null; - admin.ClusterResourceAttributes = (function() { + /** + * LaunchPlanSpec auth. + * @member {flyteidl.admin.IAuth|null|undefined} auth + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.auth = null; /** - * Properties of a ClusterResourceAttributes. - * @memberof flyteidl.admin - * @interface IClusterResourceAttributes - * @property {Object.|null} [attributes] ClusterResourceAttributes attributes + * LaunchPlanSpec authRole. + * @member {flyteidl.admin.IAuthRole|null|undefined} authRole + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance */ + LaunchPlanSpec.prototype.authRole = null; /** - * Constructs a new ClusterResourceAttributes. - * @memberof flyteidl.admin - * @classdesc Represents a ClusterResourceAttributes. - * @implements IClusterResourceAttributes - * @constructor - * @param {flyteidl.admin.IClusterResourceAttributes=} [properties] Properties to set + * LaunchPlanSpec securityContext. + * @member {flyteidl.core.ISecurityContext|null|undefined} securityContext + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance */ - function ClusterResourceAttributes(properties) { - this.attributes = {}; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + LaunchPlanSpec.prototype.securityContext = null; /** - * ClusterResourceAttributes attributes. - * @member {Object.} attributes - * @memberof flyteidl.admin.ClusterResourceAttributes + * LaunchPlanSpec qualityOfService. + * @member {flyteidl.core.IQualityOfService|null|undefined} qualityOfService + * @memberof flyteidl.admin.LaunchPlanSpec * @instance */ - ClusterResourceAttributes.prototype.attributes = $util.emptyObject; + LaunchPlanSpec.prototype.qualityOfService = null; /** - * Creates a new ClusterResourceAttributes instance using the specified properties. + * LaunchPlanSpec rawOutputDataConfig. + * @member {flyteidl.admin.IRawOutputDataConfig|null|undefined} rawOutputDataConfig + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.rawOutputDataConfig = null; + + /** + * LaunchPlanSpec maxParallelism. + * @member {number} maxParallelism + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.maxParallelism = 0; + + /** + * LaunchPlanSpec interruptible. + * @member {google.protobuf.IBoolValue|null|undefined} interruptible + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.interruptible = null; + + /** + * LaunchPlanSpec overwriteCache. + * @member {boolean} overwriteCache + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.overwriteCache = false; + + /** + * LaunchPlanSpec envs. + * @member {flyteidl.admin.IEnvs|null|undefined} envs + * @memberof flyteidl.admin.LaunchPlanSpec + * @instance + */ + LaunchPlanSpec.prototype.envs = null; + + /** + * Creates a new LaunchPlanSpec instance using the specified properties. * @function create - * @memberof flyteidl.admin.ClusterResourceAttributes + * @memberof flyteidl.admin.LaunchPlanSpec * @static - * @param {flyteidl.admin.IClusterResourceAttributes=} [properties] Properties to set - * @returns {flyteidl.admin.ClusterResourceAttributes} ClusterResourceAttributes instance + * @param {flyteidl.admin.ILaunchPlanSpec=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanSpec} LaunchPlanSpec instance */ - ClusterResourceAttributes.create = function create(properties) { - return new ClusterResourceAttributes(properties); + LaunchPlanSpec.create = function create(properties) { + return new LaunchPlanSpec(properties); }; /** - * Encodes the specified ClusterResourceAttributes message. Does not implicitly {@link flyteidl.admin.ClusterResourceAttributes.verify|verify} messages. + * Encodes the specified LaunchPlanSpec message. Does not implicitly {@link flyteidl.admin.LaunchPlanSpec.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ClusterResourceAttributes + * @memberof flyteidl.admin.LaunchPlanSpec * @static - * @param {flyteidl.admin.IClusterResourceAttributes} message ClusterResourceAttributes message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanSpec} message LaunchPlanSpec message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ClusterResourceAttributes.encode = function encode(message, writer) { + LaunchPlanSpec.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.attributes != null && message.hasOwnProperty("attributes")) - for (var keys = Object.keys(message.attributes), i = 0; i < keys.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.attributes[keys[i]]).ldelim(); + if (message.workflowId != null && message.hasOwnProperty("workflowId")) + $root.flyteidl.core.Identifier.encode(message.workflowId, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.entityMetadata != null && message.hasOwnProperty("entityMetadata")) + $root.flyteidl.admin.LaunchPlanMetadata.encode(message.entityMetadata, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.defaultInputs != null && message.hasOwnProperty("defaultInputs")) + $root.flyteidl.core.ParameterMap.encode(message.defaultInputs, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.fixedInputs != null && message.hasOwnProperty("fixedInputs")) + $root.flyteidl.core.LiteralMap.encode(message.fixedInputs, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.role != null && message.hasOwnProperty("role")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.role); + if (message.labels != null && message.hasOwnProperty("labels")) + $root.flyteidl.admin.Labels.encode(message.labels, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.annotations != null && message.hasOwnProperty("annotations")) + $root.flyteidl.admin.Annotations.encode(message.annotations, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.auth != null && message.hasOwnProperty("auth")) + $root.flyteidl.admin.Auth.encode(message.auth, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.authRole != null && message.hasOwnProperty("authRole")) + $root.flyteidl.admin.AuthRole.encode(message.authRole, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); + if (message.securityContext != null && message.hasOwnProperty("securityContext")) + $root.flyteidl.core.SecurityContext.encode(message.securityContext, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) + $root.flyteidl.core.QualityOfService.encode(message.qualityOfService, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) + $root.flyteidl.admin.RawOutputDataConfig.encode(message.rawOutputDataConfig, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); + if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) + writer.uint32(/* id 18, wireType 0 =*/144).int32(message.maxParallelism); + if (message.interruptible != null && message.hasOwnProperty("interruptible")) + $root.google.protobuf.BoolValue.encode(message.interruptible, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) + writer.uint32(/* id 20, wireType 0 =*/160).bool(message.overwriteCache); + if (message.envs != null && message.hasOwnProperty("envs")) + $root.flyteidl.admin.Envs.encode(message.envs, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim(); return writer; }; /** - * Decodes a ClusterResourceAttributes message from the specified reader or buffer. + * Decodes a LaunchPlanSpec message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ClusterResourceAttributes + * @memberof flyteidl.admin.LaunchPlanSpec * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ClusterResourceAttributes} ClusterResourceAttributes + * @returns {flyteidl.admin.LaunchPlanSpec} LaunchPlanSpec * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClusterResourceAttributes.decode = function decode(reader, length) { + LaunchPlanSpec.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ClusterResourceAttributes(), key; + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanSpec(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - reader.skip().pos++; - if (message.attributes === $util.emptyObject) - message.attributes = {}; - key = reader.string(); - reader.pos++; - message.attributes[key] = reader.string(); + message.workflowId = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); + break; + case 2: + message.entityMetadata = $root.flyteidl.admin.LaunchPlanMetadata.decode(reader, reader.uint32()); + break; + case 3: + message.defaultInputs = $root.flyteidl.core.ParameterMap.decode(reader, reader.uint32()); + break; + case 4: + message.fixedInputs = $root.flyteidl.core.LiteralMap.decode(reader, reader.uint32()); + break; + case 5: + message.role = reader.string(); + break; + case 6: + message.labels = $root.flyteidl.admin.Labels.decode(reader, reader.uint32()); + break; + case 7: + message.annotations = $root.flyteidl.admin.Annotations.decode(reader, reader.uint32()); + break; + case 8: + message.auth = $root.flyteidl.admin.Auth.decode(reader, reader.uint32()); + break; + case 9: + message.authRole = $root.flyteidl.admin.AuthRole.decode(reader, reader.uint32()); + break; + case 10: + message.securityContext = $root.flyteidl.core.SecurityContext.decode(reader, reader.uint32()); + break; + case 16: + message.qualityOfService = $root.flyteidl.core.QualityOfService.decode(reader, reader.uint32()); + break; + case 17: + message.rawOutputDataConfig = $root.flyteidl.admin.RawOutputDataConfig.decode(reader, reader.uint32()); + break; + case 18: + message.maxParallelism = reader.int32(); + break; + case 19: + message.interruptible = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + break; + case 20: + message.overwriteCache = reader.bool(); + break; + case 21: + message.envs = $root.flyteidl.admin.Envs.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } - return message; - }; - - /** - * Verifies a ClusterResourceAttributes message. - * @function verify - * @memberof flyteidl.admin.ClusterResourceAttributes - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ClusterResourceAttributes.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.attributes != null && message.hasOwnProperty("attributes")) { - if (!$util.isObject(message.attributes)) - return "attributes: object expected"; - var key = Object.keys(message.attributes); - for (var i = 0; i < key.length; ++i) - if (!$util.isString(message.attributes[key[i]])) - return "attributes: string{k:string} expected"; + return message; + }; + + /** + * Verifies a LaunchPlanSpec message. + * @function verify + * @memberof flyteidl.admin.LaunchPlanSpec + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + LaunchPlanSpec.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.workflowId != null && message.hasOwnProperty("workflowId")) { + var error = $root.flyteidl.core.Identifier.verify(message.workflowId); + if (error) + return "workflowId." + error; + } + if (message.entityMetadata != null && message.hasOwnProperty("entityMetadata")) { + var error = $root.flyteidl.admin.LaunchPlanMetadata.verify(message.entityMetadata); + if (error) + return "entityMetadata." + error; + } + if (message.defaultInputs != null && message.hasOwnProperty("defaultInputs")) { + var error = $root.flyteidl.core.ParameterMap.verify(message.defaultInputs); + if (error) + return "defaultInputs." + error; + } + if (message.fixedInputs != null && message.hasOwnProperty("fixedInputs")) { + var error = $root.flyteidl.core.LiteralMap.verify(message.fixedInputs); + if (error) + return "fixedInputs." + error; + } + if (message.role != null && message.hasOwnProperty("role")) + if (!$util.isString(message.role)) + return "role: string expected"; + if (message.labels != null && message.hasOwnProperty("labels")) { + var error = $root.flyteidl.admin.Labels.verify(message.labels); + if (error) + return "labels." + error; + } + if (message.annotations != null && message.hasOwnProperty("annotations")) { + var error = $root.flyteidl.admin.Annotations.verify(message.annotations); + if (error) + return "annotations." + error; + } + if (message.auth != null && message.hasOwnProperty("auth")) { + var error = $root.flyteidl.admin.Auth.verify(message.auth); + if (error) + return "auth." + error; + } + if (message.authRole != null && message.hasOwnProperty("authRole")) { + var error = $root.flyteidl.admin.AuthRole.verify(message.authRole); + if (error) + return "authRole." + error; + } + if (message.securityContext != null && message.hasOwnProperty("securityContext")) { + var error = $root.flyteidl.core.SecurityContext.verify(message.securityContext); + if (error) + return "securityContext." + error; + } + if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) { + var error = $root.flyteidl.core.QualityOfService.verify(message.qualityOfService); + if (error) + return "qualityOfService." + error; + } + if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) { + var error = $root.flyteidl.admin.RawOutputDataConfig.verify(message.rawOutputDataConfig); + if (error) + return "rawOutputDataConfig." + error; + } + if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) + if (!$util.isInteger(message.maxParallelism)) + return "maxParallelism: integer expected"; + if (message.interruptible != null && message.hasOwnProperty("interruptible")) { + var error = $root.google.protobuf.BoolValue.verify(message.interruptible); + if (error) + return "interruptible." + error; + } + if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) + if (typeof message.overwriteCache !== "boolean") + return "overwriteCache: boolean expected"; + if (message.envs != null && message.hasOwnProperty("envs")) { + var error = $root.flyteidl.admin.Envs.verify(message.envs); + if (error) + return "envs." + error; } return null; }; - return ClusterResourceAttributes; + return LaunchPlanSpec; })(); - admin.ExecutionQueueAttributes = (function() { + admin.LaunchPlanClosure = (function() { /** - * Properties of an ExecutionQueueAttributes. + * Properties of a LaunchPlanClosure. * @memberof flyteidl.admin - * @interface IExecutionQueueAttributes - * @property {Array.|null} [tags] ExecutionQueueAttributes tags + * @interface ILaunchPlanClosure + * @property {flyteidl.admin.LaunchPlanState|null} [state] LaunchPlanClosure state + * @property {flyteidl.core.IParameterMap|null} [expectedInputs] LaunchPlanClosure expectedInputs + * @property {flyteidl.core.IVariableMap|null} [expectedOutputs] LaunchPlanClosure expectedOutputs + * @property {google.protobuf.ITimestamp|null} [createdAt] LaunchPlanClosure createdAt + * @property {google.protobuf.ITimestamp|null} [updatedAt] LaunchPlanClosure updatedAt */ /** - * Constructs a new ExecutionQueueAttributes. + * Constructs a new LaunchPlanClosure. * @memberof flyteidl.admin - * @classdesc Represents an ExecutionQueueAttributes. - * @implements IExecutionQueueAttributes + * @classdesc Represents a LaunchPlanClosure. + * @implements ILaunchPlanClosure * @constructor - * @param {flyteidl.admin.IExecutionQueueAttributes=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanClosure=} [properties] Properties to set */ - function ExecutionQueueAttributes(properties) { - this.tags = []; + function LaunchPlanClosure(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38060,65 +38242,114 @@ } /** - * ExecutionQueueAttributes tags. - * @member {Array.} tags - * @memberof flyteidl.admin.ExecutionQueueAttributes + * LaunchPlanClosure state. + * @member {flyteidl.admin.LaunchPlanState} state + * @memberof flyteidl.admin.LaunchPlanClosure * @instance */ - ExecutionQueueAttributes.prototype.tags = $util.emptyArray; + LaunchPlanClosure.prototype.state = 0; /** - * Creates a new ExecutionQueueAttributes instance using the specified properties. + * LaunchPlanClosure expectedInputs. + * @member {flyteidl.core.IParameterMap|null|undefined} expectedInputs + * @memberof flyteidl.admin.LaunchPlanClosure + * @instance + */ + LaunchPlanClosure.prototype.expectedInputs = null; + + /** + * LaunchPlanClosure expectedOutputs. + * @member {flyteidl.core.IVariableMap|null|undefined} expectedOutputs + * @memberof flyteidl.admin.LaunchPlanClosure + * @instance + */ + LaunchPlanClosure.prototype.expectedOutputs = null; + + /** + * LaunchPlanClosure createdAt. + * @member {google.protobuf.ITimestamp|null|undefined} createdAt + * @memberof flyteidl.admin.LaunchPlanClosure + * @instance + */ + LaunchPlanClosure.prototype.createdAt = null; + + /** + * LaunchPlanClosure updatedAt. + * @member {google.protobuf.ITimestamp|null|undefined} updatedAt + * @memberof flyteidl.admin.LaunchPlanClosure + * @instance + */ + LaunchPlanClosure.prototype.updatedAt = null; + + /** + * Creates a new LaunchPlanClosure instance using the specified properties. * @function create - * @memberof flyteidl.admin.ExecutionQueueAttributes + * @memberof flyteidl.admin.LaunchPlanClosure * @static - * @param {flyteidl.admin.IExecutionQueueAttributes=} [properties] Properties to set - * @returns {flyteidl.admin.ExecutionQueueAttributes} ExecutionQueueAttributes instance + * @param {flyteidl.admin.ILaunchPlanClosure=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanClosure} LaunchPlanClosure instance */ - ExecutionQueueAttributes.create = function create(properties) { - return new ExecutionQueueAttributes(properties); + LaunchPlanClosure.create = function create(properties) { + return new LaunchPlanClosure(properties); }; /** - * Encodes the specified ExecutionQueueAttributes message. Does not implicitly {@link flyteidl.admin.ExecutionQueueAttributes.verify|verify} messages. + * Encodes the specified LaunchPlanClosure message. Does not implicitly {@link flyteidl.admin.LaunchPlanClosure.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ExecutionQueueAttributes + * @memberof flyteidl.admin.LaunchPlanClosure * @static - * @param {flyteidl.admin.IExecutionQueueAttributes} message ExecutionQueueAttributes message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanClosure} message LaunchPlanClosure message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExecutionQueueAttributes.encode = function encode(message, writer) { + LaunchPlanClosure.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.tags != null && message.tags.length) - for (var i = 0; i < message.tags.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.tags[i]); + if (message.state != null && message.hasOwnProperty("state")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); + if (message.expectedInputs != null && message.hasOwnProperty("expectedInputs")) + $root.flyteidl.core.ParameterMap.encode(message.expectedInputs, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.expectedOutputs != null && message.hasOwnProperty("expectedOutputs")) + $root.flyteidl.core.VariableMap.encode(message.expectedOutputs, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.createdAt != null && message.hasOwnProperty("createdAt")) + $root.google.protobuf.Timestamp.encode(message.createdAt, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.updatedAt != null && message.hasOwnProperty("updatedAt")) + $root.google.protobuf.Timestamp.encode(message.updatedAt, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; /** - * Decodes an ExecutionQueueAttributes message from the specified reader or buffer. + * Decodes a LaunchPlanClosure message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ExecutionQueueAttributes + * @memberof flyteidl.admin.LaunchPlanClosure * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ExecutionQueueAttributes} ExecutionQueueAttributes + * @returns {flyteidl.admin.LaunchPlanClosure} LaunchPlanClosure * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExecutionQueueAttributes.decode = function decode(reader, length) { + LaunchPlanClosure.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionQueueAttributes(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanClosure(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.tags && message.tags.length)) - message.tags = []; - message.tags.push(reader.string()); + message.state = reader.int32(); + break; + case 2: + message.expectedInputs = $root.flyteidl.core.ParameterMap.decode(reader, reader.uint32()); + break; + case 3: + message.expectedOutputs = $root.flyteidl.core.VariableMap.decode(reader, reader.uint32()); + break; + case 4: + message.createdAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 5: + message.updatedAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -38129,47 +38360,71 @@ }; /** - * Verifies an ExecutionQueueAttributes message. + * Verifies a LaunchPlanClosure message. * @function verify - * @memberof flyteidl.admin.ExecutionQueueAttributes + * @memberof flyteidl.admin.LaunchPlanClosure * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExecutionQueueAttributes.verify = function verify(message) { + LaunchPlanClosure.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.tags != null && message.hasOwnProperty("tags")) { - if (!Array.isArray(message.tags)) - return "tags: array expected"; - for (var i = 0; i < message.tags.length; ++i) - if (!$util.isString(message.tags[i])) - return "tags: string[] expected"; + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + break; + } + if (message.expectedInputs != null && message.hasOwnProperty("expectedInputs")) { + var error = $root.flyteidl.core.ParameterMap.verify(message.expectedInputs); + if (error) + return "expectedInputs." + error; + } + if (message.expectedOutputs != null && message.hasOwnProperty("expectedOutputs")) { + var error = $root.flyteidl.core.VariableMap.verify(message.expectedOutputs); + if (error) + return "expectedOutputs." + error; + } + if (message.createdAt != null && message.hasOwnProperty("createdAt")) { + var error = $root.google.protobuf.Timestamp.verify(message.createdAt); + if (error) + return "createdAt." + error; + } + if (message.updatedAt != null && message.hasOwnProperty("updatedAt")) { + var error = $root.google.protobuf.Timestamp.verify(message.updatedAt); + if (error) + return "updatedAt." + error; } return null; }; - return ExecutionQueueAttributes; + return LaunchPlanClosure; })(); - admin.ExecutionClusterLabel = (function() { + admin.LaunchPlanMetadata = (function() { /** - * Properties of an ExecutionClusterLabel. + * Properties of a LaunchPlanMetadata. * @memberof flyteidl.admin - * @interface IExecutionClusterLabel - * @property {string|null} [value] ExecutionClusterLabel value + * @interface ILaunchPlanMetadata + * @property {flyteidl.admin.ISchedule|null} [schedule] LaunchPlanMetadata schedule + * @property {Array.|null} [notifications] LaunchPlanMetadata notifications + * @property {google.protobuf.IAny|null} [launchConditions] LaunchPlanMetadata launchConditions */ /** - * Constructs a new ExecutionClusterLabel. + * Constructs a new LaunchPlanMetadata. * @memberof flyteidl.admin - * @classdesc Represents an ExecutionClusterLabel. - * @implements IExecutionClusterLabel + * @classdesc Represents a LaunchPlanMetadata. + * @implements ILaunchPlanMetadata * @constructor - * @param {flyteidl.admin.IExecutionClusterLabel=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanMetadata=} [properties] Properties to set */ - function ExecutionClusterLabel(properties) { + function LaunchPlanMetadata(properties) { + this.notifications = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38177,62 +38432,91 @@ } /** - * ExecutionClusterLabel value. - * @member {string} value - * @memberof flyteidl.admin.ExecutionClusterLabel + * LaunchPlanMetadata schedule. + * @member {flyteidl.admin.ISchedule|null|undefined} schedule + * @memberof flyteidl.admin.LaunchPlanMetadata * @instance */ - ExecutionClusterLabel.prototype.value = ""; + LaunchPlanMetadata.prototype.schedule = null; /** - * Creates a new ExecutionClusterLabel instance using the specified properties. + * LaunchPlanMetadata notifications. + * @member {Array.} notifications + * @memberof flyteidl.admin.LaunchPlanMetadata + * @instance + */ + LaunchPlanMetadata.prototype.notifications = $util.emptyArray; + + /** + * LaunchPlanMetadata launchConditions. + * @member {google.protobuf.IAny|null|undefined} launchConditions + * @memberof flyteidl.admin.LaunchPlanMetadata + * @instance + */ + LaunchPlanMetadata.prototype.launchConditions = null; + + /** + * Creates a new LaunchPlanMetadata instance using the specified properties. * @function create - * @memberof flyteidl.admin.ExecutionClusterLabel + * @memberof flyteidl.admin.LaunchPlanMetadata * @static - * @param {flyteidl.admin.IExecutionClusterLabel=} [properties] Properties to set - * @returns {flyteidl.admin.ExecutionClusterLabel} ExecutionClusterLabel instance + * @param {flyteidl.admin.ILaunchPlanMetadata=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanMetadata} LaunchPlanMetadata instance */ - ExecutionClusterLabel.create = function create(properties) { - return new ExecutionClusterLabel(properties); + LaunchPlanMetadata.create = function create(properties) { + return new LaunchPlanMetadata(properties); }; /** - * Encodes the specified ExecutionClusterLabel message. Does not implicitly {@link flyteidl.admin.ExecutionClusterLabel.verify|verify} messages. + * Encodes the specified LaunchPlanMetadata message. Does not implicitly {@link flyteidl.admin.LaunchPlanMetadata.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ExecutionClusterLabel + * @memberof flyteidl.admin.LaunchPlanMetadata * @static - * @param {flyteidl.admin.IExecutionClusterLabel} message ExecutionClusterLabel message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanMetadata} message LaunchPlanMetadata message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ExecutionClusterLabel.encode = function encode(message, writer) { + LaunchPlanMetadata.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.value != null && message.hasOwnProperty("value")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.value); + if (message.schedule != null && message.hasOwnProperty("schedule")) + $root.flyteidl.admin.Schedule.encode(message.schedule, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.notifications != null && message.notifications.length) + for (var i = 0; i < message.notifications.length; ++i) + $root.flyteidl.admin.Notification.encode(message.notifications[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.launchConditions != null && message.hasOwnProperty("launchConditions")) + $root.google.protobuf.Any.encode(message.launchConditions, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Decodes an ExecutionClusterLabel message from the specified reader or buffer. + * Decodes a LaunchPlanMetadata message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ExecutionClusterLabel + * @memberof flyteidl.admin.LaunchPlanMetadata * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ExecutionClusterLabel} ExecutionClusterLabel + * @returns {flyteidl.admin.LaunchPlanMetadata} LaunchPlanMetadata * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExecutionClusterLabel.decode = function decode(reader, length) { + LaunchPlanMetadata.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionClusterLabel(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanMetadata(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.value = reader.string(); + message.schedule = $root.flyteidl.admin.Schedule.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.notifications && message.notifications.length)) + message.notifications = []; + message.notifications.push($root.flyteidl.admin.Notification.decode(reader, reader.uint32())); + break; + case 3: + message.launchConditions = $root.google.protobuf.Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -38243,46 +38527,60 @@ }; /** - * Verifies an ExecutionClusterLabel message. + * Verifies a LaunchPlanMetadata message. * @function verify - * @memberof flyteidl.admin.ExecutionClusterLabel + * @memberof flyteidl.admin.LaunchPlanMetadata * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExecutionClusterLabel.verify = function verify(message) { + LaunchPlanMetadata.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.value != null && message.hasOwnProperty("value")) - if (!$util.isString(message.value)) - return "value: string expected"; + if (message.schedule != null && message.hasOwnProperty("schedule")) { + var error = $root.flyteidl.admin.Schedule.verify(message.schedule); + if (error) + return "schedule." + error; + } + if (message.notifications != null && message.hasOwnProperty("notifications")) { + if (!Array.isArray(message.notifications)) + return "notifications: array expected"; + for (var i = 0; i < message.notifications.length; ++i) { + var error = $root.flyteidl.admin.Notification.verify(message.notifications[i]); + if (error) + return "notifications." + error; + } + } + if (message.launchConditions != null && message.hasOwnProperty("launchConditions")) { + var error = $root.google.protobuf.Any.verify(message.launchConditions); + if (error) + return "launchConditions." + error; + } return null; }; - return ExecutionClusterLabel; + return LaunchPlanMetadata; })(); - admin.PluginOverride = (function() { + admin.LaunchPlanUpdateRequest = (function() { /** - * Properties of a PluginOverride. + * Properties of a LaunchPlanUpdateRequest. * @memberof flyteidl.admin - * @interface IPluginOverride - * @property {string|null} [taskType] PluginOverride taskType - * @property {Array.|null} [pluginId] PluginOverride pluginId - * @property {flyteidl.admin.PluginOverride.MissingPluginBehavior|null} [missingPluginBehavior] PluginOverride missingPluginBehavior + * @interface ILaunchPlanUpdateRequest + * @property {flyteidl.core.IIdentifier|null} [id] LaunchPlanUpdateRequest id + * @property {flyteidl.admin.LaunchPlanState|null} [state] LaunchPlanUpdateRequest state */ /** - * Constructs a new PluginOverride. + * Constructs a new LaunchPlanUpdateRequest. * @memberof flyteidl.admin - * @classdesc Represents a PluginOverride. - * @implements IPluginOverride + * @classdesc Represents a LaunchPlanUpdateRequest. + * @implements ILaunchPlanUpdateRequest * @constructor - * @param {flyteidl.admin.IPluginOverride=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanUpdateRequest=} [properties] Properties to set */ - function PluginOverride(properties) { - this.pluginId = []; + function LaunchPlanUpdateRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38290,91 +38588,75 @@ } /** - * PluginOverride taskType. - * @member {string} taskType - * @memberof flyteidl.admin.PluginOverride - * @instance - */ - PluginOverride.prototype.taskType = ""; - - /** - * PluginOverride pluginId. - * @member {Array.} pluginId - * @memberof flyteidl.admin.PluginOverride + * LaunchPlanUpdateRequest id. + * @member {flyteidl.core.IIdentifier|null|undefined} id + * @memberof flyteidl.admin.LaunchPlanUpdateRequest * @instance */ - PluginOverride.prototype.pluginId = $util.emptyArray; + LaunchPlanUpdateRequest.prototype.id = null; /** - * PluginOverride missingPluginBehavior. - * @member {flyteidl.admin.PluginOverride.MissingPluginBehavior} missingPluginBehavior - * @memberof flyteidl.admin.PluginOverride + * LaunchPlanUpdateRequest state. + * @member {flyteidl.admin.LaunchPlanState} state + * @memberof flyteidl.admin.LaunchPlanUpdateRequest * @instance */ - PluginOverride.prototype.missingPluginBehavior = 0; + LaunchPlanUpdateRequest.prototype.state = 0; /** - * Creates a new PluginOverride instance using the specified properties. + * Creates a new LaunchPlanUpdateRequest instance using the specified properties. * @function create - * @memberof flyteidl.admin.PluginOverride + * @memberof flyteidl.admin.LaunchPlanUpdateRequest * @static - * @param {flyteidl.admin.IPluginOverride=} [properties] Properties to set - * @returns {flyteidl.admin.PluginOverride} PluginOverride instance + * @param {flyteidl.admin.ILaunchPlanUpdateRequest=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanUpdateRequest} LaunchPlanUpdateRequest instance */ - PluginOverride.create = function create(properties) { - return new PluginOverride(properties); + LaunchPlanUpdateRequest.create = function create(properties) { + return new LaunchPlanUpdateRequest(properties); }; /** - * Encodes the specified PluginOverride message. Does not implicitly {@link flyteidl.admin.PluginOverride.verify|verify} messages. + * Encodes the specified LaunchPlanUpdateRequest message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateRequest.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.PluginOverride + * @memberof flyteidl.admin.LaunchPlanUpdateRequest * @static - * @param {flyteidl.admin.IPluginOverride} message PluginOverride message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanUpdateRequest} message LaunchPlanUpdateRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PluginOverride.encode = function encode(message, writer) { + LaunchPlanUpdateRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.taskType != null && message.hasOwnProperty("taskType")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.taskType); - if (message.pluginId != null && message.pluginId.length) - for (var i = 0; i < message.pluginId.length; ++i) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.pluginId[i]); - if (message.missingPluginBehavior != null && message.hasOwnProperty("missingPluginBehavior")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.missingPluginBehavior); + if (message.id != null && message.hasOwnProperty("id")) + $root.flyteidl.core.Identifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.state != null && message.hasOwnProperty("state")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.state); return writer; }; /** - * Decodes a PluginOverride message from the specified reader or buffer. + * Decodes a LaunchPlanUpdateRequest message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.PluginOverride + * @memberof flyteidl.admin.LaunchPlanUpdateRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.PluginOverride} PluginOverride + * @returns {flyteidl.admin.LaunchPlanUpdateRequest} LaunchPlanUpdateRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PluginOverride.decode = function decode(reader, length) { + LaunchPlanUpdateRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.PluginOverride(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanUpdateRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.taskType = reader.string(); + message.id = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); break; case 2: - if (!(message.pluginId && message.pluginId.length)) - message.pluginId = []; - message.pluginId.push(reader.string()); - break; - case 4: - message.missingPluginBehavior = reader.int32(); + message.state = reader.int32(); break; default: reader.skipType(tag & 7); @@ -38385,30 +38667,25 @@ }; /** - * Verifies a PluginOverride message. + * Verifies a LaunchPlanUpdateRequest message. * @function verify - * @memberof flyteidl.admin.PluginOverride + * @memberof flyteidl.admin.LaunchPlanUpdateRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PluginOverride.verify = function verify(message) { + LaunchPlanUpdateRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.taskType != null && message.hasOwnProperty("taskType")) - if (!$util.isString(message.taskType)) - return "taskType: string expected"; - if (message.pluginId != null && message.hasOwnProperty("pluginId")) { - if (!Array.isArray(message.pluginId)) - return "pluginId: array expected"; - for (var i = 0; i < message.pluginId.length; ++i) - if (!$util.isString(message.pluginId[i])) - return "pluginId: string[] expected"; + if (message.id != null && message.hasOwnProperty("id")) { + var error = $root.flyteidl.core.Identifier.verify(message.id); + if (error) + return "id." + error; } - if (message.missingPluginBehavior != null && message.hasOwnProperty("missingPluginBehavior")) - switch (message.missingPluginBehavior) { + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { default: - return "missingPluginBehavior: enum value expected"; + return "state: enum value expected"; case 0: case 1: break; @@ -38416,42 +38693,26 @@ return null; }; - /** - * MissingPluginBehavior enum. - * @name flyteidl.admin.PluginOverride.MissingPluginBehavior - * @enum {string} - * @property {number} FAIL=0 FAIL value - * @property {number} USE_DEFAULT=1 USE_DEFAULT value - */ - PluginOverride.MissingPluginBehavior = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "FAIL"] = 0; - values[valuesById[1] = "USE_DEFAULT"] = 1; - return values; - })(); - - return PluginOverride; + return LaunchPlanUpdateRequest; })(); - admin.PluginOverrides = (function() { + admin.LaunchPlanUpdateResponse = (function() { /** - * Properties of a PluginOverrides. + * Properties of a LaunchPlanUpdateResponse. * @memberof flyteidl.admin - * @interface IPluginOverrides - * @property {Array.|null} [overrides] PluginOverrides overrides + * @interface ILaunchPlanUpdateResponse */ /** - * Constructs a new PluginOverrides. + * Constructs a new LaunchPlanUpdateResponse. * @memberof flyteidl.admin - * @classdesc Represents a PluginOverrides. - * @implements IPluginOverrides + * @classdesc Represents a LaunchPlanUpdateResponse. + * @implements ILaunchPlanUpdateResponse * @constructor - * @param {flyteidl.admin.IPluginOverrides=} [properties] Properties to set + * @param {flyteidl.admin.ILaunchPlanUpdateResponse=} [properties] Properties to set */ - function PluginOverrides(properties) { - this.overrides = []; + function LaunchPlanUpdateResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38459,66 +38720,50 @@ } /** - * PluginOverrides overrides. - * @member {Array.} overrides - * @memberof flyteidl.admin.PluginOverrides - * @instance - */ - PluginOverrides.prototype.overrides = $util.emptyArray; - - /** - * Creates a new PluginOverrides instance using the specified properties. + * Creates a new LaunchPlanUpdateResponse instance using the specified properties. * @function create - * @memberof flyteidl.admin.PluginOverrides + * @memberof flyteidl.admin.LaunchPlanUpdateResponse * @static - * @param {flyteidl.admin.IPluginOverrides=} [properties] Properties to set - * @returns {flyteidl.admin.PluginOverrides} PluginOverrides instance + * @param {flyteidl.admin.ILaunchPlanUpdateResponse=} [properties] Properties to set + * @returns {flyteidl.admin.LaunchPlanUpdateResponse} LaunchPlanUpdateResponse instance */ - PluginOverrides.create = function create(properties) { - return new PluginOverrides(properties); + LaunchPlanUpdateResponse.create = function create(properties) { + return new LaunchPlanUpdateResponse(properties); }; /** - * Encodes the specified PluginOverrides message. Does not implicitly {@link flyteidl.admin.PluginOverrides.verify|verify} messages. + * Encodes the specified LaunchPlanUpdateResponse message. Does not implicitly {@link flyteidl.admin.LaunchPlanUpdateResponse.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.PluginOverrides + * @memberof flyteidl.admin.LaunchPlanUpdateResponse * @static - * @param {flyteidl.admin.IPluginOverrides} message PluginOverrides message or plain object to encode + * @param {flyteidl.admin.ILaunchPlanUpdateResponse} message LaunchPlanUpdateResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - PluginOverrides.encode = function encode(message, writer) { + LaunchPlanUpdateResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.overrides != null && message.overrides.length) - for (var i = 0; i < message.overrides.length; ++i) - $root.flyteidl.admin.PluginOverride.encode(message.overrides[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Decodes a PluginOverrides message from the specified reader or buffer. + * Decodes a LaunchPlanUpdateResponse message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.PluginOverrides + * @memberof flyteidl.admin.LaunchPlanUpdateResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.PluginOverrides} PluginOverrides + * @returns {flyteidl.admin.LaunchPlanUpdateResponse} LaunchPlanUpdateResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PluginOverrides.decode = function decode(reader, length) { + LaunchPlanUpdateResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.PluginOverrides(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.LaunchPlanUpdateResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: - if (!(message.overrides && message.overrides.length)) - message.overrides = []; - message.overrides.push($root.flyteidl.admin.PluginOverride.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -38528,56 +38773,40 @@ }; /** - * Verifies a PluginOverrides message. + * Verifies a LaunchPlanUpdateResponse message. * @function verify - * @memberof flyteidl.admin.PluginOverrides + * @memberof flyteidl.admin.LaunchPlanUpdateResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PluginOverrides.verify = function verify(message) { + LaunchPlanUpdateResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.overrides != null && message.hasOwnProperty("overrides")) { - if (!Array.isArray(message.overrides)) - return "overrides: array expected"; - for (var i = 0; i < message.overrides.length; ++i) { - var error = $root.flyteidl.admin.PluginOverride.verify(message.overrides[i]); - if (error) - return "overrides." + error; - } - } return null; }; - return PluginOverrides; + return LaunchPlanUpdateResponse; })(); - admin.WorkflowExecutionConfig = (function() { + admin.ActiveLaunchPlanRequest = (function() { /** - * Properties of a WorkflowExecutionConfig. + * Properties of an ActiveLaunchPlanRequest. * @memberof flyteidl.admin - * @interface IWorkflowExecutionConfig - * @property {number|null} [maxParallelism] WorkflowExecutionConfig maxParallelism - * @property {flyteidl.core.ISecurityContext|null} [securityContext] WorkflowExecutionConfig securityContext - * @property {flyteidl.admin.IRawOutputDataConfig|null} [rawOutputDataConfig] WorkflowExecutionConfig rawOutputDataConfig - * @property {flyteidl.admin.ILabels|null} [labels] WorkflowExecutionConfig labels - * @property {flyteidl.admin.IAnnotations|null} [annotations] WorkflowExecutionConfig annotations - * @property {google.protobuf.IBoolValue|null} [interruptible] WorkflowExecutionConfig interruptible - * @property {boolean|null} [overwriteCache] WorkflowExecutionConfig overwriteCache - * @property {flyteidl.admin.IEnvs|null} [envs] WorkflowExecutionConfig envs + * @interface IActiveLaunchPlanRequest + * @property {flyteidl.admin.INamedEntityIdentifier|null} [id] ActiveLaunchPlanRequest id */ /** - * Constructs a new WorkflowExecutionConfig. + * Constructs a new ActiveLaunchPlanRequest. * @memberof flyteidl.admin - * @classdesc Represents a WorkflowExecutionConfig. - * @implements IWorkflowExecutionConfig + * @classdesc Represents an ActiveLaunchPlanRequest. + * @implements IActiveLaunchPlanRequest * @constructor - * @param {flyteidl.admin.IWorkflowExecutionConfig=} [properties] Properties to set + * @param {flyteidl.admin.IActiveLaunchPlanRequest=} [properties] Properties to set */ - function WorkflowExecutionConfig(properties) { + function ActiveLaunchPlanRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38585,153 +38814,62 @@ } /** - * WorkflowExecutionConfig maxParallelism. - * @member {number} maxParallelism - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.maxParallelism = 0; - - /** - * WorkflowExecutionConfig securityContext. - * @member {flyteidl.core.ISecurityContext|null|undefined} securityContext - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.securityContext = null; - - /** - * WorkflowExecutionConfig rawOutputDataConfig. - * @member {flyteidl.admin.IRawOutputDataConfig|null|undefined} rawOutputDataConfig - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.rawOutputDataConfig = null; - - /** - * WorkflowExecutionConfig labels. - * @member {flyteidl.admin.ILabels|null|undefined} labels - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.labels = null; - - /** - * WorkflowExecutionConfig annotations. - * @member {flyteidl.admin.IAnnotations|null|undefined} annotations - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.annotations = null; - - /** - * WorkflowExecutionConfig interruptible. - * @member {google.protobuf.IBoolValue|null|undefined} interruptible - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.interruptible = null; - - /** - * WorkflowExecutionConfig overwriteCache. - * @member {boolean} overwriteCache - * @memberof flyteidl.admin.WorkflowExecutionConfig - * @instance - */ - WorkflowExecutionConfig.prototype.overwriteCache = false; - - /** - * WorkflowExecutionConfig envs. - * @member {flyteidl.admin.IEnvs|null|undefined} envs - * @memberof flyteidl.admin.WorkflowExecutionConfig + * ActiveLaunchPlanRequest id. + * @member {flyteidl.admin.INamedEntityIdentifier|null|undefined} id + * @memberof flyteidl.admin.ActiveLaunchPlanRequest * @instance */ - WorkflowExecutionConfig.prototype.envs = null; + ActiveLaunchPlanRequest.prototype.id = null; /** - * Creates a new WorkflowExecutionConfig instance using the specified properties. + * Creates a new ActiveLaunchPlanRequest instance using the specified properties. * @function create - * @memberof flyteidl.admin.WorkflowExecutionConfig + * @memberof flyteidl.admin.ActiveLaunchPlanRequest * @static - * @param {flyteidl.admin.IWorkflowExecutionConfig=} [properties] Properties to set - * @returns {flyteidl.admin.WorkflowExecutionConfig} WorkflowExecutionConfig instance + * @param {flyteidl.admin.IActiveLaunchPlanRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ActiveLaunchPlanRequest} ActiveLaunchPlanRequest instance */ - WorkflowExecutionConfig.create = function create(properties) { - return new WorkflowExecutionConfig(properties); + ActiveLaunchPlanRequest.create = function create(properties) { + return new ActiveLaunchPlanRequest(properties); }; /** - * Encodes the specified WorkflowExecutionConfig message. Does not implicitly {@link flyteidl.admin.WorkflowExecutionConfig.verify|verify} messages. + * Encodes the specified ActiveLaunchPlanRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanRequest.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.WorkflowExecutionConfig + * @memberof flyteidl.admin.ActiveLaunchPlanRequest * @static - * @param {flyteidl.admin.IWorkflowExecutionConfig} message WorkflowExecutionConfig message or plain object to encode + * @param {flyteidl.admin.IActiveLaunchPlanRequest} message ActiveLaunchPlanRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - WorkflowExecutionConfig.encode = function encode(message, writer) { + ActiveLaunchPlanRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.maxParallelism); - if (message.securityContext != null && message.hasOwnProperty("securityContext")) - $root.flyteidl.core.SecurityContext.encode(message.securityContext, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) - $root.flyteidl.admin.RawOutputDataConfig.encode(message.rawOutputDataConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.labels != null && message.hasOwnProperty("labels")) - $root.flyteidl.admin.Labels.encode(message.labels, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.annotations != null && message.hasOwnProperty("annotations")) - $root.flyteidl.admin.Annotations.encode(message.annotations, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.interruptible != null && message.hasOwnProperty("interruptible")) - $root.google.protobuf.BoolValue.encode(message.interruptible, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) - writer.uint32(/* id 7, wireType 0 =*/56).bool(message.overwriteCache); - if (message.envs != null && message.hasOwnProperty("envs")) - $root.flyteidl.admin.Envs.encode(message.envs, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.id != null && message.hasOwnProperty("id")) + $root.flyteidl.admin.NamedEntityIdentifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Decodes a WorkflowExecutionConfig message from the specified reader or buffer. + * Decodes an ActiveLaunchPlanRequest message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.WorkflowExecutionConfig + * @memberof flyteidl.admin.ActiveLaunchPlanRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.WorkflowExecutionConfig} WorkflowExecutionConfig + * @returns {flyteidl.admin.ActiveLaunchPlanRequest} ActiveLaunchPlanRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WorkflowExecutionConfig.decode = function decode(reader, length) { + ActiveLaunchPlanRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.WorkflowExecutionConfig(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ActiveLaunchPlanRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxParallelism = reader.int32(); - break; - case 2: - message.securityContext = $root.flyteidl.core.SecurityContext.decode(reader, reader.uint32()); - break; - case 3: - message.rawOutputDataConfig = $root.flyteidl.admin.RawOutputDataConfig.decode(reader, reader.uint32()); - break; - case 4: - message.labels = $root.flyteidl.admin.Labels.decode(reader, reader.uint32()); - break; - case 5: - message.annotations = $root.flyteidl.admin.Annotations.decode(reader, reader.uint32()); - break; - case 6: - message.interruptible = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); - break; - case 7: - message.overwriteCache = reader.bool(); - break; - case 8: - message.envs = $root.flyteidl.admin.Envs.decode(reader, reader.uint32()); + message.id = $root.flyteidl.admin.NamedEntityIdentifier.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -38742,83 +38880,50 @@ }; /** - * Verifies a WorkflowExecutionConfig message. + * Verifies an ActiveLaunchPlanRequest message. * @function verify - * @memberof flyteidl.admin.WorkflowExecutionConfig + * @memberof flyteidl.admin.ActiveLaunchPlanRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WorkflowExecutionConfig.verify = function verify(message) { + ActiveLaunchPlanRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.maxParallelism != null && message.hasOwnProperty("maxParallelism")) - if (!$util.isInteger(message.maxParallelism)) - return "maxParallelism: integer expected"; - if (message.securityContext != null && message.hasOwnProperty("securityContext")) { - var error = $root.flyteidl.core.SecurityContext.verify(message.securityContext); - if (error) - return "securityContext." + error; - } - if (message.rawOutputDataConfig != null && message.hasOwnProperty("rawOutputDataConfig")) { - var error = $root.flyteidl.admin.RawOutputDataConfig.verify(message.rawOutputDataConfig); - if (error) - return "rawOutputDataConfig." + error; - } - if (message.labels != null && message.hasOwnProperty("labels")) { - var error = $root.flyteidl.admin.Labels.verify(message.labels); - if (error) - return "labels." + error; - } - if (message.annotations != null && message.hasOwnProperty("annotations")) { - var error = $root.flyteidl.admin.Annotations.verify(message.annotations); - if (error) - return "annotations." + error; - } - if (message.interruptible != null && message.hasOwnProperty("interruptible")) { - var error = $root.google.protobuf.BoolValue.verify(message.interruptible); - if (error) - return "interruptible." + error; - } - if (message.overwriteCache != null && message.hasOwnProperty("overwriteCache")) - if (typeof message.overwriteCache !== "boolean") - return "overwriteCache: boolean expected"; - if (message.envs != null && message.hasOwnProperty("envs")) { - var error = $root.flyteidl.admin.Envs.verify(message.envs); + if (message.id != null && message.hasOwnProperty("id")) { + var error = $root.flyteidl.admin.NamedEntityIdentifier.verify(message.id); if (error) - return "envs." + error; + return "id." + error; } return null; }; - return WorkflowExecutionConfig; + return ActiveLaunchPlanRequest; })(); - admin.MatchingAttributes = (function() { + admin.ActiveLaunchPlanListRequest = (function() { /** - * Properties of a MatchingAttributes. + * Properties of an ActiveLaunchPlanListRequest. * @memberof flyteidl.admin - * @interface IMatchingAttributes - * @property {flyteidl.admin.ITaskResourceAttributes|null} [taskResourceAttributes] MatchingAttributes taskResourceAttributes - * @property {flyteidl.admin.IClusterResourceAttributes|null} [clusterResourceAttributes] MatchingAttributes clusterResourceAttributes - * @property {flyteidl.admin.IExecutionQueueAttributes|null} [executionQueueAttributes] MatchingAttributes executionQueueAttributes - * @property {flyteidl.admin.IExecutionClusterLabel|null} [executionClusterLabel] MatchingAttributes executionClusterLabel - * @property {flyteidl.core.IQualityOfService|null} [qualityOfService] MatchingAttributes qualityOfService - * @property {flyteidl.admin.IPluginOverrides|null} [pluginOverrides] MatchingAttributes pluginOverrides - * @property {flyteidl.admin.IWorkflowExecutionConfig|null} [workflowExecutionConfig] MatchingAttributes workflowExecutionConfig - * @property {flyteidl.admin.IClusterAssignment|null} [clusterAssignment] MatchingAttributes clusterAssignment + * @interface IActiveLaunchPlanListRequest + * @property {string|null} [project] ActiveLaunchPlanListRequest project + * @property {string|null} [domain] ActiveLaunchPlanListRequest domain + * @property {number|null} [limit] ActiveLaunchPlanListRequest limit + * @property {string|null} [token] ActiveLaunchPlanListRequest token + * @property {flyteidl.admin.ISort|null} [sortBy] ActiveLaunchPlanListRequest sortBy + * @property {string|null} [org] ActiveLaunchPlanListRequest org */ /** - * Constructs a new MatchingAttributes. + * Constructs a new ActiveLaunchPlanListRequest. * @memberof flyteidl.admin - * @classdesc Represents a MatchingAttributes. - * @implements IMatchingAttributes + * @classdesc Represents an ActiveLaunchPlanListRequest. + * @implements IActiveLaunchPlanListRequest * @constructor - * @param {flyteidl.admin.IMatchingAttributes=} [properties] Properties to set + * @param {flyteidl.admin.IActiveLaunchPlanListRequest=} [properties] Properties to set */ - function MatchingAttributes(properties) { + function ActiveLaunchPlanListRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -38826,295 +38931,208 @@ } /** - * MatchingAttributes taskResourceAttributes. - * @member {flyteidl.admin.ITaskResourceAttributes|null|undefined} taskResourceAttributes - * @memberof flyteidl.admin.MatchingAttributes - * @instance - */ - MatchingAttributes.prototype.taskResourceAttributes = null; - - /** - * MatchingAttributes clusterResourceAttributes. - * @member {flyteidl.admin.IClusterResourceAttributes|null|undefined} clusterResourceAttributes - * @memberof flyteidl.admin.MatchingAttributes - * @instance - */ - MatchingAttributes.prototype.clusterResourceAttributes = null; - - /** - * MatchingAttributes executionQueueAttributes. - * @member {flyteidl.admin.IExecutionQueueAttributes|null|undefined} executionQueueAttributes - * @memberof flyteidl.admin.MatchingAttributes - * @instance - */ - MatchingAttributes.prototype.executionQueueAttributes = null; - - /** - * MatchingAttributes executionClusterLabel. - * @member {flyteidl.admin.IExecutionClusterLabel|null|undefined} executionClusterLabel - * @memberof flyteidl.admin.MatchingAttributes + * ActiveLaunchPlanListRequest project. + * @member {string} project + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @instance */ - MatchingAttributes.prototype.executionClusterLabel = null; + ActiveLaunchPlanListRequest.prototype.project = ""; /** - * MatchingAttributes qualityOfService. - * @member {flyteidl.core.IQualityOfService|null|undefined} qualityOfService - * @memberof flyteidl.admin.MatchingAttributes + * ActiveLaunchPlanListRequest domain. + * @member {string} domain + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @instance */ - MatchingAttributes.prototype.qualityOfService = null; + ActiveLaunchPlanListRequest.prototype.domain = ""; /** - * MatchingAttributes pluginOverrides. - * @member {flyteidl.admin.IPluginOverrides|null|undefined} pluginOverrides - * @memberof flyteidl.admin.MatchingAttributes + * ActiveLaunchPlanListRequest limit. + * @member {number} limit + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @instance */ - MatchingAttributes.prototype.pluginOverrides = null; + ActiveLaunchPlanListRequest.prototype.limit = 0; /** - * MatchingAttributes workflowExecutionConfig. - * @member {flyteidl.admin.IWorkflowExecutionConfig|null|undefined} workflowExecutionConfig - * @memberof flyteidl.admin.MatchingAttributes + * ActiveLaunchPlanListRequest token. + * @member {string} token + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @instance */ - MatchingAttributes.prototype.workflowExecutionConfig = null; + ActiveLaunchPlanListRequest.prototype.token = ""; /** - * MatchingAttributes clusterAssignment. - * @member {flyteidl.admin.IClusterAssignment|null|undefined} clusterAssignment - * @memberof flyteidl.admin.MatchingAttributes + * ActiveLaunchPlanListRequest sortBy. + * @member {flyteidl.admin.ISort|null|undefined} sortBy + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @instance */ - MatchingAttributes.prototype.clusterAssignment = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + ActiveLaunchPlanListRequest.prototype.sortBy = null; /** - * MatchingAttributes target. - * @member {"taskResourceAttributes"|"clusterResourceAttributes"|"executionQueueAttributes"|"executionClusterLabel"|"qualityOfService"|"pluginOverrides"|"workflowExecutionConfig"|"clusterAssignment"|undefined} target - * @memberof flyteidl.admin.MatchingAttributes + * ActiveLaunchPlanListRequest org. + * @member {string} org + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @instance */ - Object.defineProperty(MatchingAttributes.prototype, "target", { - get: $util.oneOfGetter($oneOfFields = ["taskResourceAttributes", "clusterResourceAttributes", "executionQueueAttributes", "executionClusterLabel", "qualityOfService", "pluginOverrides", "workflowExecutionConfig", "clusterAssignment"]), - set: $util.oneOfSetter($oneOfFields) - }); + ActiveLaunchPlanListRequest.prototype.org = ""; /** - * Creates a new MatchingAttributes instance using the specified properties. + * Creates a new ActiveLaunchPlanListRequest instance using the specified properties. * @function create - * @memberof flyteidl.admin.MatchingAttributes + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @static - * @param {flyteidl.admin.IMatchingAttributes=} [properties] Properties to set - * @returns {flyteidl.admin.MatchingAttributes} MatchingAttributes instance + * @param {flyteidl.admin.IActiveLaunchPlanListRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ActiveLaunchPlanListRequest} ActiveLaunchPlanListRequest instance */ - MatchingAttributes.create = function create(properties) { - return new MatchingAttributes(properties); + ActiveLaunchPlanListRequest.create = function create(properties) { + return new ActiveLaunchPlanListRequest(properties); }; /** - * Encodes the specified MatchingAttributes message. Does not implicitly {@link flyteidl.admin.MatchingAttributes.verify|verify} messages. + * Encodes the specified ActiveLaunchPlanListRequest message. Does not implicitly {@link flyteidl.admin.ActiveLaunchPlanListRequest.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.MatchingAttributes + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @static - * @param {flyteidl.admin.IMatchingAttributes} message MatchingAttributes message or plain object to encode + * @param {flyteidl.admin.IActiveLaunchPlanListRequest} message ActiveLaunchPlanListRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MatchingAttributes.encode = function encode(message, writer) { + ActiveLaunchPlanListRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.taskResourceAttributes != null && message.hasOwnProperty("taskResourceAttributes")) - $root.flyteidl.admin.TaskResourceAttributes.encode(message.taskResourceAttributes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.clusterResourceAttributes != null && message.hasOwnProperty("clusterResourceAttributes")) - $root.flyteidl.admin.ClusterResourceAttributes.encode(message.clusterResourceAttributes, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.executionQueueAttributes != null && message.hasOwnProperty("executionQueueAttributes")) - $root.flyteidl.admin.ExecutionQueueAttributes.encode(message.executionQueueAttributes, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.executionClusterLabel != null && message.hasOwnProperty("executionClusterLabel")) - $root.flyteidl.admin.ExecutionClusterLabel.encode(message.executionClusterLabel, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) - $root.flyteidl.core.QualityOfService.encode(message.qualityOfService, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); - if (message.pluginOverrides != null && message.hasOwnProperty("pluginOverrides")) - $root.flyteidl.admin.PluginOverrides.encode(message.pluginOverrides, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.workflowExecutionConfig != null && message.hasOwnProperty("workflowExecutionConfig")) - $root.flyteidl.admin.WorkflowExecutionConfig.encode(message.workflowExecutionConfig, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.clusterAssignment != null && message.hasOwnProperty("clusterAssignment")) - $root.flyteidl.admin.ClusterAssignment.encode(message.clusterAssignment, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.project != null && message.hasOwnProperty("project")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); + if (message.domain != null && message.hasOwnProperty("domain")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); + if (message.limit != null && message.hasOwnProperty("limit")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.limit); + if (message.token != null && message.hasOwnProperty("token")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.token); + if (message.sortBy != null && message.hasOwnProperty("sortBy")) + $root.flyteidl.admin.Sort.encode(message.sortBy, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); return writer; }; /** - * Decodes a MatchingAttributes message from the specified reader or buffer. + * Decodes an ActiveLaunchPlanListRequest message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.MatchingAttributes + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.MatchingAttributes} MatchingAttributes + * @returns {flyteidl.admin.ActiveLaunchPlanListRequest} ActiveLaunchPlanListRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MatchingAttributes.decode = function decode(reader, length) { + ActiveLaunchPlanListRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.MatchingAttributes(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ActiveLaunchPlanListRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.taskResourceAttributes = $root.flyteidl.admin.TaskResourceAttributes.decode(reader, reader.uint32()); + message.project = reader.string(); break; case 2: - message.clusterResourceAttributes = $root.flyteidl.admin.ClusterResourceAttributes.decode(reader, reader.uint32()); + message.domain = reader.string(); break; case 3: - message.executionQueueAttributes = $root.flyteidl.admin.ExecutionQueueAttributes.decode(reader, reader.uint32()); + message.limit = reader.uint32(); break; case 4: - message.executionClusterLabel = $root.flyteidl.admin.ExecutionClusterLabel.decode(reader, reader.uint32()); + message.token = reader.string(); break; case 5: - message.qualityOfService = $root.flyteidl.core.QualityOfService.decode(reader, reader.uint32()); - break; - case 6: - message.pluginOverrides = $root.flyteidl.admin.PluginOverrides.decode(reader, reader.uint32()); - break; - case 7: - message.workflowExecutionConfig = $root.flyteidl.admin.WorkflowExecutionConfig.decode(reader, reader.uint32()); - break; - case 8: - message.clusterAssignment = $root.flyteidl.admin.ClusterAssignment.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Verifies a MatchingAttributes message. - * @function verify - * @memberof flyteidl.admin.MatchingAttributes - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - MatchingAttributes.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.taskResourceAttributes != null && message.hasOwnProperty("taskResourceAttributes")) { - properties.target = 1; - { - var error = $root.flyteidl.admin.TaskResourceAttributes.verify(message.taskResourceAttributes); - if (error) - return "taskResourceAttributes." + error; - } - } - if (message.clusterResourceAttributes != null && message.hasOwnProperty("clusterResourceAttributes")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.admin.ClusterResourceAttributes.verify(message.clusterResourceAttributes); - if (error) - return "clusterResourceAttributes." + error; - } - } - if (message.executionQueueAttributes != null && message.hasOwnProperty("executionQueueAttributes")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.admin.ExecutionQueueAttributes.verify(message.executionQueueAttributes); - if (error) - return "executionQueueAttributes." + error; - } - } - if (message.executionClusterLabel != null && message.hasOwnProperty("executionClusterLabel")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.admin.ExecutionClusterLabel.verify(message.executionClusterLabel); - if (error) - return "executionClusterLabel." + error; - } - } - if (message.qualityOfService != null && message.hasOwnProperty("qualityOfService")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.core.QualityOfService.verify(message.qualityOfService); - if (error) - return "qualityOfService." + error; - } - } - if (message.pluginOverrides != null && message.hasOwnProperty("pluginOverrides")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.admin.PluginOverrides.verify(message.pluginOverrides); - if (error) - return "pluginOverrides." + error; - } - } - if (message.workflowExecutionConfig != null && message.hasOwnProperty("workflowExecutionConfig")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.admin.WorkflowExecutionConfig.verify(message.workflowExecutionConfig); - if (error) - return "workflowExecutionConfig." + error; + message.sortBy = $root.flyteidl.admin.Sort.decode(reader, reader.uint32()); + break; + case 6: + message.org = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; } } - if (message.clusterAssignment != null && message.hasOwnProperty("clusterAssignment")) { - if (properties.target === 1) - return "target: multiple values"; - properties.target = 1; - { - var error = $root.flyteidl.admin.ClusterAssignment.verify(message.clusterAssignment); - if (error) - return "clusterAssignment." + error; - } + return message; + }; + + /** + * Verifies an ActiveLaunchPlanListRequest message. + * @function verify + * @memberof flyteidl.admin.ActiveLaunchPlanListRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ActiveLaunchPlanListRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.project != null && message.hasOwnProperty("project")) + if (!$util.isString(message.project)) + return "project: string expected"; + if (message.domain != null && message.hasOwnProperty("domain")) + if (!$util.isString(message.domain)) + return "domain: string expected"; + if (message.limit != null && message.hasOwnProperty("limit")) + if (!$util.isInteger(message.limit)) + return "limit: integer expected"; + if (message.token != null && message.hasOwnProperty("token")) + if (!$util.isString(message.token)) + return "token: string expected"; + if (message.sortBy != null && message.hasOwnProperty("sortBy")) { + var error = $root.flyteidl.admin.Sort.verify(message.sortBy); + if (error) + return "sortBy." + error; } + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; - return MatchingAttributes; + return ActiveLaunchPlanListRequest; })(); - admin.MatchableAttributesConfiguration = (function() { + /** + * FixedRateUnit enum. + * @name flyteidl.admin.FixedRateUnit + * @enum {string} + * @property {number} MINUTE=0 MINUTE value + * @property {number} HOUR=1 HOUR value + * @property {number} DAY=2 DAY value + */ + admin.FixedRateUnit = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "MINUTE"] = 0; + values[valuesById[1] = "HOUR"] = 1; + values[valuesById[2] = "DAY"] = 2; + return values; + })(); + + admin.FixedRate = (function() { /** - * Properties of a MatchableAttributesConfiguration. + * Properties of a FixedRate. * @memberof flyteidl.admin - * @interface IMatchableAttributesConfiguration - * @property {flyteidl.admin.IMatchingAttributes|null} [attributes] MatchableAttributesConfiguration attributes - * @property {string|null} [domain] MatchableAttributesConfiguration domain - * @property {string|null} [project] MatchableAttributesConfiguration project - * @property {string|null} [workflow] MatchableAttributesConfiguration workflow - * @property {string|null} [launchPlan] MatchableAttributesConfiguration launchPlan - * @property {string|null} [org] MatchableAttributesConfiguration org + * @interface IFixedRate + * @property {number|null} [value] FixedRate value + * @property {flyteidl.admin.FixedRateUnit|null} [unit] FixedRate unit */ /** - * Constructs a new MatchableAttributesConfiguration. + * Constructs a new FixedRate. * @memberof flyteidl.admin - * @classdesc Represents a MatchableAttributesConfiguration. - * @implements IMatchableAttributesConfiguration + * @classdesc Represents a FixedRate. + * @implements IFixedRate * @constructor - * @param {flyteidl.admin.IMatchableAttributesConfiguration=} [properties] Properties to set + * @param {flyteidl.admin.IFixedRate=} [properties] Properties to set */ - function MatchableAttributesConfiguration(properties) { + function FixedRate(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39122,127 +39140,75 @@ } /** - * MatchableAttributesConfiguration attributes. - * @member {flyteidl.admin.IMatchingAttributes|null|undefined} attributes - * @memberof flyteidl.admin.MatchableAttributesConfiguration - * @instance - */ - MatchableAttributesConfiguration.prototype.attributes = null; - - /** - * MatchableAttributesConfiguration domain. - * @member {string} domain - * @memberof flyteidl.admin.MatchableAttributesConfiguration - * @instance - */ - MatchableAttributesConfiguration.prototype.domain = ""; - - /** - * MatchableAttributesConfiguration project. - * @member {string} project - * @memberof flyteidl.admin.MatchableAttributesConfiguration - * @instance - */ - MatchableAttributesConfiguration.prototype.project = ""; - - /** - * MatchableAttributesConfiguration workflow. - * @member {string} workflow - * @memberof flyteidl.admin.MatchableAttributesConfiguration - * @instance - */ - MatchableAttributesConfiguration.prototype.workflow = ""; - - /** - * MatchableAttributesConfiguration launchPlan. - * @member {string} launchPlan - * @memberof flyteidl.admin.MatchableAttributesConfiguration + * FixedRate value. + * @member {number} value + * @memberof flyteidl.admin.FixedRate * @instance */ - MatchableAttributesConfiguration.prototype.launchPlan = ""; + FixedRate.prototype.value = 0; /** - * MatchableAttributesConfiguration org. - * @member {string} org - * @memberof flyteidl.admin.MatchableAttributesConfiguration + * FixedRate unit. + * @member {flyteidl.admin.FixedRateUnit} unit + * @memberof flyteidl.admin.FixedRate * @instance */ - MatchableAttributesConfiguration.prototype.org = ""; + FixedRate.prototype.unit = 0; /** - * Creates a new MatchableAttributesConfiguration instance using the specified properties. + * Creates a new FixedRate instance using the specified properties. * @function create - * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @memberof flyteidl.admin.FixedRate * @static - * @param {flyteidl.admin.IMatchableAttributesConfiguration=} [properties] Properties to set - * @returns {flyteidl.admin.MatchableAttributesConfiguration} MatchableAttributesConfiguration instance + * @param {flyteidl.admin.IFixedRate=} [properties] Properties to set + * @returns {flyteidl.admin.FixedRate} FixedRate instance */ - MatchableAttributesConfiguration.create = function create(properties) { - return new MatchableAttributesConfiguration(properties); + FixedRate.create = function create(properties) { + return new FixedRate(properties); }; /** - * Encodes the specified MatchableAttributesConfiguration message. Does not implicitly {@link flyteidl.admin.MatchableAttributesConfiguration.verify|verify} messages. + * Encodes the specified FixedRate message. Does not implicitly {@link flyteidl.admin.FixedRate.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @memberof flyteidl.admin.FixedRate * @static - * @param {flyteidl.admin.IMatchableAttributesConfiguration} message MatchableAttributesConfiguration message or plain object to encode + * @param {flyteidl.admin.IFixedRate} message FixedRate message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - MatchableAttributesConfiguration.encode = function encode(message, writer) { + FixedRate.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.attributes != null && message.hasOwnProperty("attributes")) - $root.flyteidl.admin.MatchingAttributes.encode(message.attributes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.domain != null && message.hasOwnProperty("domain")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.domain); - if (message.project != null && message.hasOwnProperty("project")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.project); - if (message.workflow != null && message.hasOwnProperty("workflow")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.workflow); - if (message.launchPlan != null && message.hasOwnProperty("launchPlan")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.launchPlan); - if (message.org != null && message.hasOwnProperty("org")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.org); + if (message.value != null && message.hasOwnProperty("value")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.value); + if (message.unit != null && message.hasOwnProperty("unit")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.unit); return writer; }; /** - * Decodes a MatchableAttributesConfiguration message from the specified reader or buffer. + * Decodes a FixedRate message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @memberof flyteidl.admin.FixedRate * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.MatchableAttributesConfiguration} MatchableAttributesConfiguration + * @returns {flyteidl.admin.FixedRate} FixedRate * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - MatchableAttributesConfiguration.decode = function decode(reader, length) { + FixedRate.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.MatchableAttributesConfiguration(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.FixedRate(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.attributes = $root.flyteidl.admin.MatchingAttributes.decode(reader, reader.uint32()); + message.value = reader.uint32(); break; case 2: - message.domain = reader.string(); - break; - case 3: - message.project = reader.string(); - break; - case 4: - message.workflow = reader.string(); - break; - case 5: - message.launchPlan = reader.string(); - break; - case 6: - message.org = reader.string(); + message.unit = reader.int32(); break; default: reader.skipType(tag & 7); @@ -39253,61 +39219,53 @@ }; /** - * Verifies a MatchableAttributesConfiguration message. + * Verifies a FixedRate message. * @function verify - * @memberof flyteidl.admin.MatchableAttributesConfiguration + * @memberof flyteidl.admin.FixedRate * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - MatchableAttributesConfiguration.verify = function verify(message) { + FixedRate.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.attributes != null && message.hasOwnProperty("attributes")) { - var error = $root.flyteidl.admin.MatchingAttributes.verify(message.attributes); - if (error) - return "attributes." + error; - } - if (message.domain != null && message.hasOwnProperty("domain")) - if (!$util.isString(message.domain)) - return "domain: string expected"; - if (message.project != null && message.hasOwnProperty("project")) - if (!$util.isString(message.project)) - return "project: string expected"; - if (message.workflow != null && message.hasOwnProperty("workflow")) - if (!$util.isString(message.workflow)) - return "workflow: string expected"; - if (message.launchPlan != null && message.hasOwnProperty("launchPlan")) - if (!$util.isString(message.launchPlan)) - return "launchPlan: string expected"; - if (message.org != null && message.hasOwnProperty("org")) - if (!$util.isString(message.org)) - return "org: string expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!$util.isInteger(message.value)) + return "value: integer expected"; + if (message.unit != null && message.hasOwnProperty("unit")) + switch (message.unit) { + default: + return "unit: enum value expected"; + case 0: + case 1: + case 2: + break; + } return null; }; - return MatchableAttributesConfiguration; + return FixedRate; })(); - admin.ListMatchableAttributesRequest = (function() { + admin.CronSchedule = (function() { /** - * Properties of a ListMatchableAttributesRequest. + * Properties of a CronSchedule. * @memberof flyteidl.admin - * @interface IListMatchableAttributesRequest - * @property {flyteidl.admin.MatchableResource|null} [resourceType] ListMatchableAttributesRequest resourceType - * @property {string|null} [org] ListMatchableAttributesRequest org + * @interface ICronSchedule + * @property {string|null} [schedule] CronSchedule schedule + * @property {string|null} [offset] CronSchedule offset */ /** - * Constructs a new ListMatchableAttributesRequest. + * Constructs a new CronSchedule. * @memberof flyteidl.admin - * @classdesc Represents a ListMatchableAttributesRequest. - * @implements IListMatchableAttributesRequest + * @classdesc Represents a CronSchedule. + * @implements ICronSchedule * @constructor - * @param {flyteidl.admin.IListMatchableAttributesRequest=} [properties] Properties to set + * @param {flyteidl.admin.ICronSchedule=} [properties] Properties to set */ - function ListMatchableAttributesRequest(properties) { + function CronSchedule(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39315,75 +39273,75 @@ } /** - * ListMatchableAttributesRequest resourceType. - * @member {flyteidl.admin.MatchableResource} resourceType - * @memberof flyteidl.admin.ListMatchableAttributesRequest + * CronSchedule schedule. + * @member {string} schedule + * @memberof flyteidl.admin.CronSchedule * @instance */ - ListMatchableAttributesRequest.prototype.resourceType = 0; + CronSchedule.prototype.schedule = ""; /** - * ListMatchableAttributesRequest org. - * @member {string} org - * @memberof flyteidl.admin.ListMatchableAttributesRequest + * CronSchedule offset. + * @member {string} offset + * @memberof flyteidl.admin.CronSchedule * @instance */ - ListMatchableAttributesRequest.prototype.org = ""; + CronSchedule.prototype.offset = ""; /** - * Creates a new ListMatchableAttributesRequest instance using the specified properties. + * Creates a new CronSchedule instance using the specified properties. * @function create - * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @memberof flyteidl.admin.CronSchedule * @static - * @param {flyteidl.admin.IListMatchableAttributesRequest=} [properties] Properties to set - * @returns {flyteidl.admin.ListMatchableAttributesRequest} ListMatchableAttributesRequest instance + * @param {flyteidl.admin.ICronSchedule=} [properties] Properties to set + * @returns {flyteidl.admin.CronSchedule} CronSchedule instance */ - ListMatchableAttributesRequest.create = function create(properties) { - return new ListMatchableAttributesRequest(properties); + CronSchedule.create = function create(properties) { + return new CronSchedule(properties); }; /** - * Encodes the specified ListMatchableAttributesRequest message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesRequest.verify|verify} messages. + * Encodes the specified CronSchedule message. Does not implicitly {@link flyteidl.admin.CronSchedule.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @memberof flyteidl.admin.CronSchedule * @static - * @param {flyteidl.admin.IListMatchableAttributesRequest} message ListMatchableAttributesRequest message or plain object to encode + * @param {flyteidl.admin.ICronSchedule} message CronSchedule message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListMatchableAttributesRequest.encode = function encode(message, writer) { + CronSchedule.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.resourceType != null && message.hasOwnProperty("resourceType")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.resourceType); - if (message.org != null && message.hasOwnProperty("org")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.org); + if (message.schedule != null && message.hasOwnProperty("schedule")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.schedule); + if (message.offset != null && message.hasOwnProperty("offset")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.offset); return writer; }; /** - * Decodes a ListMatchableAttributesRequest message from the specified reader or buffer. + * Decodes a CronSchedule message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @memberof flyteidl.admin.CronSchedule * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ListMatchableAttributesRequest} ListMatchableAttributesRequest + * @returns {flyteidl.admin.CronSchedule} CronSchedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListMatchableAttributesRequest.decode = function decode(reader, length) { + CronSchedule.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ListMatchableAttributesRequest(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.CronSchedule(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.resourceType = reader.int32(); + message.schedule = reader.string(); break; case 2: - message.org = reader.string(); + message.offset = reader.string(); break; default: reader.skipType(tag & 7); @@ -39394,58 +39352,49 @@ }; /** - * Verifies a ListMatchableAttributesRequest message. + * Verifies a CronSchedule message. * @function verify - * @memberof flyteidl.admin.ListMatchableAttributesRequest + * @memberof flyteidl.admin.CronSchedule * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListMatchableAttributesRequest.verify = function verify(message) { + CronSchedule.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.resourceType != null && message.hasOwnProperty("resourceType")) - switch (message.resourceType) { - default: - return "resourceType: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - break; - } - if (message.org != null && message.hasOwnProperty("org")) - if (!$util.isString(message.org)) - return "org: string expected"; + if (message.schedule != null && message.hasOwnProperty("schedule")) + if (!$util.isString(message.schedule)) + return "schedule: string expected"; + if (message.offset != null && message.hasOwnProperty("offset")) + if (!$util.isString(message.offset)) + return "offset: string expected"; return null; }; - return ListMatchableAttributesRequest; + return CronSchedule; })(); - admin.ListMatchableAttributesResponse = (function() { + admin.Schedule = (function() { /** - * Properties of a ListMatchableAttributesResponse. + * Properties of a Schedule. * @memberof flyteidl.admin - * @interface IListMatchableAttributesResponse - * @property {Array.|null} [configurations] ListMatchableAttributesResponse configurations + * @interface ISchedule + * @property {string|null} [cronExpression] Schedule cronExpression + * @property {flyteidl.admin.IFixedRate|null} [rate] Schedule rate + * @property {flyteidl.admin.ICronSchedule|null} [cronSchedule] Schedule cronSchedule + * @property {string|null} [kickoffTimeInputArg] Schedule kickoffTimeInputArg */ /** - * Constructs a new ListMatchableAttributesResponse. + * Constructs a new Schedule. * @memberof flyteidl.admin - * @classdesc Represents a ListMatchableAttributesResponse. - * @implements IListMatchableAttributesResponse + * @classdesc Represents a Schedule. + * @implements ISchedule * @constructor - * @param {flyteidl.admin.IListMatchableAttributesResponse=} [properties] Properties to set + * @param {flyteidl.admin.ISchedule=} [properties] Properties to set */ - function ListMatchableAttributesResponse(properties) { - this.configurations = []; + function Schedule(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -39453,65 +39402,115 @@ } /** - * ListMatchableAttributesResponse configurations. - * @member {Array.} configurations - * @memberof flyteidl.admin.ListMatchableAttributesResponse + * Schedule cronExpression. + * @member {string} cronExpression + * @memberof flyteidl.admin.Schedule * @instance */ - ListMatchableAttributesResponse.prototype.configurations = $util.emptyArray; + Schedule.prototype.cronExpression = ""; /** - * Creates a new ListMatchableAttributesResponse instance using the specified properties. + * Schedule rate. + * @member {flyteidl.admin.IFixedRate|null|undefined} rate + * @memberof flyteidl.admin.Schedule + * @instance + */ + Schedule.prototype.rate = null; + + /** + * Schedule cronSchedule. + * @member {flyteidl.admin.ICronSchedule|null|undefined} cronSchedule + * @memberof flyteidl.admin.Schedule + * @instance + */ + Schedule.prototype.cronSchedule = null; + + /** + * Schedule kickoffTimeInputArg. + * @member {string} kickoffTimeInputArg + * @memberof flyteidl.admin.Schedule + * @instance + */ + Schedule.prototype.kickoffTimeInputArg = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Schedule ScheduleExpression. + * @member {"cronExpression"|"rate"|"cronSchedule"|undefined} ScheduleExpression + * @memberof flyteidl.admin.Schedule + * @instance + */ + Object.defineProperty(Schedule.prototype, "ScheduleExpression", { + get: $util.oneOfGetter($oneOfFields = ["cronExpression", "rate", "cronSchedule"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Schedule instance using the specified properties. * @function create - * @memberof flyteidl.admin.ListMatchableAttributesResponse + * @memberof flyteidl.admin.Schedule * @static - * @param {flyteidl.admin.IListMatchableAttributesResponse=} [properties] Properties to set - * @returns {flyteidl.admin.ListMatchableAttributesResponse} ListMatchableAttributesResponse instance + * @param {flyteidl.admin.ISchedule=} [properties] Properties to set + * @returns {flyteidl.admin.Schedule} Schedule instance */ - ListMatchableAttributesResponse.create = function create(properties) { - return new ListMatchableAttributesResponse(properties); + Schedule.create = function create(properties) { + return new Schedule(properties); }; /** - * Encodes the specified ListMatchableAttributesResponse message. Does not implicitly {@link flyteidl.admin.ListMatchableAttributesResponse.verify|verify} messages. + * Encodes the specified Schedule message. Does not implicitly {@link flyteidl.admin.Schedule.verify|verify} messages. * @function encode - * @memberof flyteidl.admin.ListMatchableAttributesResponse + * @memberof flyteidl.admin.Schedule * @static - * @param {flyteidl.admin.IListMatchableAttributesResponse} message ListMatchableAttributesResponse message or plain object to encode + * @param {flyteidl.admin.ISchedule} message Schedule message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ListMatchableAttributesResponse.encode = function encode(message, writer) { + Schedule.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.configurations != null && message.configurations.length) - for (var i = 0; i < message.configurations.length; ++i) - $root.flyteidl.admin.MatchableAttributesConfiguration.encode(message.configurations[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.cronExpression != null && message.hasOwnProperty("cronExpression")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.cronExpression); + if (message.rate != null && message.hasOwnProperty("rate")) + $root.flyteidl.admin.FixedRate.encode(message.rate, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.kickoffTimeInputArg != null && message.hasOwnProperty("kickoffTimeInputArg")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.kickoffTimeInputArg); + if (message.cronSchedule != null && message.hasOwnProperty("cronSchedule")) + $root.flyteidl.admin.CronSchedule.encode(message.cronSchedule, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; /** - * Decodes a ListMatchableAttributesResponse message from the specified reader or buffer. + * Decodes a Schedule message from the specified reader or buffer. * @function decode - * @memberof flyteidl.admin.ListMatchableAttributesResponse + * @memberof flyteidl.admin.Schedule * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {flyteidl.admin.ListMatchableAttributesResponse} ListMatchableAttributesResponse + * @returns {flyteidl.admin.Schedule} Schedule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListMatchableAttributesResponse.decode = function decode(reader, length) { + Schedule.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ListMatchableAttributesResponse(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.Schedule(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: - if (!(message.configurations && message.configurations.length)) - message.configurations = []; - message.configurations.push($root.flyteidl.admin.MatchableAttributesConfiguration.decode(reader, reader.uint32())); + message.cronExpression = reader.string(); + break; + case 2: + message.rate = $root.flyteidl.admin.FixedRate.decode(reader, reader.uint32()); + break; + case 4: + message.cronSchedule = $root.flyteidl.admin.CronSchedule.decode(reader, reader.uint32()); + break; + case 3: + message.kickoffTimeInputArg = reader.string(); break; default: reader.skipType(tag & 7); @@ -39522,29 +39521,49 @@ }; /** - * Verifies a ListMatchableAttributesResponse message. + * Verifies a Schedule message. * @function verify - * @memberof flyteidl.admin.ListMatchableAttributesResponse + * @memberof flyteidl.admin.Schedule * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListMatchableAttributesResponse.verify = function verify(message) { + Schedule.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.configurations != null && message.hasOwnProperty("configurations")) { - if (!Array.isArray(message.configurations)) - return "configurations: array expected"; - for (var i = 0; i < message.configurations.length; ++i) { - var error = $root.flyteidl.admin.MatchableAttributesConfiguration.verify(message.configurations[i]); + var properties = {}; + if (message.cronExpression != null && message.hasOwnProperty("cronExpression")) { + properties.ScheduleExpression = 1; + if (!$util.isString(message.cronExpression)) + return "cronExpression: string expected"; + } + if (message.rate != null && message.hasOwnProperty("rate")) { + if (properties.ScheduleExpression === 1) + return "ScheduleExpression: multiple values"; + properties.ScheduleExpression = 1; + { + var error = $root.flyteidl.admin.FixedRate.verify(message.rate); if (error) - return "configurations." + error; + return "rate." + error; + } + } + if (message.cronSchedule != null && message.hasOwnProperty("cronSchedule")) { + if (properties.ScheduleExpression === 1) + return "ScheduleExpression: multiple values"; + properties.ScheduleExpression = 1; + { + var error = $root.flyteidl.admin.CronSchedule.verify(message.cronSchedule); + if (error) + return "cronSchedule." + error; } } + if (message.kickoffTimeInputArg != null && message.hasOwnProperty("kickoffTimeInputArg")) + if (!$util.isString(message.kickoffTimeInputArg)) + return "kickoffTimeInputArg: string expected"; return null; }; - return ListMatchableAttributesResponse; + return Schedule; })(); admin.NodeExecutionGetRequest = (function() { diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py index 4c2a628407..9a8fd202c7 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py @@ -22,9 +22,10 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd6\x01\n\x16\x45xecutionCreateRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12\x31\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\x99\x01\n\x18\x45xecutionRelaunchRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\'\n\x0foverwrite_cache\x18\x04 \x01(\x08R\x0eoverwriteCacheJ\x04\x08\x02\x10\x03\"\xa8\x01\n\x17\x45xecutionRecoverRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\"U\n\x17\x45xecutionCreateResponse\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"Y\n\x1bWorkflowExecutionGetRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\xb6\x01\n\tExecution\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x31\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12:\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosureR\x07\x63losure\"`\n\rExecutionList\x12\x39\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.ExecutionR\nexecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"e\n\x0eLiteralMapBlob\x12\x37\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\x06values\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uriB\x06\n\x04\x64\x61ta\"C\n\rAbortMetadata\x12\x14\n\x05\x63\x61use\x18\x01 \x01(\tR\x05\x63\x61use\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\"\x98\x07\n\x10\x45xecutionClosure\x12>\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00R\x07outputs\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12%\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00R\nabortCause\x12\x46\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00R\rabortMetadata\x12@\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x46\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x0e\x63omputedInputs\x12<\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12:\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12]\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsR\x12stateChangeDetailsB\x0f\n\routput_result\"[\n\x0eSystemMetadata\x12+\n\x11\x65xecution_cluster\x18\x01 \x01(\tR\x10\x65xecutionCluster\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\x85\x05\n\x11\x45xecutionMetadata\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionModeR\x04mode\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x18\n\x07nesting\x18\x03 \x01(\rR\x07nesting\x12=\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12Z\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12G\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadataR\x0esystemMetadata\x12<\n\x0c\x61rtifact_ids\x18\x12 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\"t\n\rExecutionMode\x12\n\n\x06MANUAL\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\x0c\n\x08RELAUNCH\x10\x03\x12\x12\n\x0e\x43HILD_WORKFLOW\x10\x04\x12\r\n\tRECOVERED\x10\x05\x12\x0b\n\x07TRIGGER\x10\x06\"V\n\x10NotificationList\x12\x42\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\"\x90\x08\n\rExecutionSpec\x12:\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nlaunchPlan\x12\x35\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x06inputs\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\x12H\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00R\rnotifications\x12!\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00R\ndisableAll\x12.\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12\x39\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12M\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12X\n\x16raw_output_data_config\x18\x13 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12P\n\x12\x63luster_assignment\x18\x14 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentR\x11\x63lusterAssignment\x12@\n\rinterruptible\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x16 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x17 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\x12\x12\n\x04tags\x18\x18 \x03(\tR\x04tagsB\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"m\n\x19\x45xecutionTerminateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x63\x61use\x18\x02 \x01(\tR\x05\x63\x61use\"\x1c\n\x1a\x45xecutionTerminateResponse\"]\n\x1fWorkflowExecutionGetDataRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\x88\x02\n WorkflowExecutionGetDataResponse\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\"\x8a\x01\n\x16\x45xecutionUpdateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\"\xae\x01\n\x1b\x45xecutionStateChangeDetails\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\x12;\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1c\n\tprincipal\x18\x03 \x01(\tR\tprincipal\"\x19\n\x17\x45xecutionUpdateResponse\"v\n\"WorkflowExecutionGetMetricsRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"N\n#WorkflowExecutionGetMetricsResponse\x12\'\n\x04span\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.SpanR\x04span*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\xba\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/cluster_assignment.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1f\x66lyteidl/core/artifact_id.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\'flyteidl/admin/matchable_resource.proto\"\xd6\x01\n\x16\x45xecutionCreateRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12\x31\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x10\n\x03org\x18\x06 \x01(\tR\x03org\"\x99\x01\n\x18\x45xecutionRelaunchRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\'\n\x0foverwrite_cache\x18\x04 \x01(\x08R\x0eoverwriteCacheJ\x04\x08\x02\x10\x03\"\xa8\x01\n\x17\x45xecutionRecoverRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\"U\n\x17\x45xecutionCreateResponse\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"Y\n\x1bWorkflowExecutionGetRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\xb6\x01\n\tExecution\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x31\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpecR\x04spec\x12:\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosureR\x07\x63losure\"`\n\rExecutionList\x12\x39\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.ExecutionR\nexecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"e\n\x0eLiteralMapBlob\x12\x37\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\x06values\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uriB\x06\n\x04\x64\x61ta\"C\n\rAbortMetadata\x12\x14\n\x05\x63\x61use\x18\x01 \x01(\tR\x05\x63\x61use\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\"\x98\x07\n\x10\x45xecutionClosure\x12>\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00R\x07outputs\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12%\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00R\nabortCause\x12\x46\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00R\rabortMetadata\x12@\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x46\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x0e\x63omputedInputs\x12<\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x42\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\x12:\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nworkflowId\x12]\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsR\x12stateChangeDetailsB\x0f\n\routput_result\"[\n\x0eSystemMetadata\x12+\n\x11\x65xecution_cluster\x18\x01 \x01(\tR\x10\x65xecutionCluster\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\"\x85\x05\n\x11\x45xecutionMetadata\x12\x43\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionModeR\x04mode\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x18\n\x07nesting\x18\x03 \x01(\rR\x07nesting\x12=\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12Z\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x13parentNodeExecution\x12[\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x12referenceExecution\x12G\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadataR\x0esystemMetadata\x12<\n\x0c\x61rtifact_ids\x18\x12 \x03(\x0b\x32\x19.flyteidl.core.ArtifactIDR\x0b\x61rtifactIds\"t\n\rExecutionMode\x12\n\n\x06MANUAL\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\x0c\n\x08RELAUNCH\x10\x03\x12\x12\n\x0e\x43HILD_WORKFLOW\x10\x04\x12\r\n\tRECOVERED\x10\x05\x12\x0b\n\x07TRIGGER\x10\x06\"V\n\x10NotificationList\x12\x42\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.NotificationR\rnotifications\"\xef\x08\n\rExecutionSpec\x12:\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\nlaunchPlan\x12\x35\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01R\x06inputs\x12=\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadataR\x08metadata\x12H\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00R\rnotifications\x12!\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00R\ndisableAll\x12.\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12=\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.AnnotationsR\x0b\x61nnotations\x12I\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContextR\x0fsecurityContext\x12\x39\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01R\x08\x61uthRole\x12M\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfServiceR\x10qualityOfService\x12\'\n\x0fmax_parallelism\x18\x12 \x01(\x05R\x0emaxParallelism\x12X\n\x16raw_output_data_config\x18\x13 \x01(\x0b\x32#.flyteidl.admin.RawOutputDataConfigR\x13rawOutputDataConfig\x12P\n\x12\x63luster_assignment\x18\x14 \x01(\x0b\x32!.flyteidl.admin.ClusterAssignmentR\x11\x63lusterAssignment\x12@\n\rinterruptible\x18\x15 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\rinterruptible\x12\'\n\x0foverwrite_cache\x18\x16 \x01(\x08R\x0eoverwriteCache\x12(\n\x04\x65nvs\x18\x17 \x01(\x0b\x32\x14.flyteidl.admin.EnvsR\x04\x65nvs\x12\x12\n\x04tags\x18\x18 \x03(\tR\x04tags\x12]\n\x17\x65xecution_cluster_label\x18\x19 \x01(\x0b\x32%.flyteidl.admin.ExecutionClusterLabelR\x15\x65xecutionClusterLabelB\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"m\n\x19\x45xecutionTerminateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x63\x61use\x18\x02 \x01(\tR\x05\x63\x61use\"\x1c\n\x1a\x45xecutionTerminateResponse\"]\n\x1fWorkflowExecutionGetDataRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\"\x88\x02\n WorkflowExecutionGetDataResponse\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12\x33\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\"\x8a\x01\n\x16\x45xecutionUpdateRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\"\xae\x01\n\x1b\x45xecutionStateChangeDetails\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionStateR\x05state\x12;\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x1c\n\tprincipal\x18\x03 \x01(\tR\tprincipal\"\x19\n\x17\x45xecutionUpdateResponse\"v\n\"WorkflowExecutionGetMetricsRequest\x12:\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x02id\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"N\n#WorkflowExecutionGetMetricsResponse\x12\'\n\x04span\x18\x01 \x01(\x0b\x32\x13.flyteidl.core.SpanR\x04span*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\xba\x01\n\x12\x63om.flyteidl.adminB\x0e\x45xecutionProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -51,54 +52,54 @@ _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['outputs']._serialized_options = b'\030\001' _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._options = None _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs']._serialized_options = b'\030\001' - _globals['_EXECUTIONSTATE']._serialized_start=5422 - _globals['_EXECUTIONSTATE']._serialized_end=5484 - _globals['_EXECUTIONCREATEREQUEST']._serialized_start=403 - _globals['_EXECUTIONCREATEREQUEST']._serialized_end=617 - _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_start=620 - _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_end=773 - _globals['_EXECUTIONRECOVERREQUEST']._serialized_start=776 - _globals['_EXECUTIONRECOVERREQUEST']._serialized_end=944 - _globals['_EXECUTIONCREATERESPONSE']._serialized_start=946 - _globals['_EXECUTIONCREATERESPONSE']._serialized_end=1031 - _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_start=1033 - _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_end=1122 - _globals['_EXECUTION']._serialized_start=1125 - _globals['_EXECUTION']._serialized_end=1307 - _globals['_EXECUTIONLIST']._serialized_start=1309 - _globals['_EXECUTIONLIST']._serialized_end=1405 - _globals['_LITERALMAPBLOB']._serialized_start=1407 - _globals['_LITERALMAPBLOB']._serialized_end=1508 - _globals['_ABORTMETADATA']._serialized_start=1510 - _globals['_ABORTMETADATA']._serialized_end=1577 - _globals['_EXECUTIONCLOSURE']._serialized_start=1580 - _globals['_EXECUTIONCLOSURE']._serialized_end=2500 - _globals['_SYSTEMMETADATA']._serialized_start=2502 - _globals['_SYSTEMMETADATA']._serialized_end=2593 - _globals['_EXECUTIONMETADATA']._serialized_start=2596 - _globals['_EXECUTIONMETADATA']._serialized_end=3241 - _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_start=3125 - _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3241 - _globals['_NOTIFICATIONLIST']._serialized_start=3243 - _globals['_NOTIFICATIONLIST']._serialized_end=3329 - _globals['_EXECUTIONSPEC']._serialized_start=3332 - _globals['_EXECUTIONSPEC']._serialized_end=4372 - _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4374 - _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4483 - _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4485 - _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4513 - _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4515 - _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4608 - _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4611 - _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=4875 - _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=4878 - _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=5016 - _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=5019 - _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5193 - _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5195 - _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5220 - _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5222 - _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5340 - _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5342 - _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5420 + _globals['_EXECUTIONSTATE']._serialized_start=5558 + _globals['_EXECUTIONSTATE']._serialized_end=5620 + _globals['_EXECUTIONCREATEREQUEST']._serialized_start=444 + _globals['_EXECUTIONCREATEREQUEST']._serialized_end=658 + _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_start=661 + _globals['_EXECUTIONRELAUNCHREQUEST']._serialized_end=814 + _globals['_EXECUTIONRECOVERREQUEST']._serialized_start=817 + _globals['_EXECUTIONRECOVERREQUEST']._serialized_end=985 + _globals['_EXECUTIONCREATERESPONSE']._serialized_start=987 + _globals['_EXECUTIONCREATERESPONSE']._serialized_end=1072 + _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_start=1074 + _globals['_WORKFLOWEXECUTIONGETREQUEST']._serialized_end=1163 + _globals['_EXECUTION']._serialized_start=1166 + _globals['_EXECUTION']._serialized_end=1348 + _globals['_EXECUTIONLIST']._serialized_start=1350 + _globals['_EXECUTIONLIST']._serialized_end=1446 + _globals['_LITERALMAPBLOB']._serialized_start=1448 + _globals['_LITERALMAPBLOB']._serialized_end=1549 + _globals['_ABORTMETADATA']._serialized_start=1551 + _globals['_ABORTMETADATA']._serialized_end=1618 + _globals['_EXECUTIONCLOSURE']._serialized_start=1621 + _globals['_EXECUTIONCLOSURE']._serialized_end=2541 + _globals['_SYSTEMMETADATA']._serialized_start=2543 + _globals['_SYSTEMMETADATA']._serialized_end=2634 + _globals['_EXECUTIONMETADATA']._serialized_start=2637 + _globals['_EXECUTIONMETADATA']._serialized_end=3282 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_start=3166 + _globals['_EXECUTIONMETADATA_EXECUTIONMODE']._serialized_end=3282 + _globals['_NOTIFICATIONLIST']._serialized_start=3284 + _globals['_NOTIFICATIONLIST']._serialized_end=3370 + _globals['_EXECUTIONSPEC']._serialized_start=3373 + _globals['_EXECUTIONSPEC']._serialized_end=4508 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_start=4510 + _globals['_EXECUTIONTERMINATEREQUEST']._serialized_end=4619 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_start=4621 + _globals['_EXECUTIONTERMINATERESPONSE']._serialized_end=4649 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_start=4651 + _globals['_WORKFLOWEXECUTIONGETDATAREQUEST']._serialized_end=4744 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_start=4747 + _globals['_WORKFLOWEXECUTIONGETDATARESPONSE']._serialized_end=5011 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_start=5014 + _globals['_EXECUTIONUPDATEREQUEST']._serialized_end=5152 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_start=5155 + _globals['_EXECUTIONSTATECHANGEDETAILS']._serialized_end=5329 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_start=5331 + _globals['_EXECUTIONUPDATERESPONSE']._serialized_end=5356 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_start=5358 + _globals['_WORKFLOWEXECUTIONGETMETRICSREQUEST']._serialized_end=5476 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_start=5478 + _globals['_WORKFLOWEXECUTIONGETMETRICSRESPONSE']._serialized_end=5556 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi index c832b3a429..6b34cbf578 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.pyi @@ -9,6 +9,7 @@ from flyteidl.core import security_pb2 as _security_pb2 from google.protobuf import duration_pb2 as _duration_pb2 from google.protobuf import timestamp_pb2 as _timestamp_pb2 from google.protobuf import wrappers_pb2 as _wrappers_pb2 +from flyteidl.admin import matchable_resource_pb2 as _matchable_resource_pb2 from google.protobuf.internal import containers as _containers from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -189,7 +190,7 @@ class NotificationList(_message.Message): def __init__(self, notifications: _Optional[_Iterable[_Union[_common_pb2.Notification, _Mapping]]] = ...) -> None: ... class ExecutionSpec(_message.Message): - __slots__ = ["launch_plan", "inputs", "metadata", "notifications", "disable_all", "labels", "annotations", "security_context", "auth_role", "quality_of_service", "max_parallelism", "raw_output_data_config", "cluster_assignment", "interruptible", "overwrite_cache", "envs", "tags"] + __slots__ = ["launch_plan", "inputs", "metadata", "notifications", "disable_all", "labels", "annotations", "security_context", "auth_role", "quality_of_service", "max_parallelism", "raw_output_data_config", "cluster_assignment", "interruptible", "overwrite_cache", "envs", "tags", "execution_cluster_label"] LAUNCH_PLAN_FIELD_NUMBER: _ClassVar[int] INPUTS_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] @@ -207,6 +208,7 @@ class ExecutionSpec(_message.Message): OVERWRITE_CACHE_FIELD_NUMBER: _ClassVar[int] ENVS_FIELD_NUMBER: _ClassVar[int] TAGS_FIELD_NUMBER: _ClassVar[int] + EXECUTION_CLUSTER_LABEL_FIELD_NUMBER: _ClassVar[int] launch_plan: _identifier_pb2.Identifier inputs: _literals_pb2.LiteralMap metadata: ExecutionMetadata @@ -224,7 +226,8 @@ class ExecutionSpec(_message.Message): overwrite_cache: bool envs: _common_pb2.Envs tags: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, launch_plan: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., metadata: _Optional[_Union[ExecutionMetadata, _Mapping]] = ..., notifications: _Optional[_Union[NotificationList, _Mapping]] = ..., disable_all: bool = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., annotations: _Optional[_Union[_common_pb2.Annotations, _Mapping]] = ..., security_context: _Optional[_Union[_security_pb2.SecurityContext, _Mapping]] = ..., auth_role: _Optional[_Union[_common_pb2.AuthRole, _Mapping]] = ..., quality_of_service: _Optional[_Union[_execution_pb2.QualityOfService, _Mapping]] = ..., max_parallelism: _Optional[int] = ..., raw_output_data_config: _Optional[_Union[_common_pb2.RawOutputDataConfig, _Mapping]] = ..., cluster_assignment: _Optional[_Union[_cluster_assignment_pb2.ClusterAssignment, _Mapping]] = ..., interruptible: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., overwrite_cache: bool = ..., envs: _Optional[_Union[_common_pb2.Envs, _Mapping]] = ..., tags: _Optional[_Iterable[str]] = ...) -> None: ... + execution_cluster_label: _matchable_resource_pb2.ExecutionClusterLabel + def __init__(self, launch_plan: _Optional[_Union[_identifier_pb2.Identifier, _Mapping]] = ..., inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., metadata: _Optional[_Union[ExecutionMetadata, _Mapping]] = ..., notifications: _Optional[_Union[NotificationList, _Mapping]] = ..., disable_all: bool = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., annotations: _Optional[_Union[_common_pb2.Annotations, _Mapping]] = ..., security_context: _Optional[_Union[_security_pb2.SecurityContext, _Mapping]] = ..., auth_role: _Optional[_Union[_common_pb2.AuthRole, _Mapping]] = ..., quality_of_service: _Optional[_Union[_execution_pb2.QualityOfService, _Mapping]] = ..., max_parallelism: _Optional[int] = ..., raw_output_data_config: _Optional[_Union[_common_pb2.RawOutputDataConfig, _Mapping]] = ..., cluster_assignment: _Optional[_Union[_cluster_assignment_pb2.ClusterAssignment, _Mapping]] = ..., interruptible: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., overwrite_cache: bool = ..., envs: _Optional[_Union[_common_pb2.Envs, _Mapping]] = ..., tags: _Optional[_Iterable[str]] = ..., execution_cluster_label: _Optional[_Union[_matchable_resource_pb2.ExecutionClusterLabel, _Mapping]] = ...) -> None: ... class ExecutionTerminateRequest(_message.Message): __slots__ = ["id", "cause"] diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index f324614904..ea1a14ce25 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -1034,153 +1034,412 @@ pub struct TaskExecutionEventRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct TaskExecutionEventResponse { } -/// Request to launch an execution with the given project, domain and optionally-assigned name. +/// Defines a set of overridable task resource attributes set during task registration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionCreateRequest { - /// Name of the project the execution belongs to. - /// +required +pub struct TaskResourceSpec { #[prost(string, tag="1")] - pub project: ::prost::alloc::string::String, - /// Name of the domain the execution belongs to. - /// A domain can be considered as a subset within a specific project. - /// +required + pub cpu: ::prost::alloc::string::String, #[prost(string, tag="2")] - pub domain: ::prost::alloc::string::String, - /// User provided value for the resource. - /// If none is provided the system will generate a unique string. - /// +optional + pub gpu: ::prost::alloc::string::String, #[prost(string, tag="3")] - pub name: ::prost::alloc::string::String, - /// Additional fields necessary to launch the execution. - /// +optional - #[prost(message, optional, tag="4")] - pub spec: ::core::option::Option, - /// The inputs required to start the execution. All required inputs must be - /// included in this map. If not required and not provided, defaults apply. - /// +optional - #[prost(message, optional, tag="5")] - pub inputs: ::core::option::Option, - /// Optional, org key applied to the resource. - #[prost(string, tag="6")] - pub org: ::prost::alloc::string::String, + pub memory: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub storage: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub ephemeral_storage: ::prost::alloc::string::String, } -/// Request to relaunch the referenced execution. +/// Defines task resource defaults and limits that will be applied at task registration. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionRelaunchRequest { - /// Identifier of the workflow execution to relaunch. - /// +required +pub struct TaskResourceAttributes { #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// User provided value for the relaunched execution. - /// If none is provided the system will generate a unique string. - /// +optional - #[prost(string, tag="3")] - pub name: ::prost::alloc::string::String, - /// Allows for all cached values of a workflow and its tasks to be overwritten for a single execution. - /// If enabled, all calculations are performed even if cached results would be available, overwriting the stored - /// data once execution finishes successfully. - #[prost(bool, tag="4")] - pub overwrite_cache: bool, + pub defaults: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub limits: ::core::option::Option, } -/// Request to recover the referenced execution. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionRecoverRequest { - /// Identifier of the workflow execution to recover. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// User provided value for the recovered execution. - /// If none is provided the system will generate a unique string. - /// +optional - #[prost(string, tag="2")] - pub name: ::prost::alloc::string::String, - /// Additional metadata which will be used to overwrite any metadata in the reference execution when triggering a recovery execution. - #[prost(message, optional, tag="3")] - pub metadata: ::core::option::Option, +pub struct ClusterResourceAttributes { + /// Custom resource attributes which will be applied in cluster resource creation (e.g. quotas). + /// Map keys are the *case-sensitive* names of variables in templatized resource files. + /// Map values should be the custom values which get substituted during resource creation. + #[prost(map="string, string", tag="1")] + pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, } -/// The unique identifier for a successfully created execution. -/// If the name was *not* specified in the create request, this identifier will include a generated name. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionCreateResponse { - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, +pub struct ExecutionQueueAttributes { + /// Tags used for assigning execution queues for tasks defined within this project. + #[prost(string, repeated, tag="1")] + pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } -/// A message used to fetch a single workflow execution entity. -/// See :ref:`ref_flyteidl.admin.Execution` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct WorkflowExecutionGetRequest { - /// Uniquely identifies an individual workflow execution. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, +pub struct ExecutionClusterLabel { + /// Label value to determine where the execution will be run + #[prost(string, tag="1")] + pub value: ::prost::alloc::string::String, } -/// A workflow execution represents an instantiated workflow, including all inputs and additional -/// metadata as well as computed results included state, outputs, and duration-based attributes. -/// Used as a response object used in Get and List execution requests. +/// This MatchableAttribute configures selecting alternate plugin implementations for a given task type. +/// In addition to an override implementation a selection of fallbacks can be provided or other modes +/// for handling cases where the desired plugin override is not enabled in a given Flyte deployment. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Execution { - /// Unique identifier of the workflow execution. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// User-provided configuration and inputs for launching the execution. - #[prost(message, optional, tag="2")] - pub spec: ::core::option::Option, - /// Execution results. - #[prost(message, optional, tag="3")] - pub closure: ::core::option::Option, +pub struct PluginOverride { + /// A predefined yet extensible Task type identifier. + #[prost(string, tag="1")] + pub task_type: ::prost::alloc::string::String, + /// A set of plugin ids which should handle tasks of this type instead of the default registered plugin. The list will be tried in order until a plugin is found with that id. + #[prost(string, repeated, tag="2")] + pub plugin_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Defines the behavior when no plugin from the plugin_id list is not found. + #[prost(enumeration="plugin_override::MissingPluginBehavior", tag="4")] + pub missing_plugin_behavior: i32, +} +/// Nested message and enum types in `PluginOverride`. +pub mod plugin_override { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum MissingPluginBehavior { + /// By default, if this plugin is not enabled for a Flyte deployment then execution will fail. + Fail = 0, + /// Uses the system-configured default implementation. + UseDefault = 1, + } + impl MissingPluginBehavior { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + MissingPluginBehavior::Fail => "FAIL", + MissingPluginBehavior::UseDefault => "USE_DEFAULT", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FAIL" => Some(Self::Fail), + "USE_DEFAULT" => Some(Self::UseDefault), + _ => None, + } + } + } } -/// Used as a response for request to list executions. -/// See :ref:`ref_flyteidl.admin.Execution` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionList { +pub struct PluginOverrides { #[prost(message, repeated, tag="1")] - pub executions: ::prost::alloc::vec::Vec, - /// In the case of multiple pages of results, the server-provided token can be used to fetch the next page - /// in a query. If there are no more results, this value will be empty. - #[prost(string, tag="2")] - pub token: ::prost::alloc::string::String, + pub overrides: ::prost::alloc::vec::Vec, } -/// Input/output data can represented by actual values or a link to where values are stored +/// Adds defaults for customizable workflow-execution specifications and overrides. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LiteralMapBlob { - #[prost(oneof="literal_map_blob::Data", tags="1, 2")] - pub data: ::core::option::Option, +pub struct WorkflowExecutionConfig { + /// Can be used to control the number of parallel nodes to run within the workflow. This is useful to achieve fairness. + #[prost(int32, tag="1")] + pub max_parallelism: i32, + /// Indicates security context permissions for executions triggered with this matchable attribute. + #[prost(message, optional, tag="2")] + pub security_context: ::core::option::Option, + /// Encapsulates user settings pertaining to offloaded data (i.e. Blobs, Schema, query data, etc.). + #[prost(message, optional, tag="3")] + pub raw_output_data_config: ::core::option::Option, + /// Custom labels to be applied to a triggered execution resource. + #[prost(message, optional, tag="4")] + pub labels: ::core::option::Option, + /// Custom annotations to be applied to a triggered execution resource. + #[prost(message, optional, tag="5")] + pub annotations: ::core::option::Option, + /// Allows for the interruptible flag of a workflow to be overwritten for a single execution. + /// Omitting this field uses the workflow's value as a default. + /// As we need to distinguish between the field not being provided and its default value false, we have to use a wrapper + /// around the bool field. + #[prost(message, optional, tag="6")] + pub interruptible: ::core::option::Option, + /// Allows for all cached values of a workflow and its tasks to be overwritten for a single execution. + /// If enabled, all calculations are performed even if cached results would be available, overwriting the stored + /// data once execution finishes successfully. + #[prost(bool, tag="7")] + pub overwrite_cache: bool, + /// Environment variables to be set for the execution. + #[prost(message, optional, tag="8")] + pub envs: ::core::option::Option, } -/// Nested message and enum types in `LiteralMapBlob`. -pub mod literal_map_blob { +/// Generic container for encapsulating all types of the above attributes messages. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MatchingAttributes { + #[prost(oneof="matching_attributes::Target", tags="1, 2, 3, 4, 5, 6, 7, 8")] + pub target: ::core::option::Option, +} +/// Nested message and enum types in `MatchingAttributes`. +pub mod matching_attributes { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Data { - /// Data in LiteralMap format + pub enum Target { #[prost(message, tag="1")] - Values(super::super::core::LiteralMap), - /// In the event that the map is too large, we return a uri to the data - #[prost(string, tag="2")] - Uri(::prost::alloc::string::String), + TaskResourceAttributes(super::TaskResourceAttributes), + #[prost(message, tag="2")] + ClusterResourceAttributes(super::ClusterResourceAttributes), + #[prost(message, tag="3")] + ExecutionQueueAttributes(super::ExecutionQueueAttributes), + #[prost(message, tag="4")] + ExecutionClusterLabel(super::ExecutionClusterLabel), + #[prost(message, tag="5")] + QualityOfService(super::super::core::QualityOfService), + #[prost(message, tag="6")] + PluginOverrides(super::PluginOverrides), + #[prost(message, tag="7")] + WorkflowExecutionConfig(super::WorkflowExecutionConfig), + #[prost(message, tag="8")] + ClusterAssignment(super::ClusterAssignment), } } -/// Specifies metadata around an aborted workflow execution. +/// Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org); +/// or domain, project and workflow name (and optional org). +/// These are used to override system level defaults for kubernetes cluster resource management, +/// default execution values, and more all across different levels of specificity. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct AbortMetadata { - /// In the case of a user-specified abort, this will pass along the user-supplied cause. - #[prost(string, tag="1")] - pub cause: ::prost::alloc::string::String, - /// Identifies the entity (if any) responsible for terminating the execution +pub struct MatchableAttributesConfiguration { + #[prost(message, optional, tag="1")] + pub attributes: ::core::option::Option, #[prost(string, tag="2")] - pub principal: ::prost::alloc::string::String, + pub domain: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub project: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub workflow: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub launch_plan: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, } -/// Encapsulates the results of the Execution +/// Request all matching resource attributes for a resource type. +/// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionClosure { - /// Inputs computed and passed for execution. +pub struct ListMatchableAttributesRequest { + /// +required + #[prost(enumeration="MatchableResource", tag="1")] + pub resource_type: i32, + /// Optional, org filter applied to list project requests. + #[prost(string, tag="2")] + pub org: ::prost::alloc::string::String, +} +/// Response for a request for all matching resource attributes for a resource type. +/// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListMatchableAttributesResponse { + #[prost(message, repeated, tag="1")] + pub configurations: ::prost::alloc::vec::Vec, +} +/// Defines a resource that can be configured by customizable Project-, ProjectDomain- or WorkflowAttributes +/// based on matching tags. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum MatchableResource { + /// Applies to customizable task resource requests and limits. + TaskResource = 0, + /// Applies to configuring templated kubernetes cluster resources. + ClusterResource = 1, + /// Configures task and dynamic task execution queue assignment. + ExecutionQueue = 2, + /// Configures the K8s cluster label to be used for execution to be run + ExecutionClusterLabel = 3, + /// Configures default quality of service when undefined in an execution spec. + QualityOfServiceSpecification = 4, + /// Selects configurable plugin implementation behavior for a given task type. + PluginOverride = 5, + /// Adds defaults for customizable workflow-execution specifications and overrides. + WorkflowExecutionConfig = 6, + /// Controls how to select an available cluster on which this execution should run. + ClusterAssignment = 7, +} +impl MatchableResource { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + MatchableResource::TaskResource => "TASK_RESOURCE", + MatchableResource::ClusterResource => "CLUSTER_RESOURCE", + MatchableResource::ExecutionQueue => "EXECUTION_QUEUE", + MatchableResource::ExecutionClusterLabel => "EXECUTION_CLUSTER_LABEL", + MatchableResource::QualityOfServiceSpecification => "QUALITY_OF_SERVICE_SPECIFICATION", + MatchableResource::PluginOverride => "PLUGIN_OVERRIDE", + MatchableResource::WorkflowExecutionConfig => "WORKFLOW_EXECUTION_CONFIG", + MatchableResource::ClusterAssignment => "CLUSTER_ASSIGNMENT", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TASK_RESOURCE" => Some(Self::TaskResource), + "CLUSTER_RESOURCE" => Some(Self::ClusterResource), + "EXECUTION_QUEUE" => Some(Self::ExecutionQueue), + "EXECUTION_CLUSTER_LABEL" => Some(Self::ExecutionClusterLabel), + "QUALITY_OF_SERVICE_SPECIFICATION" => Some(Self::QualityOfServiceSpecification), + "PLUGIN_OVERRIDE" => Some(Self::PluginOverride), + "WORKFLOW_EXECUTION_CONFIG" => Some(Self::WorkflowExecutionConfig), + "CLUSTER_ASSIGNMENT" => Some(Self::ClusterAssignment), + _ => None, + } + } +} +/// Request to launch an execution with the given project, domain and optionally-assigned name. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionCreateRequest { + /// Name of the project the execution belongs to. + /// +required + #[prost(string, tag="1")] + pub project: ::prost::alloc::string::String, + /// Name of the domain the execution belongs to. + /// A domain can be considered as a subset within a specific project. + /// +required + #[prost(string, tag="2")] + pub domain: ::prost::alloc::string::String, + /// User provided value for the resource. + /// If none is provided the system will generate a unique string. + /// +optional + #[prost(string, tag="3")] + pub name: ::prost::alloc::string::String, + /// Additional fields necessary to launch the execution. + /// +optional + #[prost(message, optional, tag="4")] + pub spec: ::core::option::Option, + /// The inputs required to start the execution. All required inputs must be + /// included in this map. If not required and not provided, defaults apply. + /// +optional + #[prost(message, optional, tag="5")] + pub inputs: ::core::option::Option, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, +} +/// Request to relaunch the referenced execution. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionRelaunchRequest { + /// Identifier of the workflow execution to relaunch. + /// +required + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, + /// User provided value for the relaunched execution. + /// If none is provided the system will generate a unique string. + /// +optional + #[prost(string, tag="3")] + pub name: ::prost::alloc::string::String, + /// Allows for all cached values of a workflow and its tasks to be overwritten for a single execution. + /// If enabled, all calculations are performed even if cached results would be available, overwriting the stored + /// data once execution finishes successfully. + #[prost(bool, tag="4")] + pub overwrite_cache: bool, +} +/// Request to recover the referenced execution. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionRecoverRequest { + /// Identifier of the workflow execution to recover. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, + /// User provided value for the recovered execution. + /// If none is provided the system will generate a unique string. + /// +optional + #[prost(string, tag="2")] + pub name: ::prost::alloc::string::String, + /// Additional metadata which will be used to overwrite any metadata in the reference execution when triggering a recovery execution. + #[prost(message, optional, tag="3")] + pub metadata: ::core::option::Option, +} +/// The unique identifier for a successfully created execution. +/// If the name was *not* specified in the create request, this identifier will include a generated name. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionCreateResponse { + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, +} +/// A message used to fetch a single workflow execution entity. +/// See :ref:`ref_flyteidl.admin.Execution` for more details +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WorkflowExecutionGetRequest { + /// Uniquely identifies an individual workflow execution. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, +} +/// A workflow execution represents an instantiated workflow, including all inputs and additional +/// metadata as well as computed results included state, outputs, and duration-based attributes. +/// Used as a response object used in Get and List execution requests. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Execution { + /// Unique identifier of the workflow execution. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, + /// User-provided configuration and inputs for launching the execution. + #[prost(message, optional, tag="2")] + pub spec: ::core::option::Option, + /// Execution results. + #[prost(message, optional, tag="3")] + pub closure: ::core::option::Option, +} +/// Used as a response for request to list executions. +/// See :ref:`ref_flyteidl.admin.Execution` for more details +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionList { + #[prost(message, repeated, tag="1")] + pub executions: ::prost::alloc::vec::Vec, + /// In the case of multiple pages of results, the server-provided token can be used to fetch the next page + /// in a query. If there are no more results, this value will be empty. + #[prost(string, tag="2")] + pub token: ::prost::alloc::string::String, +} +/// Input/output data can represented by actual values or a link to where values are stored +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LiteralMapBlob { + #[prost(oneof="literal_map_blob::Data", tags="1, 2")] + pub data: ::core::option::Option, +} +/// Nested message and enum types in `LiteralMapBlob`. +pub mod literal_map_blob { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Data { + /// Data in LiteralMap format + #[prost(message, tag="1")] + Values(super::super::core::LiteralMap), + /// In the event that the map is too large, we return a uri to the data + #[prost(string, tag="2")] + Uri(::prost::alloc::string::String), + } +} +/// Specifies metadata around an aborted workflow execution. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AbortMetadata { + /// In the case of a user-specified abort, this will pass along the user-supplied cause. + #[prost(string, tag="1")] + pub cause: ::prost::alloc::string::String, + /// Identifies the entity (if any) responsible for terminating the execution + #[prost(string, tag="2")] + pub principal: ::prost::alloc::string::String, +} +/// Encapsulates the results of the Execution +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionClosure { + /// Inputs computed and passed for execution. /// computed_inputs depends on inputs in ExecutionSpec, fixed and default inputs in launch plan #[deprecated] #[prost(message, optional, tag="3")] @@ -1328,814 +1587,558 @@ pub mod execution_metadata { ExecutionMode::Trigger => "TRIGGER", } } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "MANUAL" => Some(Self::Manual), - "SCHEDULED" => Some(Self::Scheduled), - "SYSTEM" => Some(Self::System), - "RELAUNCH" => Some(Self::Relaunch), - "CHILD_WORKFLOW" => Some(Self::ChildWorkflow), - "RECOVERED" => Some(Self::Recovered), - "TRIGGER" => Some(Self::Trigger), - _ => None, - } - } - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NotificationList { - #[prost(message, repeated, tag="1")] - pub notifications: ::prost::alloc::vec::Vec, -} -/// An ExecutionSpec encompasses all data used to launch this execution. The Spec does not change over the lifetime -/// of an execution as it progresses across phase changes. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionSpec { - /// Launch plan to be executed - #[prost(message, optional, tag="1")] - pub launch_plan: ::core::option::Option, - /// Input values to be passed for the execution - #[deprecated] - #[prost(message, optional, tag="2")] - pub inputs: ::core::option::Option, - /// Metadata for the execution - #[prost(message, optional, tag="3")] - pub metadata: ::core::option::Option, - /// Labels to apply to the execution resource. - #[prost(message, optional, tag="7")] - pub labels: ::core::option::Option, - /// Annotations to apply to the execution resource. - #[prost(message, optional, tag="8")] - pub annotations: ::core::option::Option, - /// Optional: security context override to apply this execution. - #[prost(message, optional, tag="10")] - pub security_context: ::core::option::Option, - /// Optional: auth override to apply this execution. - #[deprecated] - #[prost(message, optional, tag="16")] - pub auth_role: ::core::option::Option, - /// Indicates the runtime priority of the execution. - #[prost(message, optional, tag="17")] - pub quality_of_service: ::core::option::Option, - /// Controls the maximum number of task nodes that can be run in parallel for the entire workflow. - /// This is useful to achieve fairness. Note: MapTasks are regarded as one unit, - /// and parallelism/concurrency of MapTasks is independent from this. - #[prost(int32, tag="18")] - pub max_parallelism: i32, - /// User setting to configure where to store offloaded data (i.e. Blobs, structured datasets, query data, etc.). - /// This should be a prefix like s3://my-bucket/my-data - #[prost(message, optional, tag="19")] - pub raw_output_data_config: ::core::option::Option, - /// Controls how to select an available cluster on which this execution should run. - #[prost(message, optional, tag="20")] - pub cluster_assignment: ::core::option::Option, - /// Allows for the interruptible flag of a workflow to be overwritten for a single execution. - /// Omitting this field uses the workflow's value as a default. - /// As we need to distinguish between the field not being provided and its default value false, we have to use a wrapper - /// around the bool field. - #[prost(message, optional, tag="21")] - pub interruptible: ::core::option::Option, - /// Allows for all cached values of a workflow and its tasks to be overwritten for a single execution. - /// If enabled, all calculations are performed even if cached results would be available, overwriting the stored - /// data once execution finishes successfully. - #[prost(bool, tag="22")] - pub overwrite_cache: bool, - /// Environment variables to be set for the execution. - #[prost(message, optional, tag="23")] - pub envs: ::core::option::Option, - /// Tags to be set for the execution. - #[prost(string, repeated, tag="24")] - pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - #[prost(oneof="execution_spec::NotificationOverrides", tags="5, 6")] - pub notification_overrides: ::core::option::Option, -} -/// Nested message and enum types in `ExecutionSpec`. -pub mod execution_spec { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum NotificationOverrides { - /// List of notifications based on Execution status transitions - /// When this list is not empty it is used rather than any notifications defined in the referenced launch plan. - /// When this list is empty, the notifications defined for the launch plan will be applied. - #[prost(message, tag="5")] - Notifications(super::NotificationList), - /// This should be set to true if all notifications are intended to be disabled for this execution. - #[prost(bool, tag="6")] - DisableAll(bool), - } -} -/// Request to terminate an in-progress execution. This action is irreversible. -/// If an execution is already terminated, this request will simply be a no-op. -/// This request will fail if it references a non-existent execution. -/// If the request succeeds the phase "ABORTED" will be recorded for the termination -/// with the optional cause added to the output_result. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionTerminateRequest { - /// Uniquely identifies the individual workflow execution to be terminated. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// Optional reason for aborting. - #[prost(string, tag="2")] - pub cause: ::prost::alloc::string::String, -} -/// Purposefully empty, may be populated in the future. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionTerminateResponse { -} -/// Request structure to fetch inputs, output and other data produced by an execution. -/// By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest` -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct WorkflowExecutionGetDataRequest { - /// The identifier of the execution for which to fetch inputs and outputs. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, -} -/// Response structure for WorkflowExecutionGetDataRequest which contains inputs and outputs for an execution. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct WorkflowExecutionGetDataResponse { - /// Signed url to fetch a core.LiteralMap of execution outputs. - /// Deprecated: Please use full_outputs instead. - #[deprecated] - #[prost(message, optional, tag="1")] - pub outputs: ::core::option::Option, - /// Signed url to fetch a core.LiteralMap of execution inputs. - /// Deprecated: Please use full_inputs instead. - #[deprecated] - #[prost(message, optional, tag="2")] - pub inputs: ::core::option::Option, - /// Full_inputs will only be populated if they are under a configured size threshold. - #[prost(message, optional, tag="3")] - pub full_inputs: ::core::option::Option, - /// Full_outputs will only be populated if they are under a configured size threshold. - #[prost(message, optional, tag="4")] - pub full_outputs: ::core::option::Option, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionUpdateRequest { - /// Identifier of the execution to update - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// State to set as the new value active/archive - #[prost(enumeration="ExecutionState", tag="2")] - pub state: i32, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionStateChangeDetails { - /// The state of the execution is used to control its visibility in the UI/CLI. - #[prost(enumeration="ExecutionState", tag="1")] - pub state: i32, - /// This timestamp represents when the state changed. - #[prost(message, optional, tag="2")] - pub occurred_at: ::core::option::Option<::prost_types::Timestamp>, - /// Identifies the entity (if any) responsible for causing the state change of the execution - #[prost(string, tag="3")] - pub principal: ::prost::alloc::string::String, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionUpdateResponse { -} -/// WorkflowExecutionGetMetricsRequest represents a request to retrieve metrics for the specified workflow execution. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct WorkflowExecutionGetMetricsRequest { - /// id defines the workflow execution to query for. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// depth defines the number of Flyte entity levels to traverse when breaking down execution details. - #[prost(int32, tag="2")] - pub depth: i32, -} -/// WorkflowExecutionGetMetricsResponse represents the response containing metrics for the specified workflow execution. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct WorkflowExecutionGetMetricsResponse { - /// Span defines the top-level breakdown of the workflows execution. More precise information is nested in a - /// hierarchical structure using Flyte entity references. - #[prost(message, optional, tag="1")] - pub span: ::core::option::Option, -} -/// The state of the execution is used to control its visibility in the UI/CLI. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] -#[repr(i32)] -pub enum ExecutionState { - /// By default, all executions are considered active. - ExecutionActive = 0, - /// Archived executions are no longer visible in the UI. - ExecutionArchived = 1, -} -impl ExecutionState { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - ExecutionState::ExecutionActive => "EXECUTION_ACTIVE", - ExecutionState::ExecutionArchived => "EXECUTION_ARCHIVED", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "EXECUTION_ACTIVE" => Some(Self::ExecutionActive), - "EXECUTION_ARCHIVED" => Some(Self::ExecutionArchived), - _ => None, - } - } -} -/// Option for schedules run at a certain frequency e.g. every 2 minutes. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct FixedRate { - #[prost(uint32, tag="1")] - pub value: u32, - #[prost(enumeration="FixedRateUnit", tag="2")] - pub unit: i32, -} -/// Options for schedules to run according to a cron expression. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CronSchedule { - /// Standard/default cron implementation as described by - /// Also supports nonstandard predefined scheduling definitions - /// as described by - /// except @reboot - #[prost(string, tag="1")] - pub schedule: ::prost::alloc::string::String, - /// ISO 8601 duration as described by - #[prost(string, tag="2")] - pub offset: ::prost::alloc::string::String, -} -/// Defines complete set of information required to trigger an execution on a schedule. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Schedule { - /// Name of the input variable that the kickoff time will be supplied to when the workflow is kicked off. - #[prost(string, tag="3")] - pub kickoff_time_input_arg: ::prost::alloc::string::String, - #[prost(oneof="schedule::ScheduleExpression", tags="1, 2, 4")] - pub schedule_expression: ::core::option::Option, -} -/// Nested message and enum types in `Schedule`. -pub mod schedule { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum ScheduleExpression { - /// Uses AWS syntax: Minutes Hours Day-of-month Month Day-of-week Year - /// e.g. for a schedule that runs every 15 minutes: 0/15 * * * ? * - #[prost(string, tag="1")] - CronExpression(::prost::alloc::string::String), - #[prost(message, tag="2")] - Rate(super::FixedRate), - #[prost(message, tag="4")] - CronSchedule(super::CronSchedule), - } -} -/// Represents a frequency at which to run a schedule. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] -#[repr(i32)] -pub enum FixedRateUnit { - Minute = 0, - Hour = 1, - Day = 2, -} -impl FixedRateUnit { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - FixedRateUnit::Minute => "MINUTE", - FixedRateUnit::Hour => "HOUR", - FixedRateUnit::Day => "DAY", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "MINUTE" => Some(Self::Minute), - "HOUR" => Some(Self::Hour), - "DAY" => Some(Self::Day), - _ => None, - } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MANUAL" => Some(Self::Manual), + "SCHEDULED" => Some(Self::Scheduled), + "SYSTEM" => Some(Self::System), + "RELAUNCH" => Some(Self::Relaunch), + "CHILD_WORKFLOW" => Some(Self::ChildWorkflow), + "RECOVERED" => Some(Self::Recovered), + "TRIGGER" => Some(Self::Trigger), + _ => None, + } + } } } -/// Request to register a launch plan. The included LaunchPlanSpec may have a complete or incomplete set of inputs required -/// to launch a workflow execution. By default all launch plans are registered in state INACTIVE. If you wish to -/// set the state to ACTIVE, you must submit a LaunchPlanUpdateRequest, after you have successfully created a launch plan. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanCreateRequest { - /// Uniquely identifies a launch plan entity. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// User-provided launch plan details, including reference workflow, inputs and other metadata. - #[prost(message, optional, tag="2")] - pub spec: ::core::option::Option, -} -/// Purposefully empty, may be populated in the future. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanCreateResponse { -} -/// A LaunchPlan provides the capability to templatize workflow executions. -/// Launch plans simplify associating one or more schedules, inputs and notifications with your workflows. -/// Launch plans can be shared and used to trigger executions with predefined inputs even when a workflow -/// definition doesn't necessarily have a default value for said input. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlan { - /// Uniquely identifies a launch plan entity. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// User-provided launch plan details, including reference workflow, inputs and other metadata. - #[prost(message, optional, tag="2")] - pub spec: ::core::option::Option, - /// Values computed by the flyte platform after launch plan registration. - #[prost(message, optional, tag="3")] - pub closure: ::core::option::Option, -} -/// Response object for list launch plan requests. -/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanList { +pub struct NotificationList { #[prost(message, repeated, tag="1")] - pub launch_plans: ::prost::alloc::vec::Vec, - /// In the case of multiple pages of results, the server-provided token can be used to fetch the next page - /// in a query. If there are no more results, this value will be empty. - #[prost(string, tag="2")] - pub token: ::prost::alloc::string::String, -} -/// Defines permissions associated with executions created by this launch plan spec. -/// Use either of these roles when they have permissions required by your workflow execution. -/// Deprecated. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Auth { - /// Defines an optional iam role which will be used for tasks run in executions created with this launch plan. - #[prost(string, tag="1")] - pub assumable_iam_role: ::prost::alloc::string::String, - /// Defines an optional kubernetes service account which will be used for tasks run in executions created with this launch plan. - #[prost(string, tag="2")] - pub kubernetes_service_account: ::prost::alloc::string::String, + pub notifications: ::prost::alloc::vec::Vec, } -/// User-provided launch plan definition and configuration values. +/// An ExecutionSpec encompasses all data used to launch this execution. The Spec does not change over the lifetime +/// of an execution as it progresses across phase changes. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanSpec { - /// Reference to the Workflow template that the launch plan references +pub struct ExecutionSpec { + /// Launch plan to be executed #[prost(message, optional, tag="1")] - pub workflow_id: ::core::option::Option, - /// Metadata for the Launch Plan + pub launch_plan: ::core::option::Option, + /// Input values to be passed for the execution + #[deprecated] #[prost(message, optional, tag="2")] - pub entity_metadata: ::core::option::Option, - /// Input values to be passed for the execution. - /// These can be overridden when an execution is created with this launch plan. + pub inputs: ::core::option::Option, + /// Metadata for the execution #[prost(message, optional, tag="3")] - pub default_inputs: ::core::option::Option, - /// Fixed, non-overridable inputs for the Launch Plan. - /// These can not be overridden when an execution is created with this launch plan. - #[prost(message, optional, tag="4")] - pub fixed_inputs: ::core::option::Option, - /// String to indicate the role to use to execute the workflow underneath - #[deprecated] - #[prost(string, tag="5")] - pub role: ::prost::alloc::string::String, - /// Custom labels to be applied to the execution resource. - #[prost(message, optional, tag="6")] - pub labels: ::core::option::Option, - /// Custom annotations to be applied to the execution resource. + pub metadata: ::core::option::Option, + /// Labels to apply to the execution resource. #[prost(message, optional, tag="7")] - pub annotations: ::core::option::Option, - /// Indicates the permission associated with workflow executions triggered with this launch plan. - #[deprecated] + pub labels: ::core::option::Option, + /// Annotations to apply to the execution resource. #[prost(message, optional, tag="8")] - pub auth: ::core::option::Option, - #[deprecated] - #[prost(message, optional, tag="9")] - pub auth_role: ::core::option::Option, - /// Indicates security context for permissions triggered with this launch plan + pub annotations: ::core::option::Option, + /// Optional: security context override to apply this execution. #[prost(message, optional, tag="10")] pub security_context: ::core::option::Option, - /// Indicates the runtime priority of the execution. + /// Optional: auth override to apply this execution. + #[deprecated] #[prost(message, optional, tag="16")] - pub quality_of_service: ::core::option::Option, - /// Encapsulates user settings pertaining to offloaded data (i.e. Blobs, Schema, query data, etc.). + pub auth_role: ::core::option::Option, + /// Indicates the runtime priority of the execution. #[prost(message, optional, tag="17")] - pub raw_output_data_config: ::core::option::Option, - /// Controls the maximum number of tasknodes that can be run in parallel for the entire workflow. + pub quality_of_service: ::core::option::Option, + /// Controls the maximum number of task nodes that can be run in parallel for the entire workflow. /// This is useful to achieve fairness. Note: MapTasks are regarded as one unit, /// and parallelism/concurrency of MapTasks is independent from this. #[prost(int32, tag="18")] pub max_parallelism: i32, + /// User setting to configure where to store offloaded data (i.e. Blobs, structured datasets, query data, etc.). + /// This should be a prefix like s3://my-bucket/my-data + #[prost(message, optional, tag="19")] + pub raw_output_data_config: ::core::option::Option, + /// Controls how to select an available cluster on which this execution should run. + #[prost(message, optional, tag="20")] + pub cluster_assignment: ::core::option::Option, /// Allows for the interruptible flag of a workflow to be overwritten for a single execution. /// Omitting this field uses the workflow's value as a default. /// As we need to distinguish between the field not being provided and its default value false, we have to use a wrapper /// around the bool field. - #[prost(message, optional, tag="19")] + #[prost(message, optional, tag="21")] pub interruptible: ::core::option::Option, /// Allows for all cached values of a workflow and its tasks to be overwritten for a single execution. /// If enabled, all calculations are performed even if cached results would be available, overwriting the stored /// data once execution finishes successfully. - #[prost(bool, tag="20")] + #[prost(bool, tag="22")] pub overwrite_cache: bool, /// Environment variables to be set for the execution. - #[prost(message, optional, tag="21")] + #[prost(message, optional, tag="23")] pub envs: ::core::option::Option, + /// Tags to be set for the execution. + #[prost(string, repeated, tag="24")] + pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Execution cluster label to be set for the execution. + #[prost(message, optional, tag="25")] + pub execution_cluster_label: ::core::option::Option, + #[prost(oneof="execution_spec::NotificationOverrides", tags="5, 6")] + pub notification_overrides: ::core::option::Option, } -/// Values computed by the flyte platform after launch plan registration. -/// These include expected_inputs required to be present in a CreateExecutionRequest -/// to launch the reference workflow as well timestamp values associated with the launch plan. +/// Nested message and enum types in `ExecutionSpec`. +pub mod execution_spec { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum NotificationOverrides { + /// List of notifications based on Execution status transitions + /// When this list is not empty it is used rather than any notifications defined in the referenced launch plan. + /// When this list is empty, the notifications defined for the launch plan will be applied. + #[prost(message, tag="5")] + Notifications(super::NotificationList), + /// This should be set to true if all notifications are intended to be disabled for this execution. + #[prost(bool, tag="6")] + DisableAll(bool), + } +} +/// Request to terminate an in-progress execution. This action is irreversible. +/// If an execution is already terminated, this request will simply be a no-op. +/// This request will fail if it references a non-existent execution. +/// If the request succeeds the phase "ABORTED" will be recorded for the termination +/// with the optional cause added to the output_result. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanClosure { - /// Indicate the Launch plan state. - #[prost(enumeration="LaunchPlanState", tag="1")] - pub state: i32, - /// Indicates the set of inputs expected when creating an execution with the Launch plan +pub struct ExecutionTerminateRequest { + /// Uniquely identifies the individual workflow execution to be terminated. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, + /// Optional reason for aborting. + #[prost(string, tag="2")] + pub cause: ::prost::alloc::string::String, +} +/// Purposefully empty, may be populated in the future. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ExecutionTerminateResponse { +} +/// Request structure to fetch inputs, output and other data produced by an execution. +/// By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest` +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WorkflowExecutionGetDataRequest { + /// The identifier of the execution for which to fetch inputs and outputs. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, +} +/// Response structure for WorkflowExecutionGetDataRequest which contains inputs and outputs for an execution. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WorkflowExecutionGetDataResponse { + /// Signed url to fetch a core.LiteralMap of execution outputs. + /// Deprecated: Please use full_outputs instead. + #[deprecated] + #[prost(message, optional, tag="1")] + pub outputs: ::core::option::Option, + /// Signed url to fetch a core.LiteralMap of execution inputs. + /// Deprecated: Please use full_inputs instead. + #[deprecated] #[prost(message, optional, tag="2")] - pub expected_inputs: ::core::option::Option, - /// Indicates the set of outputs expected to be produced by creating an execution with the Launch plan + pub inputs: ::core::option::Option, + /// Full_inputs will only be populated if they are under a configured size threshold. #[prost(message, optional, tag="3")] - pub expected_outputs: ::core::option::Option, - /// Time at which the launch plan was created. + pub full_inputs: ::core::option::Option, + /// Full_outputs will only be populated if they are under a configured size threshold. #[prost(message, optional, tag="4")] - pub created_at: ::core::option::Option<::prost_types::Timestamp>, - /// Time at which the launch plan was last updated. - #[prost(message, optional, tag="5")] - pub updated_at: ::core::option::Option<::prost_types::Timestamp>, + pub full_outputs: ::core::option::Option, } -/// Additional launch plan attributes included in the LaunchPlanSpec not strictly required to launch -/// the reference workflow. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanMetadata { - /// Schedule to execute the Launch Plan +pub struct ExecutionUpdateRequest { + /// Identifier of the execution to update #[prost(message, optional, tag="1")] - pub schedule: ::core::option::Option, - /// List of notifications based on Execution status transitions - #[prost(message, repeated, tag="2")] - pub notifications: ::prost::alloc::vec::Vec, - /// Additional metadata for how to launch the launch plan - #[prost(message, optional, tag="3")] - pub launch_conditions: ::core::option::Option<::prost_types::Any>, + pub id: ::core::option::Option, + /// State to set as the new value active/archive + #[prost(enumeration="ExecutionState", tag="2")] + pub state: i32, } -/// Request to set the referenced launch plan state to the configured value. -/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanUpdateRequest { - /// Identifier of launch plan for which to change state. - /// +required. - #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, - /// Desired state to apply to the launch plan. - /// +required. - #[prost(enumeration="LaunchPlanState", tag="2")] +pub struct ExecutionStateChangeDetails { + /// The state of the execution is used to control its visibility in the UI/CLI. + #[prost(enumeration="ExecutionState", tag="1")] pub state: i32, + /// This timestamp represents when the state changed. + #[prost(message, optional, tag="2")] + pub occurred_at: ::core::option::Option<::prost_types::Timestamp>, + /// Identifies the entity (if any) responsible for causing the state change of the execution + #[prost(string, tag="3")] + pub principal: ::prost::alloc::string::String, } -/// Purposefully empty, may be populated in the future. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct LaunchPlanUpdateResponse { +pub struct ExecutionUpdateResponse { } -/// Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier -/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details +/// WorkflowExecutionGetMetricsRequest represents a request to retrieve metrics for the specified workflow execution. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ActiveLaunchPlanRequest { - /// +required. +pub struct WorkflowExecutionGetMetricsRequest { + /// id defines the workflow execution to query for. #[prost(message, optional, tag="1")] - pub id: ::core::option::Option, + pub id: ::core::option::Option, + /// depth defines the number of Flyte entity levels to traverse when breaking down execution details. + #[prost(int32, tag="2")] + pub depth: i32, } -/// Represents a request structure to list active launch plans within a project/domain and optional org. -/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details +/// WorkflowExecutionGetMetricsResponse represents the response containing metrics for the specified workflow execution. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ActiveLaunchPlanListRequest { - /// Name of the project that contains the identifiers. - /// +required. - #[prost(string, tag="1")] - pub project: ::prost::alloc::string::String, - /// Name of the domain the identifiers belongs to within the project. - /// +required. - #[prost(string, tag="2")] - pub domain: ::prost::alloc::string::String, - /// Indicates the number of resources to be returned. - /// +required. - #[prost(uint32, tag="3")] - pub limit: u32, - /// In the case of multiple pages of results, the server-provided token can be used to fetch the next page - /// in a query. - /// +optional - #[prost(string, tag="4")] - pub token: ::prost::alloc::string::String, - /// Sort ordering. - /// +optional - #[prost(message, optional, tag="5")] - pub sort_by: ::core::option::Option, - /// Optional, org key applied to the resource. - #[prost(string, tag="6")] - pub org: ::prost::alloc::string::String, +pub struct WorkflowExecutionGetMetricsResponse { + /// Span defines the top-level breakdown of the workflows execution. More precise information is nested in a + /// hierarchical structure using Flyte entity references. + #[prost(message, optional, tag="1")] + pub span: ::core::option::Option, } -/// By default any launch plan regardless of state can be used to launch a workflow execution. -/// However, at most one version of a launch plan -/// (e.g. a NamedEntityIdentifier set of shared project, domain and name values) can be -/// active at a time in regards to *schedules*. That is, at most one schedule in a NamedEntityIdentifier -/// group will be observed and trigger executions at a defined cadence. +/// The state of the execution is used to control its visibility in the UI/CLI. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] -pub enum LaunchPlanState { - Inactive = 0, - Active = 1, +pub enum ExecutionState { + /// By default, all executions are considered active. + ExecutionActive = 0, + /// Archived executions are no longer visible in the UI. + ExecutionArchived = 1, } -impl LaunchPlanState { +impl ExecutionState { /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - LaunchPlanState::Inactive => "INACTIVE", - LaunchPlanState::Active => "ACTIVE", + ExecutionState::ExecutionActive => "EXECUTION_ACTIVE", + ExecutionState::ExecutionArchived => "EXECUTION_ARCHIVED", } } /// Creates an enum from field names used in the ProtoBuf definition. pub fn from_str_name(value: &str) -> ::core::option::Option { match value { - "INACTIVE" => Some(Self::Inactive), - "ACTIVE" => Some(Self::Active), + "EXECUTION_ACTIVE" => Some(Self::ExecutionActive), + "EXECUTION_ARCHIVED" => Some(Self::ExecutionArchived), _ => None, } } } -/// Defines a set of overridable task resource attributes set during task registration. +/// Option for schedules run at a certain frequency e.g. every 2 minutes. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct TaskResourceSpec { - #[prost(string, tag="1")] - pub cpu: ::prost::alloc::string::String, - #[prost(string, tag="2")] - pub gpu: ::prost::alloc::string::String, - #[prost(string, tag="3")] - pub memory: ::prost::alloc::string::String, - #[prost(string, tag="4")] - pub storage: ::prost::alloc::string::String, - #[prost(string, tag="5")] - pub ephemeral_storage: ::prost::alloc::string::String, +pub struct FixedRate { + #[prost(uint32, tag="1")] + pub value: u32, + #[prost(enumeration="FixedRateUnit", tag="2")] + pub unit: i32, } -/// Defines task resource defaults and limits that will be applied at task registration. +/// Options for schedules to run according to a cron expression. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct TaskResourceAttributes { - #[prost(message, optional, tag="1")] - pub defaults: ::core::option::Option, - #[prost(message, optional, tag="2")] - pub limits: ::core::option::Option, +pub struct CronSchedule { + /// Standard/default cron implementation as described by + /// Also supports nonstandard predefined scheduling definitions + /// as described by + /// except @reboot + #[prost(string, tag="1")] + pub schedule: ::prost::alloc::string::String, + /// ISO 8601 duration as described by + #[prost(string, tag="2")] + pub offset: ::prost::alloc::string::String, } +/// Defines complete set of information required to trigger an execution on a schedule. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ClusterResourceAttributes { - /// Custom resource attributes which will be applied in cluster resource creation (e.g. quotas). - /// Map keys are the *case-sensitive* names of variables in templatized resource files. - /// Map values should be the custom values which get substituted during resource creation. - #[prost(map="string, string", tag="1")] - pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, +pub struct Schedule { + /// Name of the input variable that the kickoff time will be supplied to when the workflow is kicked off. + #[prost(string, tag="3")] + pub kickoff_time_input_arg: ::prost::alloc::string::String, + #[prost(oneof="schedule::ScheduleExpression", tags="1, 2, 4")] + pub schedule_expression: ::core::option::Option, +} +/// Nested message and enum types in `Schedule`. +pub mod schedule { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum ScheduleExpression { + /// Uses AWS syntax: Minutes Hours Day-of-month Month Day-of-week Year + /// e.g. for a schedule that runs every 15 minutes: 0/15 * * * ? * + #[prost(string, tag="1")] + CronExpression(::prost::alloc::string::String), + #[prost(message, tag="2")] + Rate(super::FixedRate), + #[prost(message, tag="4")] + CronSchedule(super::CronSchedule), + } +} +/// Represents a frequency at which to run a schedule. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum FixedRateUnit { + Minute = 0, + Hour = 1, + Day = 2, +} +impl FixedRateUnit { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + FixedRateUnit::Minute => "MINUTE", + FixedRateUnit::Hour => "HOUR", + FixedRateUnit::Day => "DAY", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MINUTE" => Some(Self::Minute), + "HOUR" => Some(Self::Hour), + "DAY" => Some(Self::Day), + _ => None, + } + } } +/// Request to register a launch plan. The included LaunchPlanSpec may have a complete or incomplete set of inputs required +/// to launch a workflow execution. By default all launch plans are registered in state INACTIVE. If you wish to +/// set the state to ACTIVE, you must submit a LaunchPlanUpdateRequest, after you have successfully created a launch plan. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionQueueAttributes { - /// Tags used for assigning execution queues for tasks defined within this project. - #[prost(string, repeated, tag="1")] - pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +pub struct LaunchPlanCreateRequest { + /// Uniquely identifies a launch plan entity. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, + /// User-provided launch plan details, including reference workflow, inputs and other metadata. + #[prost(message, optional, tag="2")] + pub spec: ::core::option::Option, } +/// Purposefully empty, may be populated in the future. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ExecutionClusterLabel { - /// Label value to determine where the execution will be run - #[prost(string, tag="1")] - pub value: ::prost::alloc::string::String, +pub struct LaunchPlanCreateResponse { } -/// This MatchableAttribute configures selecting alternate plugin implementations for a given task type. -/// In addition to an override implementation a selection of fallbacks can be provided or other modes -/// for handling cases where the desired plugin override is not enabled in a given Flyte deployment. +/// A LaunchPlan provides the capability to templatize workflow executions. +/// Launch plans simplify associating one or more schedules, inputs and notifications with your workflows. +/// Launch plans can be shared and used to trigger executions with predefined inputs even when a workflow +/// definition doesn't necessarily have a default value for said input. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct PluginOverride { - /// A predefined yet extensible Task type identifier. - #[prost(string, tag="1")] - pub task_type: ::prost::alloc::string::String, - /// A set of plugin ids which should handle tasks of this type instead of the default registered plugin. The list will be tried in order until a plugin is found with that id. - #[prost(string, repeated, tag="2")] - pub plugin_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// Defines the behavior when no plugin from the plugin_id list is not found. - #[prost(enumeration="plugin_override::MissingPluginBehavior", tag="4")] - pub missing_plugin_behavior: i32, -} -/// Nested message and enum types in `PluginOverride`. -pub mod plugin_override { - #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] - #[repr(i32)] - pub enum MissingPluginBehavior { - /// By default, if this plugin is not enabled for a Flyte deployment then execution will fail. - Fail = 0, - /// Uses the system-configured default implementation. - UseDefault = 1, - } - impl MissingPluginBehavior { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - MissingPluginBehavior::Fail => "FAIL", - MissingPluginBehavior::UseDefault => "USE_DEFAULT", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "FAIL" => Some(Self::Fail), - "USE_DEFAULT" => Some(Self::UseDefault), - _ => None, - } - } - } +pub struct LaunchPlan { + /// Uniquely identifies a launch plan entity. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, + /// User-provided launch plan details, including reference workflow, inputs and other metadata. + #[prost(message, optional, tag="2")] + pub spec: ::core::option::Option, + /// Values computed by the flyte platform after launch plan registration. + #[prost(message, optional, tag="3")] + pub closure: ::core::option::Option, } +/// Response object for list launch plan requests. +/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct PluginOverrides { +pub struct LaunchPlanList { #[prost(message, repeated, tag="1")] - pub overrides: ::prost::alloc::vec::Vec, + pub launch_plans: ::prost::alloc::vec::Vec, + /// In the case of multiple pages of results, the server-provided token can be used to fetch the next page + /// in a query. If there are no more results, this value will be empty. + #[prost(string, tag="2")] + pub token: ::prost::alloc::string::String, +} +/// Defines permissions associated with executions created by this launch plan spec. +/// Use either of these roles when they have permissions required by your workflow execution. +/// Deprecated. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Auth { + /// Defines an optional iam role which will be used for tasks run in executions created with this launch plan. + #[prost(string, tag="1")] + pub assumable_iam_role: ::prost::alloc::string::String, + /// Defines an optional kubernetes service account which will be used for tasks run in executions created with this launch plan. + #[prost(string, tag="2")] + pub kubernetes_service_account: ::prost::alloc::string::String, } -/// Adds defaults for customizable workflow-execution specifications and overrides. +/// User-provided launch plan definition and configuration values. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct WorkflowExecutionConfig { - /// Can be used to control the number of parallel nodes to run within the workflow. This is useful to achieve fairness. - #[prost(int32, tag="1")] - pub max_parallelism: i32, - /// Indicates security context permissions for executions triggered with this matchable attribute. +pub struct LaunchPlanSpec { + /// Reference to the Workflow template that the launch plan references + #[prost(message, optional, tag="1")] + pub workflow_id: ::core::option::Option, + /// Metadata for the Launch Plan #[prost(message, optional, tag="2")] - pub security_context: ::core::option::Option, - /// Encapsulates user settings pertaining to offloaded data (i.e. Blobs, Schema, query data, etc.). + pub entity_metadata: ::core::option::Option, + /// Input values to be passed for the execution. + /// These can be overridden when an execution is created with this launch plan. #[prost(message, optional, tag="3")] - pub raw_output_data_config: ::core::option::Option, - /// Custom labels to be applied to a triggered execution resource. + pub default_inputs: ::core::option::Option, + /// Fixed, non-overridable inputs for the Launch Plan. + /// These can not be overridden when an execution is created with this launch plan. #[prost(message, optional, tag="4")] + pub fixed_inputs: ::core::option::Option, + /// String to indicate the role to use to execute the workflow underneath + #[deprecated] + #[prost(string, tag="5")] + pub role: ::prost::alloc::string::String, + /// Custom labels to be applied to the execution resource. + #[prost(message, optional, tag="6")] pub labels: ::core::option::Option, - /// Custom annotations to be applied to a triggered execution resource. - #[prost(message, optional, tag="5")] + /// Custom annotations to be applied to the execution resource. + #[prost(message, optional, tag="7")] pub annotations: ::core::option::Option, + /// Indicates the permission associated with workflow executions triggered with this launch plan. + #[deprecated] + #[prost(message, optional, tag="8")] + pub auth: ::core::option::Option, + #[deprecated] + #[prost(message, optional, tag="9")] + pub auth_role: ::core::option::Option, + /// Indicates security context for permissions triggered with this launch plan + #[prost(message, optional, tag="10")] + pub security_context: ::core::option::Option, + /// Indicates the runtime priority of the execution. + #[prost(message, optional, tag="16")] + pub quality_of_service: ::core::option::Option, + /// Encapsulates user settings pertaining to offloaded data (i.e. Blobs, Schema, query data, etc.). + #[prost(message, optional, tag="17")] + pub raw_output_data_config: ::core::option::Option, + /// Controls the maximum number of tasknodes that can be run in parallel for the entire workflow. + /// This is useful to achieve fairness. Note: MapTasks are regarded as one unit, + /// and parallelism/concurrency of MapTasks is independent from this. + #[prost(int32, tag="18")] + pub max_parallelism: i32, /// Allows for the interruptible flag of a workflow to be overwritten for a single execution. /// Omitting this field uses the workflow's value as a default. /// As we need to distinguish between the field not being provided and its default value false, we have to use a wrapper /// around the bool field. - #[prost(message, optional, tag="6")] + #[prost(message, optional, tag="19")] pub interruptible: ::core::option::Option, /// Allows for all cached values of a workflow and its tasks to be overwritten for a single execution. /// If enabled, all calculations are performed even if cached results would be available, overwriting the stored /// data once execution finishes successfully. - #[prost(bool, tag="7")] + #[prost(bool, tag="20")] pub overwrite_cache: bool, /// Environment variables to be set for the execution. - #[prost(message, optional, tag="8")] + #[prost(message, optional, tag="21")] pub envs: ::core::option::Option, } -/// Generic container for encapsulating all types of the above attributes messages. +/// Values computed by the flyte platform after launch plan registration. +/// These include expected_inputs required to be present in a CreateExecutionRequest +/// to launch the reference workflow as well timestamp values associated with the launch plan. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MatchingAttributes { - #[prost(oneof="matching_attributes::Target", tags="1, 2, 3, 4, 5, 6, 7, 8")] - pub target: ::core::option::Option, +pub struct LaunchPlanClosure { + /// Indicate the Launch plan state. + #[prost(enumeration="LaunchPlanState", tag="1")] + pub state: i32, + /// Indicates the set of inputs expected when creating an execution with the Launch plan + #[prost(message, optional, tag="2")] + pub expected_inputs: ::core::option::Option, + /// Indicates the set of outputs expected to be produced by creating an execution with the Launch plan + #[prost(message, optional, tag="3")] + pub expected_outputs: ::core::option::Option, + /// Time at which the launch plan was created. + #[prost(message, optional, tag="4")] + pub created_at: ::core::option::Option<::prost_types::Timestamp>, + /// Time at which the launch plan was last updated. + #[prost(message, optional, tag="5")] + pub updated_at: ::core::option::Option<::prost_types::Timestamp>, } -/// Nested message and enum types in `MatchingAttributes`. -pub mod matching_attributes { - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Target { - #[prost(message, tag="1")] - TaskResourceAttributes(super::TaskResourceAttributes), - #[prost(message, tag="2")] - ClusterResourceAttributes(super::ClusterResourceAttributes), - #[prost(message, tag="3")] - ExecutionQueueAttributes(super::ExecutionQueueAttributes), - #[prost(message, tag="4")] - ExecutionClusterLabel(super::ExecutionClusterLabel), - #[prost(message, tag="5")] - QualityOfService(super::super::core::QualityOfService), - #[prost(message, tag="6")] - PluginOverrides(super::PluginOverrides), - #[prost(message, tag="7")] - WorkflowExecutionConfig(super::WorkflowExecutionConfig), - #[prost(message, tag="8")] - ClusterAssignment(super::ClusterAssignment), - } +/// Additional launch plan attributes included in the LaunchPlanSpec not strictly required to launch +/// the reference workflow. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct LaunchPlanMetadata { + /// Schedule to execute the Launch Plan + #[prost(message, optional, tag="1")] + pub schedule: ::core::option::Option, + /// List of notifications based on Execution status transitions + #[prost(message, repeated, tag="2")] + pub notifications: ::prost::alloc::vec::Vec, + /// Additional metadata for how to launch the launch plan + #[prost(message, optional, tag="3")] + pub launch_conditions: ::core::option::Option<::prost_types::Any>, } -/// Represents a custom set of attributes applied for either a domain (and optional org); a domain and project (and optional org); -/// or domain, project and workflow name (and optional org). -/// These are used to override system level defaults for kubernetes cluster resource management, -/// default execution values, and more all across different levels of specificity. +/// Request to set the referenced launch plan state to the configured value. +/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct MatchableAttributesConfiguration { +pub struct LaunchPlanUpdateRequest { + /// Identifier of launch plan for which to change state. + /// +required. #[prost(message, optional, tag="1")] - pub attributes: ::core::option::Option, - #[prost(string, tag="2")] - pub domain: ::prost::alloc::string::String, - #[prost(string, tag="3")] - pub project: ::prost::alloc::string::String, - #[prost(string, tag="4")] - pub workflow: ::prost::alloc::string::String, - #[prost(string, tag="5")] - pub launch_plan: ::prost::alloc::string::String, - /// Optional, org key applied to the resource. - #[prost(string, tag="6")] - pub org: ::prost::alloc::string::String, + pub id: ::core::option::Option, + /// Desired state to apply to the launch plan. + /// +required. + #[prost(enumeration="LaunchPlanState", tag="2")] + pub state: i32, } -/// Request all matching resource attributes for a resource type. -/// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details +/// Purposefully empty, may be populated in the future. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ListMatchableAttributesRequest { - /// +required - #[prost(enumeration="MatchableResource", tag="1")] - pub resource_type: i32, - /// Optional, org filter applied to list project requests. - #[prost(string, tag="2")] - pub org: ::prost::alloc::string::String, +pub struct LaunchPlanUpdateResponse { } -/// Response for a request for all matching resource attributes for a resource type. -/// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details +/// Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier +/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct ListMatchableAttributesResponse { - #[prost(message, repeated, tag="1")] - pub configurations: ::prost::alloc::vec::Vec, +pub struct ActiveLaunchPlanRequest { + /// +required. + #[prost(message, optional, tag="1")] + pub id: ::core::option::Option, } -/// Defines a resource that can be configured by customizable Project-, ProjectDomain- or WorkflowAttributes -/// based on matching tags. +/// Represents a request structure to list active launch plans within a project/domain and optional org. +/// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ActiveLaunchPlanListRequest { + /// Name of the project that contains the identifiers. + /// +required. + #[prost(string, tag="1")] + pub project: ::prost::alloc::string::String, + /// Name of the domain the identifiers belongs to within the project. + /// +required. + #[prost(string, tag="2")] + pub domain: ::prost::alloc::string::String, + /// Indicates the number of resources to be returned. + /// +required. + #[prost(uint32, tag="3")] + pub limit: u32, + /// In the case of multiple pages of results, the server-provided token can be used to fetch the next page + /// in a query. + /// +optional + #[prost(string, tag="4")] + pub token: ::prost::alloc::string::String, + /// Sort ordering. + /// +optional + #[prost(message, optional, tag="5")] + pub sort_by: ::core::option::Option, + /// Optional, org key applied to the resource. + #[prost(string, tag="6")] + pub org: ::prost::alloc::string::String, +} +/// By default any launch plan regardless of state can be used to launch a workflow execution. +/// However, at most one version of a launch plan +/// (e.g. a NamedEntityIdentifier set of shared project, domain and name values) can be +/// active at a time in regards to *schedules*. That is, at most one schedule in a NamedEntityIdentifier +/// group will be observed and trigger executions at a defined cadence. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] -pub enum MatchableResource { - /// Applies to customizable task resource requests and limits. - TaskResource = 0, - /// Applies to configuring templated kubernetes cluster resources. - ClusterResource = 1, - /// Configures task and dynamic task execution queue assignment. - ExecutionQueue = 2, - /// Configures the K8s cluster label to be used for execution to be run - ExecutionClusterLabel = 3, - /// Configures default quality of service when undefined in an execution spec. - QualityOfServiceSpecification = 4, - /// Selects configurable plugin implementation behavior for a given task type. - PluginOverride = 5, - /// Adds defaults for customizable workflow-execution specifications and overrides. - WorkflowExecutionConfig = 6, - /// Controls how to select an available cluster on which this execution should run. - ClusterAssignment = 7, +pub enum LaunchPlanState { + Inactive = 0, + Active = 1, } -impl MatchableResource { +impl LaunchPlanState { /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable /// (if the ProtoBuf definition does not change) and safe for programmatic use. pub fn as_str_name(&self) -> &'static str { match self { - MatchableResource::TaskResource => "TASK_RESOURCE", - MatchableResource::ClusterResource => "CLUSTER_RESOURCE", - MatchableResource::ExecutionQueue => "EXECUTION_QUEUE", - MatchableResource::ExecutionClusterLabel => "EXECUTION_CLUSTER_LABEL", - MatchableResource::QualityOfServiceSpecification => "QUALITY_OF_SERVICE_SPECIFICATION", - MatchableResource::PluginOverride => "PLUGIN_OVERRIDE", - MatchableResource::WorkflowExecutionConfig => "WORKFLOW_EXECUTION_CONFIG", - MatchableResource::ClusterAssignment => "CLUSTER_ASSIGNMENT", + LaunchPlanState::Inactive => "INACTIVE", + LaunchPlanState::Active => "ACTIVE", } } /// Creates an enum from field names used in the ProtoBuf definition. pub fn from_str_name(value: &str) -> ::core::option::Option { match value { - "TASK_RESOURCE" => Some(Self::TaskResource), - "CLUSTER_RESOURCE" => Some(Self::ClusterResource), - "EXECUTION_QUEUE" => Some(Self::ExecutionQueue), - "EXECUTION_CLUSTER_LABEL" => Some(Self::ExecutionClusterLabel), - "QUALITY_OF_SERVICE_SPECIFICATION" => Some(Self::QualityOfServiceSpecification), - "PLUGIN_OVERRIDE" => Some(Self::PluginOverride), - "WORKFLOW_EXECUTION_CONFIG" => Some(Self::WorkflowExecutionConfig), - "CLUSTER_ASSIGNMENT" => Some(Self::ClusterAssignment), + "INACTIVE" => Some(Self::Inactive), + "ACTIVE" => Some(Self::Active), _ => None, } } diff --git a/flyteidl/protos/flyteidl/admin/execution.proto b/flyteidl/protos/flyteidl/admin/execution.proto index a46d6efdd3..09f8fcc7ec 100644 --- a/flyteidl/protos/flyteidl/admin/execution.proto +++ b/flyteidl/protos/flyteidl/admin/execution.proto @@ -14,6 +14,7 @@ import "flyteidl/core/security.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; +import "flyteidl/admin/matchable_resource.proto"; // Request to launch an execution with the given project, domain and optionally-assigned name. message ExecutionCreateRequest { @@ -330,6 +331,9 @@ message ExecutionSpec { // Tags to be set for the execution. repeated string tags = 24; + + // Execution cluster label to be set for the execution. + ExecutionClusterLabel execution_cluster_label = 25; } // Request to terminate an in-progress execution. This action is irreversible. From b74f705a579b771faff355bb808d9ba16bf85c63 Mon Sep 17 00:00:00 2001 From: ddl-rliu <140021987+ddl-rliu@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:45:23 -0700 Subject: [PATCH 66/76] Log line for debugging audience (#5078) Signed-off-by: ddl-rliu --- flyteadmin/auth/authzserver/claims_verifier.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flyteadmin/auth/authzserver/claims_verifier.go b/flyteadmin/auth/authzserver/claims_verifier.go index 9ba3c0d1d9..c27ea06ee7 100644 --- a/flyteadmin/auth/authzserver/claims_verifier.go +++ b/flyteadmin/auth/authzserver/claims_verifier.go @@ -24,7 +24,7 @@ func verifyClaims(expectedAudience sets.String, claimsRaw map[string]interface{} } if foundAudIndex < 0 { - return nil, fmt.Errorf("invalid audience [%v]", claims) + return nil, fmt.Errorf("invalid audience [%v], wanted [%v]", claims, expectedAudience) } userInfo := &service.UserInfoResponse{} From cb6384ac6ea60f8b9421a71cfda4279f3579d3cb Mon Sep 17 00:00:00 2001 From: Chi-Sheng Liu Date: Tue, 26 Mar 2024 02:46:50 +0800 Subject: [PATCH 67/76] docs: Add make target/doc to update console in demo sandbox (#5100) Signed-off-by: Chi-Sheng Liu --- Makefile | 4 ++++ docs/community/contribute.rst | 1 + 2 files changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 072fdf8efb..6eab674b17 100644 --- a/Makefile +++ b/Makefile @@ -117,3 +117,7 @@ go-tidy: 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/docs/community/contribute.rst b/docs/community/contribute.rst index 993cb6bca5..c757301135 100644 --- a/docs/community/contribute.rst +++ b/docs/community/contribute.rst @@ -396,6 +396,7 @@ that integrates all Flyte components into a single binary. # Step2: 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 From d68047a1bff9383cb2f53a6f39848ec662354c03 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Mon, 25 Mar 2024 17:50:45 -0700 Subject: [PATCH 68/76] Fix numbering in code examples (#5104) Signed-off-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> --- docs/community/contribute.rst | 74 ++++++++++++++++------------------- 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/docs/community/contribute.rst b/docs/community/contribute.rst index c757301135..bb10031a9d 100644 --- a/docs/community/contribute.rst +++ b/docs/community/contribute.rst @@ -342,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.** @@ -360,7 +360,7 @@ 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 🚀 🚀 🎉 # ❇️ Run the following command to export demo environment variables for accessing flytectl @@ -368,10 +368,10 @@ How to setup dev environment for flyteidl, flyteadmin, flyteplugins, flytepropel # 🐋 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 @@ -389,26 +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. @@ -420,7 +412,7 @@ 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. + # 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 @@ -439,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 @@ -451,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 @@ -464,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. @@ -496,16 +488,16 @@ 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. + # 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 🚀 🚀 🎉 @@ -519,7 +511,7 @@ 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 @@ -545,11 +537,11 @@ 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 @@ -579,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. @@ -612,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 `__. @@ -693,11 +685,11 @@ FlyteAdmin and datacatalog use postgres to store persistent records, and you can .. 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 From cf7c638497224aa60912967df529182b4c41b5d5 Mon Sep 17 00:00:00 2001 From: pbrogan12 Date: Tue, 26 Mar 2024 08:08:21 -0400 Subject: [PATCH 69/76] fix rendering of flyte-core and flyteagent charts (#5048) * fix rendering of flyte-core and flyteagent charts Signed-off-by: Patrick Brogan * update to kubeflow spark-operator repo fixes #5055 Signed-off-by: Patrick Brogan --------- Signed-off-by: Patrick Brogan --- charts/flyte-core/templates/_helpers.tpl | 22 ---------------------- charts/flyteagent/templates/_helpers.tpl | 2 +- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/charts/flyte-core/templates/_helpers.tpl b/charts/flyte-core/templates/_helpers.tpl index 98a42655e3..b4361a1e47 100755 --- a/charts/flyte-core/templates/_helpers.tpl +++ b/charts/flyte-core/templates/_helpers.tpl @@ -102,28 +102,6 @@ app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end }} {{- end -}} -{{- define "flyteagent.name" -}} -flyteagent -{{- end -}} - -{{- define "flyteagent.selectorLabels" -}} -app.kubernetes.io/name: {{ template "flyteagent.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} - -{{- define "flyteagent.labels" -}} -{{ include "flyteagent.selectorLabels" . }} -helm.sh/chart: {{ include "flyte.chart" . }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} - -{{- define "flyteagent.podLabels" -}} -{{ include "flyteagent.labels" . }} -{{- with .Values.flyteagent.podLabels }} -{{ toYaml . }} -{{- end }} -{{- end -}} - {{- define "flytepropeller.name" -}} flytepropeller {{- end -}} diff --git a/charts/flyteagent/templates/_helpers.tpl b/charts/flyteagent/templates/_helpers.tpl index 40411a61b9..c8ed80055b 100755 --- a/charts/flyteagent/templates/_helpers.tpl +++ b/charts/flyteagent/templates/_helpers.tpl @@ -31,7 +31,7 @@ app.kubernetes.io/managed-by: {{ .Release.Service }} {{- define "flyteagent.podLabels" -}} {{ include "flyteagent.labels" . }} {{- with .Values.podLabels }} -{{- toYaml . }} +{{ toYaml . }} {{- end }} {{- end -}} From 46d1bd803a115ba797a4dddf9e8a76de6b98387a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 12:29:00 -0700 Subject: [PATCH 70/76] Bump golang.org/x/net in /docker/sandbox-bundled/bootstrap (#3390) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.3.1-0.20221206200815-1e63c2f08a10 to 0.7.0. - [Release notes](https://github.com/golang/net/releases) - [Commits](https://github.com/golang/net/commits/v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: Eduardo Apolinario Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Eduardo Apolinario --- docker/sandbox-bundled/bootstrap/go.mod | 6 +++--- docker/sandbox-bundled/bootstrap/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docker/sandbox-bundled/bootstrap/go.mod b/docker/sandbox-bundled/bootstrap/go.mod index 7f7f3a6beb..e951f9fe6b 100644 --- a/docker/sandbox-bundled/bootstrap/go.mod +++ b/docker/sandbox-bundled/bootstrap/go.mod @@ -38,9 +38,9 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/xlab/treeprint v1.1.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect - golang.org/x/net v0.3.1-0.20221206200815-1e63c2f08a10 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/docker/sandbox-bundled/bootstrap/go.sum b/docker/sandbox-bundled/bootstrap/go.sum index 91cb46085c..c807128b2e 100644 --- a/docker/sandbox-bundled/bootstrap/go.sum +++ b/docker/sandbox-bundled/bootstrap/go.sum @@ -131,8 +131,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.3.1-0.20221206200815-1e63c2f08a10 h1:Frnccbp+ok2GkUS2tC84yAq/U9Vg+0sIO7aRL3T4Xnc= -golang.org/x/net v0.3.1-0.20221206200815-1e63c2f08a10/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -144,12 +144,12 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= From b35246b87996c0829edff850a480fb5a698883df Mon Sep 17 00:00:00 2001 From: Troy Chiu <114708546+troychiu@users.noreply.github.com> Date: Tue, 26 Mar 2024 12:32:50 -0700 Subject: [PATCH 71/76] Update repeated value filters with ValueNotIn support (#5110) Signed-off-by: troychiu --- docs/concepts/admin.rst | 7 ++--- flyteadmin/pkg/common/filters.go | 26 +++++++++++++++--- flyteadmin/pkg/common/filters_test.go | 39 ++++++++++++++------------- 3 files changed, 47 insertions(+), 25 deletions(-) diff --git a/docs/concepts/admin.rst b/docs/concepts/admin.rst index f33ef51364..e0bc488830 100644 --- a/docs/concepts/admin.rst +++ b/docs/concepts/admin.rst @@ -260,14 +260,15 @@ The fully supported set of filter functions are - contains - gt (greater than) -- gte (greter than or equal to) +- gte (greater than or equal to) - lt (less than) - lte (less than or equal to) - eq (equal) - ne (not equal) -- value_in (for repeated sets of values) +- value_in (value in repeated sets of values) +- value_not_in (value not in repeated sets of values) -"value_in" is a special case where multiple values are passed to the filter expression. For example:: +"value_in" and "value_not_in" are special cases where multiple values are passed to the filter expression. For example:: value_in(phase, RUNNING;SUCCEEDED;FAILED) diff --git a/flyteadmin/pkg/common/filters.go b/flyteadmin/pkg/common/filters.go index 081d8ea95b..a5974fb286 100644 --- a/flyteadmin/pkg/common/filters.go +++ b/flyteadmin/pkg/common/filters.go @@ -29,6 +29,7 @@ const ( Equal NotEqual ValueIn + ValueNotIn ) // String formats for various filter expression queries @@ -43,6 +44,7 @@ const ( equalQuery = "%s = ?" notEqualQuery = "%s <> ?" valueInQuery = "%s in (?)" + valueNotInQuery = "%s not in (?)" ) // Set of available filters which exclusively accept a single argument value. @@ -58,7 +60,8 @@ var singleValueFilters = map[FilterExpression]bool{ // Set of available filters which exclusively accept repeated argument values. var repeatedValueFilters = map[FilterExpression]bool{ - ValueIn: true, + ValueIn: true, + ValueNotIn: true, } const EqualExpression = "eq" @@ -72,6 +75,19 @@ var filterNameMappings = map[string]FilterExpression{ EqualExpression: Equal, "ne": NotEqual, "value_in": ValueIn, + "value_not_in": ValueNotIn, +} + +var filterQueryMappings = map[FilterExpression]string{ + Contains: containsQuery, + GreaterThan: greaterThanQuery, + GreaterThanOrEqual: greaterThanOrEqualQuery, + LessThan: lessThanQuery, + LessThanOrEqual: lessThanOrEqualQuery, + Equal: equalQuery, + NotEqual: notEqualQuery, + ValueIn: valueInQuery, + ValueNotIn: valueNotInQuery, } var executionIdentifierFields = map[string]bool{ @@ -108,6 +124,8 @@ func getFilterExpressionName(expression FilterExpression) string { return "not equal" case ValueIn: return "value in" + case ValueNotIn: + return "value not in" default: return "" } @@ -166,9 +184,9 @@ func (f *inlineFilterImpl) GetField() string { func (f *inlineFilterImpl) getGormQueryExpr(formattedField string) (GormQueryExpr, error) { - // ValueIn is special because it uses repeating values. - if f.function == ValueIn { - queryStr := fmt.Sprintf(valueInQuery, formattedField) + // Filters that use repeated values + if _, ok := repeatedValueFilters[f.function]; ok { + queryStr := fmt.Sprintf(filterQueryMappings[f.function], formattedField) return GormQueryExpr{ Query: queryStr, Args: f.repeatedValue, diff --git a/flyteadmin/pkg/common/filters_test.go b/flyteadmin/pkg/common/filters_test.go index e49084557f..87ba5ac2ac 100644 --- a/flyteadmin/pkg/common/filters_test.go +++ b/flyteadmin/pkg/common/filters_test.go @@ -1,6 +1,7 @@ package common import ( + "fmt" "testing" "github.com/stretchr/testify/assert" @@ -83,6 +84,14 @@ func TestNewRepeatedValueFilter(t *testing.T) { assert.Equal(t, "projects.project in (?)", expression.Query) assert.Equal(t, vals, expression.Args) + filter, err = NewRepeatedValueFilter(Workflow, ValueNotIn, "project", vals) + assert.NoError(t, err) + + expression, err = filter.GetGormJoinTableQueryExpr("projects") + assert.NoError(t, err) + assert.Equal(t, "projects.project not in (?)", expression.Query) + assert.Equal(t, vals, expression.Args) + _, err = NewRepeatedValueFilter(Workflow, Equal, "domain", []string{"production", "qa"}) assert.EqualError(t, err, "invalid repeated value filter expression: equal") } @@ -96,16 +105,6 @@ func TestGetGormJoinTableQueryExpr(t *testing.T) { assert.Equal(t, "workflows.domain = ?", gormQueryExpr.Query) } -var expectedQueriesForFilters = map[FilterExpression]string{ - Contains: "field LIKE ?", - GreaterThan: "field > ?", - GreaterThanOrEqual: "field >= ?", - LessThan: "field < ?", - LessThanOrEqual: "field <= ?", - Equal: "field = ?", - NotEqual: "field <> ?", -} - var expectedArgsForFilters = map[FilterExpression]string{ Contains: "%value%", GreaterThan: "value", @@ -117,12 +116,13 @@ var expectedArgsForFilters = map[FilterExpression]string{ } func TestQueryExpressions(t *testing.T) { - for expression, expectedQuery := range expectedQueriesForFilters { + for expression := range singleValueFilters { filter, err := NewSingleValueFilter(Workflow, expression, "field", "value") assert.NoError(t, err) gormQueryExpr, err := filter.GetGormQueryExpr() assert.NoError(t, err) + expectedQuery := fmt.Sprintf(filterQueryMappings[expression], "field") assert.Equal(t, expectedQuery, gormQueryExpr.Query) expectedArg, ok := expectedArgsForFilters[expression] @@ -130,14 +130,17 @@ func TestQueryExpressions(t *testing.T) { assert.Equal(t, expectedArg, gormQueryExpr.Args) } - // Also test the one repeated value filter - filter, err := NewRepeatedValueFilter(Workflow, ValueIn, "field", []string{"value"}) - assert.NoError(t, err) + // Also test the repeated value filters + for expression := range repeatedValueFilters { + filter, err := NewRepeatedValueFilter(Workflow, expression, "field", []string{"value"}) + assert.NoError(t, err) - gormQueryExpr, err := filter.GetGormQueryExpr() - assert.NoError(t, err) - assert.Equal(t, "field in (?)", gormQueryExpr.Query) - assert.EqualValues(t, []string{"value"}, gormQueryExpr.Args) + gormQueryExpr, err := filter.GetGormQueryExpr() + assert.NoError(t, err) + expectedQuery := fmt.Sprintf(filterQueryMappings[expression], "field") + assert.Equal(t, expectedQuery, gormQueryExpr.Query) + assert.EqualValues(t, []string{"value"}, gormQueryExpr.Args) + } } func TestMapFilter(t *testing.T) { From 998c9ce1377e24e10131c06673ceff5af09fe58e Mon Sep 17 00:00:00 2001 From: "Ethan Brown (Domino)" <111539728+ddl-ebrown@users.noreply.github.com> Date: Tue, 26 Mar 2024 12:58:21 -0700 Subject: [PATCH 72/76] Update container builds from go 1.21.5 to latest (#5097) - go 1.21.5 was released on 12-5-2023 and go 1.21.8 was released on 3-5-2024. During that time a number of high and critical vulns have been addressed - This PR changes the build process to float with the latest go release to automatically pick up remediated vulnerabilities rather than pin to a specific go release - Ideally there would be a renovate or dependabot process that automatically puts up PRs to this repo to update the pinning, which is safer from a build / test perspective. Without that process in place, it's probably better to float with the latest patch release of go 1.21 Signed-off-by: ddl-ebrown --- Dockerfile | 2 +- Dockerfile.datacatalog | 4 ++-- Dockerfile.flyteadmin | 4 ++-- Dockerfile.flytecopilot | 4 ++-- Dockerfile.flytepropeller | 4 ++-- Dockerfile.flytescheduler | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6ce448399b..c48d292535 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG FLYTECONSOLE_VERSION=latest FROM ghcr.io/flyteorg/flyteconsole:${FLYTECONSOLE_VERSION} AS flyteconsole -FROM --platform=${BUILDPLATFORM} golang:1.21.5-bookworm AS flytebuilder +FROM --platform=${BUILDPLATFORM} golang:1.21-bookworm AS flytebuilder ARG TARGETARCH ENV GOARCH "${TARGETARCH}" diff --git a/Dockerfile.datacatalog b/Dockerfile.datacatalog index 065eb28722..641b1b9fd6 100644 --- a/Dockerfile.datacatalog +++ b/Dockerfile.datacatalog @@ -1,9 +1,9 @@ # WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. # ONLY EDIT THIS FILE FROM WITHIN THE 'FLYTEORG/BOILERPLATE' REPOSITORY: -# +# # TO OPT OUT OF UPDATES, SEE https://github.com/flyteorg/boilerplate/blob/master/Readme.rst -FROM --platform=${BUILDPLATFORM} golang:1.21.5-alpine3.18 as builder +FROM --platform=${BUILDPLATFORM} golang:1.21-alpine3.18 as builder ARG TARGETARCH ENV GOARCH "${TARGETARCH}" diff --git a/Dockerfile.flyteadmin b/Dockerfile.flyteadmin index 993949b221..6b6225ec6f 100644 --- a/Dockerfile.flyteadmin +++ b/Dockerfile.flyteadmin @@ -1,9 +1,9 @@ # WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. # ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: -# +# # TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst -FROM --platform=${BUILDPLATFORM} golang:1.21.5-alpine3.18 as builder +FROM --platform=${BUILDPLATFORM} golang:1.21-alpine3.18 as builder ARG TARGETARCH ENV GOARCH "${TARGETARCH}" diff --git a/Dockerfile.flytecopilot b/Dockerfile.flytecopilot index 247a04e969..e19df0743d 100644 --- a/Dockerfile.flytecopilot +++ b/Dockerfile.flytecopilot @@ -1,9 +1,9 @@ # WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. # ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: -# +# # TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst -FROM --platform=${BUILDPLATFORM} golang:1.21.5-alpine3.18 as builder +FROM --platform=${BUILDPLATFORM} golang:1.21-alpine3.18 as builder ARG TARGETARCH ENV GOARCH "${TARGETARCH}" diff --git a/Dockerfile.flytepropeller b/Dockerfile.flytepropeller index 8da39815be..8cbdd40f14 100644 --- a/Dockerfile.flytepropeller +++ b/Dockerfile.flytepropeller @@ -1,9 +1,9 @@ # WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. # ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: -# +# # TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst -FROM --platform=${BUILDPLATFORM} golang:1.21.5-alpine3.18 as builder +FROM --platform=${BUILDPLATFORM} golang:1.21-alpine3.18 as builder ARG TARGETARCH ENV GOARCH "${TARGETARCH}" diff --git a/Dockerfile.flytescheduler b/Dockerfile.flytescheduler index 2956d93959..fa7f1906a3 100644 --- a/Dockerfile.flytescheduler +++ b/Dockerfile.flytescheduler @@ -1,9 +1,9 @@ # WARNING: THIS FILE IS MANAGED IN THE 'BOILERPLATE' REPO AND COPIED TO OTHER REPOSITORIES. # ONLY EDIT THIS FILE FROM WITHIN THE 'LYFT/BOILERPLATE' REPOSITORY: -# +# # TO OPT OUT OF UPDATES, SEE https://github.com/lyft/boilerplate/blob/master/Readme.rst -FROM --platform=${BUILDPLATFORM} golang:1.21.5-alpine3.18 as builder +FROM --platform=${BUILDPLATFORM} golang:1.21-alpine3.18 as builder ARG TARGETARCH ENV GOARCH "${TARGETARCH}" From c21ded67def2428dbe6be3eff0e213fd0147c54b Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Tue, 26 Mar 2024 13:38:39 -0700 Subject: [PATCH 73/76] Add optional org param to ProjectGetRequest (#5118) Signed-off-by: Katrina Rogan --- flyteidl/clients/go/assets/admin.swagger.json | 7 ++++ .../gen/pb-es/flyteidl/admin/project_pb.ts | 8 ++++ .../gen/pb-go/flyteidl/admin/project.pb.go | 38 ++++++++++++------- .../gateway/flyteidl/service/admin.pb.gw.go | 18 +++++++++ .../flyteidl/service/admin.swagger.json | 7 ++++ flyteidl/gen/pb-js/flyteidl.d.ts | 6 +++ flyteidl/gen/pb-js/flyteidl.js | 17 +++++++++ .../pb_python/flyteidl/admin/project_pb2.py | 4 +- .../pb_python/flyteidl/admin/project_pb2.pyi | 6 ++- flyteidl/gen/pb_rust/flyteidl.admin.rs | 3 ++ flyteidl/protos/flyteidl/admin/project.proto | 5 ++- 11 files changed, 100 insertions(+), 19 deletions(-) diff --git a/flyteidl/clients/go/assets/admin.swagger.json b/flyteidl/clients/go/assets/admin.swagger.json index dcbfa5ce37..bcaf46928b 100644 --- a/flyteidl/clients/go/assets/admin.swagger.json +++ b/flyteidl/clients/go/assets/admin.swagger.json @@ -2745,6 +2745,13 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ diff --git a/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts b/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts index 8bd364d5a1..17e8db3fab 100644 --- a/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts +++ b/flyteidl/gen/pb-es/flyteidl/admin/project_pb.ts @@ -424,6 +424,13 @@ export class ProjectGetRequest extends Message { */ id = ""; + /** + * Optional, org key applied to the resource. + * + * @generated from field: string org = 2; + */ + org = ""; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -433,6 +440,7 @@ export class ProjectGetRequest extends Message { static readonly typeName = "flyteidl.admin.ProjectGetRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "org", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): ProjectGetRequest { diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index 46b1b86639..9a09a4a790 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -520,6 +520,8 @@ type ProjectGetRequest struct { // Indicates a unique project. // +required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Optional, org key applied to the resource. + Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` } func (x *ProjectGetRequest) Reset() { @@ -561,6 +563,13 @@ func (x *ProjectGetRequest) GetId() string { return "" } +func (x *ProjectGetRequest) GetOrg() string { + if x != nil { + return x.Org + } + return "" +} + var File_flyteidl_admin_project_proto protoreflect.FileDescriptor var file_flyteidl_admin_project_proto_rawDesc = []byte{ @@ -615,21 +624,22 @@ var file_flyteidl_admin_project_proto_rawDesc = []byte{ 0x17, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x23, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x22, 0x35, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x42, 0xb8, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x0c, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, - 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, 0x41, 0x58, - 0xaa, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0xca, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0xe2, 0x02, 0x1a, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x42, 0xb8, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, + 0x0c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, + 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x62, 0x2d, 0x67, 0x6f, 0x2f, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x46, + 0x41, 0x58, 0xaa, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x2e, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0xca, 0x02, 0x0e, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0xe2, 0x02, 0x1a, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x5c, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x3a, 0x3a, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go index d6e056d029..7e10d95ed7 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.pb.gw.go @@ -3184,6 +3184,10 @@ func local_request_AdminService_UpdateProject_0(ctx context.Context, marshaler r } +var ( + filter_AdminService_GetProject_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + func request_AdminService_GetProject_0(ctx context.Context, marshaler runtime.Marshaler, client extService.AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq extAdmin.ProjectGetRequest var metadata runtime.ServerMetadata @@ -3205,6 +3209,13 @@ func request_AdminService_GetProject_0(ctx context.Context, marshaler runtime.Ma return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProject_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.GetProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err @@ -3231,6 +3242,13 @@ func local_request_AdminService_GetProject_0(ctx context.Context, marshaler runt return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_GetProject_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.GetProject(ctx, &protoReq) return msg, metadata, err diff --git a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json index dcbfa5ce37..bcaf46928b 100644 --- a/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/gateway/flyteidl/service/admin.swagger.json @@ -2745,6 +2745,13 @@ "in": "path", "required": true, "type": "string" + }, + { + "name": "org", + "description": "Optional, org key applied to the resource.", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index a09e5aa7b9..60556e3b43 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -17823,6 +17823,9 @@ export namespace flyteidl { /** ProjectGetRequest id */ id?: (string|null); + + /** ProjectGetRequest org */ + org?: (string|null); } /** Represents a ProjectGetRequest. */ @@ -17837,6 +17840,9 @@ export namespace flyteidl { /** ProjectGetRequest id. */ public id: string; + /** ProjectGetRequest org. */ + public org: string; + /** * Creates a new ProjectGetRequest instance using the specified properties. * @param [properties] Properties to set diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 41484ba0ef..4ec39993c5 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -43038,6 +43038,7 @@ * @memberof flyteidl.admin * @interface IProjectGetRequest * @property {string|null} [id] ProjectGetRequest id + * @property {string|null} [org] ProjectGetRequest org */ /** @@ -43063,6 +43064,14 @@ */ ProjectGetRequest.prototype.id = ""; + /** + * ProjectGetRequest org. + * @member {string} org + * @memberof flyteidl.admin.ProjectGetRequest + * @instance + */ + ProjectGetRequest.prototype.org = ""; + /** * Creates a new ProjectGetRequest instance using the specified properties. * @function create @@ -43089,6 +43098,8 @@ writer = $Writer.create(); if (message.id != null && message.hasOwnProperty("id")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.id); + if (message.org != null && message.hasOwnProperty("org")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.org); return writer; }; @@ -43113,6 +43124,9 @@ case 1: message.id = reader.string(); break; + case 2: + message.org = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -43135,6 +43149,9 @@ if (message.id != null && message.hasOwnProperty("id")) if (!$util.isString(message.id)) return "id: string expected"; + if (message.org != null && message.hasOwnProperty("org")) + if (!$util.isString(message.org)) + return "org: string expected"; return null; }; diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py index 38d97f2ebe..501a2d72aa 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.py @@ -14,7 +14,7 @@ from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9b\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponse\"#\n\x11ProjectGetRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02idB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/admin/project.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\",\n\x06\x44omain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xbf\x02\n\x07Project\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x30\n\x07\x64omains\x18\x03 \x03(\x0b\x32\x16.flyteidl.admin.DomainR\x07\x64omains\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12.\n\x06labels\x18\x05 \x01(\x0b\x32\x16.flyteidl.admin.LabelsR\x06labels\x12:\n\x05state\x18\x06 \x01(\x0e\x32$.flyteidl.admin.Project.ProjectStateR\x05state\x12\x10\n\x03org\x18\x07 \x01(\tR\x03org\">\n\x0cProjectState\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x41RCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\"U\n\x08Projects\x12\x33\n\x08projects\x18\x01 \x03(\x0b\x32\x17.flyteidl.admin.ProjectR\x08projects\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9b\x01\n\x12ProjectListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x03 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x04 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x10\n\x03org\x18\x05 \x01(\tR\x03org\"K\n\x16ProjectRegisterRequest\x12\x31\n\x07project\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.ProjectR\x07project\"\x19\n\x17ProjectRegisterResponse\"\x17\n\x15ProjectUpdateResponse\"5\n\x11ProjectGetRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03org\x18\x02 \x01(\tR\x03orgB\xb8\x01\n\x12\x63om.flyteidl.adminB\x0cProjectProtoP\x01Z;github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,5 +40,5 @@ _globals['_PROJECTUPDATERESPONSE']._serialized_start=794 _globals['_PROJECTUPDATERESPONSE']._serialized_end=817 _globals['_PROJECTGETREQUEST']._serialized_start=819 - _globals['_PROJECTGETREQUEST']._serialized_end=854 + _globals['_PROJECTGETREQUEST']._serialized_end=872 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi index ddb3f617ff..8b24c39701 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_pb2.pyi @@ -78,7 +78,9 @@ class ProjectUpdateResponse(_message.Message): def __init__(self) -> None: ... class ProjectGetRequest(_message.Message): - __slots__ = ["id"] + __slots__ = ["id", "org"] ID_FIELD_NUMBER: _ClassVar[int] + ORG_FIELD_NUMBER: _ClassVar[int] id: str - def __init__(self, id: _Optional[str] = ...) -> None: ... + org: str + def __init__(self, id: _Optional[str] = ..., org: _Optional[str] = ...) -> None: ... diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index ea1a14ce25..3995c67bb0 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -2581,6 +2581,9 @@ pub struct ProjectGetRequest { /// +required #[prost(string, tag="1")] pub id: ::prost::alloc::string::String, + /// Optional, org key applied to the resource. + #[prost(string, tag="2")] + pub org: ::prost::alloc::string::String, } /// Defines a set of custom matching attributes at the project level. /// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 319f0e124b..a06d3b58bc 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -104,4 +104,7 @@ message ProjectGetRequest { // Indicates a unique project. // +required string id = 1; -} \ No newline at end of file + + // Optional, org key applied to the resource. + string org = 2; +} From 2842e5dc84dc0b4fd1eaaa9bb4fbd23e1d39f6ce Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Tue, 26 Mar 2024 15:35:51 -0700 Subject: [PATCH 74/76] Stop building docs (#5120) Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- flyteidl/.readthedocs.yml | 21 ------- flyteidl/Makefile | 4 -- flyteidl/doc-requirements.in | 10 --- flyteidl/doc-requirements.txt | 114 ---------------------------------- 4 files changed, 149 deletions(-) delete mode 100644 flyteidl/.readthedocs.yml delete mode 100644 flyteidl/doc-requirements.in delete mode 100644 flyteidl/doc-requirements.txt diff --git a/flyteidl/.readthedocs.yml b/flyteidl/.readthedocs.yml deleted file mode 100644 index 40f82afa00..0000000000 --- a/flyteidl/.readthedocs.yml +++ /dev/null @@ -1,21 +0,0 @@ -# .readthedocs.yml -# Read the Docs configuration file -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details - -# Required -version: 2 - -# Build operating system -build: - os: ubuntu-22.04 - tools: - python: "3.8" - -# Build documentation in the docs/ directory with Sphinx -sphinx: - configuration: conf.py - -# Optionally set the version of Python and requirements required to build your docs -python: - install: - - requirements: doc-requirements.txt diff --git a/flyteidl/Makefile b/flyteidl/Makefile index 705679dfc9..d93d9cba27 100644 --- a/flyteidl/Makefile +++ b/flyteidl/Makefile @@ -34,10 +34,6 @@ build_python: install-piptools: pip install -U pip-tools -.PHONY: doc-requirements.txt -doc-requirements.txt: doc-requirements.in install-piptools - $(call PIP_COMPILE,doc-requirements.in) - PLACEHOLDER_NPM := \"version\": \"0.0.0-develop\" .PHONY: update_npmversion diff --git a/flyteidl/doc-requirements.in b/flyteidl/doc-requirements.in deleted file mode 100644 index 3f48edd16d..0000000000 --- a/flyteidl/doc-requirements.in +++ /dev/null @@ -1,10 +0,0 @@ -git+https://github.com/flyteorg/furo.git@main -recommonmark -sphinx -sphinx-prompt -sphinx-material -sphinx-code-include -sphinx-copybutton -sphinx_markdown_tables -sphinx_fontawesome -sphinx-panels diff --git a/flyteidl/doc-requirements.txt b/flyteidl/doc-requirements.txt deleted file mode 100644 index 6adef8b8ad..0000000000 --- a/flyteidl/doc-requirements.txt +++ /dev/null @@ -1,114 +0,0 @@ -# -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: -# -# pip-compile doc-requirements.in -# -alabaster==0.7.12 - # via sphinx -babel==2.9.1 - # via sphinx -beautifulsoup4==4.10.0 - # via - # furo - # sphinx-code-include - # sphinx-material -certifi==2021.10.8 - # via requests -charset-normalizer==2.0.10 - # via requests -commonmark==0.9.1 - # via recommonmark -css-html-js-minify==2.5.5 - # via sphinx-material -docutils==0.17.1 - # via - # recommonmark - # sphinx - # sphinx-panels -furo @ git+https://github.com/flyteorg/furo.git@main - # via -r doc-requirements.in -idna==3.3 - # via requests -imagesize==1.3.0 - # via sphinx -importlib-metadata==4.10.0 - # via markdown -jinja2==3.0.3 - # via sphinx -lxml==4.7.1 - # via sphinx-material -markdown==3.3.6 - # via sphinx-markdown-tables -markupsafe==2.0.1 - # via jinja2 -packaging==21.3 - # via sphinx -pygments==2.11.2 - # via - # sphinx - # sphinx-prompt -pyparsing==3.0.6 - # via packaging -python-slugify[unidecode]==5.0.2 - # via sphinx-material -pytz==2021.3 - # via babel -recommonmark==0.7.1 - # via -r doc-requirements.in -requests==2.27.1 - # via sphinx -six==1.16.0 - # via sphinx-code-include -snowballstemmer==2.2.0 - # via sphinx -soupsieve==2.3.1 - # via beautifulsoup4 -sphinx==4.3.2 - # via - # -r doc-requirements.in - # furo - # recommonmark - # sphinx-code-include - # sphinx-copybutton - # sphinx-fontawesome - # sphinx-material - # sphinx-panels - # sphinx-prompt -sphinx-code-include==1.1.1 - # via -r doc-requirements.in -sphinx-copybutton==0.4.0 - # via -r doc-requirements.in -sphinx-fontawesome==0.0.6 - # via -r doc-requirements.in -sphinx-markdown-tables==0.0.15 - # via -r doc-requirements.in -sphinx-material==0.0.35 - # via -r doc-requirements.in -sphinx-panels==0.6.0 - # via -r doc-requirements.in -sphinx-prompt==1.5.0 - # via -r doc-requirements.in -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==2.0.0 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.5 - # via sphinx -text-unidecode==1.3 - # via python-slugify -unidecode==1.3.2 - # via python-slugify -urllib3==1.26.8 - # via requests -zipp==3.7.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools From 9bdf597747497c060e93b302c64d97af35b9bdb8 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Tue, 26 Mar 2024 16:30:17 -0700 Subject: [PATCH 75/76] Bump google.golang.org/grpc and otelgrpc (#5121) Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- datacatalog/go.mod | 63 ++++++++++--------- datacatalog/go.sum | 135 +++++++++++++++++++++------------------- flyteadmin/go.mod | 49 +++++++-------- flyteadmin/go.sum | 106 ++++++++++++++++---------------- flytecopilot/go.mod | 60 +++++++++--------- flytecopilot/go.sum | 133 ++++++++++++++++++++++----------------- flyteidl/go.mod | 62 ++++++++++--------- flyteidl/go.sum | 139 +++++++++++++++++++++++------------------ flyteplugins/go.mod | 60 +++++++++--------- flyteplugins/go.sum | 132 ++++++++++++++++++++++----------------- flytepropeller/go.mod | 62 ++++++++++--------- flytepropeller/go.sum | 140 +++++++++++++++++++++++------------------- go.mod | 49 +++++++-------- go.sum | 106 ++++++++++++++++---------------- 14 files changed, 703 insertions(+), 593 deletions(-) diff --git a/datacatalog/go.mod b/datacatalog/go.mod index 7c04fd7832..7130ad924c 100644 --- a/datacatalog/go.mod +++ b/datacatalog/go.mod @@ -7,16 +7,16 @@ require ( github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 github.com/gofrs/uuid v4.2.0+incompatible - github.com/golang/glog v1.1.0 + github.com/golang/glog v1.2.0 github.com/golang/protobuf v1.5.3 github.com/jackc/pgconn v1.14.1 github.com/mitchellh/mapstructure v1.5.0 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 - go.opentelemetry.io/otel v1.19.0 - google.golang.org/grpc v1.56.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 + go.opentelemetry.io/otel v1.21.0 + google.golang.org/grpc v1.62.1 gorm.io/driver/postgres v1.5.3 gorm.io/driver/sqlite v1.5.4 gorm.io/gorm v1.25.4 @@ -24,11 +24,11 @@ require ( ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.19.1 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.13.0 // indirect - cloud.google.com/go/storage v1.28.1 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect @@ -43,11 +43,12 @@ 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/felixge/httpsnoop v1.0.4 // 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 - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -56,11 +57,12 @@ require ( github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.1 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.1 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -103,26 +105,27 @@ require ( github.com/stretchr/objx v0.5.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.15.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.12.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.114.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/protobuf v1.30.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/api v0.155.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/datacatalog/go.sum b/datacatalog/go.sum index b1642f638f..ea11d19064 100644 --- a/datacatalog/go.sum +++ b/datacatalog/go.sum @@ -17,24 +17,22 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -45,8 +43,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= @@ -84,8 +82,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= @@ -107,12 +105,14 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8= -github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= 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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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= @@ -126,8 +126,8 @@ github.com/go-gormigrate/gormigrate/v2 v2.1.1 h1:eGS0WTFRV30r103lU8JNXY27KbviRnq github.com/go-gormigrate/gormigrate/v2 v2.1.1/go.mod h1:L7nJ620PFDKei9QOhJzqA8kRCk+E3UbV2f5gv+1ndLc= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -150,8 +150,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -179,6 +179,7 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -196,8 +197,8 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -220,15 +221,17 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -429,20 +432,22 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 h1:xFSRQBbXF6VvYRf2lqMJXxoB72XI1K/azav8TekHHSw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0/go.mod h1:h8TWwRAhQpOd0aM5nYsRD8+flnkj+526GEIVlarH7eY= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -466,8 +471,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -540,8 +545,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -551,8 +556,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -564,6 +569,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -614,14 +621,14 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -630,14 +637,15 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -721,16 +729,17 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -767,12 +776,12 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto/googleapis/api v0.0.0-20230526161137-0005af68ea54 h1:VW/GdnI343CnUKGap8QyxQ204yai8uUsGzGmyOFfwH8= -google.golang.org/genproto/googleapis/api v0.0.0-20230526161137-0005af68ea54/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230526161137-0005af68ea54 h1:wQvmPUaH4JVFCzNAL9ShNjezVoq3OhlinNMLYSAN9Vg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230526161137-0005af68ea54/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -789,8 +798,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -803,8 +812,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/flyteadmin/go.mod b/flyteadmin/go.mod index 58ebd90a84..c2844c6cac 100644 --- a/flyteadmin/go.mod +++ b/flyteadmin/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( cloud.google.com/go/iam v1.1.5 - cloud.google.com/go/storage v1.30.1 + cloud.google.com/go/storage v1.36.0 github.com/NYTimes/gizmo v1.3.6 github.com/Selvatico/go-mocket v1.0.7 github.com/aws/aws-sdk-go v1.44.2 @@ -21,9 +21,9 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/go-gormigrate/gormigrate/v2 v2.1.1 github.com/golang-jwt/jwt/v4 v4.5.0 - github.com/golang/glog v1.1.2 + github.com/golang/glog v1.2.0 github.com/golang/protobuf v1.5.3 - github.com/google/uuid v1.4.0 + github.com/google/uuid v1.6.0 github.com/googleapis/gax-go/v2 v2.12.0 github.com/gorilla/handlers v1.5.1 github.com/gorilla/securecookie v1.1.1 @@ -46,13 +46,13 @@ require ( github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 - go.opentelemetry.io/otel v1.19.0 - golang.org/x/oauth2 v0.15.0 - golang.org/x/time v0.3.0 - google.golang.org/api v0.149.0 - google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 - google.golang.org/grpc v1.60.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 + go.opentelemetry.io/otel v1.21.0 + golang.org/x/oauth2 v0.16.0 + golang.org/x/time v0.5.0 + google.golang.org/api v0.155.0 + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 + google.golang.org/grpc v1.62.1 google.golang.org/protobuf v1.32.0 gorm.io/driver/mysql v1.4.4 gorm.io/driver/postgres v1.5.3 @@ -72,10 +72,10 @@ require ( ) require ( - cloud.google.com/go v0.111.0 // indirect + cloud.google.com/go v0.112.0 // indirect cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/pubsub v1.33.0 // indirect + cloud.google.com/go/pubsub v1.34.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect @@ -93,10 +93,10 @@ require ( github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fatih/color v1.13.0 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-jose/go-jose/v3 v3.0.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -167,22 +167,23 @@ require ( github.com/stretchr/objx v0.5.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.16.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20231005195138-3e424a577f31 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/sync v0.4.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect diff --git a/flyteadmin/go.sum b/flyteadmin/go.sum index fa9c065e82..0693371e59 100644 --- a/flyteadmin/go.sum +++ b/flyteadmin/go.sum @@ -20,8 +20,8 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.111.0 h1:YHLKNupSD1KqjDbQ3+LVdQ81h/UJbJyZG203cEfnQgM= -cloud.google.com/go v0.111.0/go.mod h1:0mibmpKP1TyOOFYQY5izo0LnT+ecvOQ0Sg3OdmMiNRU= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -43,16 +43,16 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.33.0 h1:6SPCPvWav64tj0sVX/+npCBKhUi/UjJehy9op/V3p2g= -cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.34.0 h1:ZtPbfwfi5rLaPeSvDC29fFoE20/tQvGrUS6kVJZJvkU= +cloud.google.com/go/pubsub v1.34.0/go.mod h1:alj4l4rBg+N3YTFDDC+/YyFTs6JAjam2QfYsddcAW4c= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= contrib.go.opencensus.io/exporter/stackdriver v0.13.1/go.mod h1:z2tyTZtPmQ2HvWH4cOmVDgtY+1lomfKdbLnkJvZdc8c= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= @@ -149,8 +149,8 @@ github.com/cloudevents/sdk-go/v2 v2.8.0/go.mod h1:GpCBmUj7DIRiDhVvsK5d6WCbgTWs8D github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= @@ -222,8 +222,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= -github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= @@ -235,8 +235,8 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -271,8 +271,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -616,8 +616,8 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGw github.com/golang/gddo v0.0.0-20180828051604-96d2a289f41e/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4= github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -702,8 +702,8 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -1322,25 +1322,27 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v0.18.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 h1:xFSRQBbXF6VvYRf2lqMJXxoB72XI1K/azav8TekHHSw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0/go.mod h1:h8TWwRAhQpOd0aM5nYsRD8+flnkj+526GEIVlarH7eY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.18.0/go.mod h1:iK1G0FgHurSJ/aYLg5LpnPI0pqdanM73S3dhyDp0Lk4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= go.opentelemetry.io/otel v0.18.0/go.mod h1:PT5zQj4lTsR1YeARt8YNKcFb88/c2IKoSABK9mX0r78= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= go.opentelemetry.io/otel/metric v0.18.0/go.mod h1:kEH2QtzAyBy3xDVQfGZKIcok4ZZFvd5xyKPfPcuK6pE= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= go.opentelemetry.io/otel/oteltest v0.18.0/go.mod h1:NyierCU3/G8DLTva7KRzGii2fdxdR89zXKH1bNWY7Bo= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= go.opentelemetry.io/otel/trace v0.18.0/go.mod h1:FzdUu3BPwZSZebfQ1vl5/tAa8LyMLXSJN57AXIt/iDk= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1403,8 +1405,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1508,8 +1510,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1520,8 +1522,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1535,8 +1537,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1624,14 +1626,14 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1648,8 +1650,8 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1791,8 +1793,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1845,12 +1847,12 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 h1:YJ5pD9rF8o9Qtta0Cmy9rdBwkSjrTCT6XTiUQVOtIos= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0/go.mod h1:l/k7rMz0vFTBPy+tFSGvXEd3z+BcoG1k7EHbqm+YBsY= -google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 h1:rcS6EyEaoCO52hQDupoSfrxI3R6C2Tq741is7X8OvnM= -google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1874,8 +1876,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/examples v0.0.0-20210304020650-930c79186c99/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/flytecopilot/go.mod b/flytecopilot/go.mod index de6c77795c..1e6061951a 100644 --- a/flytecopilot/go.mod +++ b/flytecopilot/go.mod @@ -21,11 +21,11 @@ require ( ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.19.1 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.13.0 // indirect - cloud.google.com/go/storage v1.28.1 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect @@ -39,8 +39,9 @@ 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/felixge/httpsnoop v1.0.4 // indirect github.com/flyteorg/stow v0.3.10 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -49,11 +50,12 @@ require ( github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.1 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.1 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/imdario/mergo v0.3.11 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -86,28 +88,30 @@ require ( github.com/spf13/viper v1.11.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.15.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.12.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.114.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect - google.golang.org/grpc v1.56.1 // indirect - google.golang.org/protobuf v1.30.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/api v0.155.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/grpc v1.62.1 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/flytecopilot/go.sum b/flytecopilot/go.sum index 061cd63e87..5c468eaf12 100644 --- a/flytecopilot/go.sum +++ b/flytecopilot/go.sum @@ -17,24 +17,22 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -45,8 +43,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= @@ -82,6 +80,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -99,10 +99,14 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= 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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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= @@ -115,8 +119,8 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -163,6 +167,7 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -180,8 +185,8 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -204,15 +209,17 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -338,6 +345,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -346,18 +354,22 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= @@ -368,9 +380,10 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -406,6 +419,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -439,8 +453,9 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -450,8 +465,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -462,6 +477,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -502,13 +520,15 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -516,13 +536,14 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -572,6 +593,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -601,16 +623,17 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -647,12 +670,12 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -669,8 +692,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -683,8 +706,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/flyteidl/go.mod b/flyteidl/go.mod index d8669b9eb2..2377cd1b05 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -7,11 +7,9 @@ toolchain go1.21.3 require ( github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 github.com/go-test/deep v1.0.7 - github.com/golang/glog v1.1.0 github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 - github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 github.com/jinzhu/copier v0.3.5 github.com/mitchellh/mapstructure v1.5.0 @@ -19,21 +17,20 @@ require ( github.com/pkg/errors v0.9.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 - golang.org/x/net v0.15.0 - golang.org/x/oauth2 v0.8.0 - google.golang.org/api v0.114.0 - google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 - google.golang.org/grpc v1.56.1 - google.golang.org/protobuf v1.30.0 + golang.org/x/net v0.20.0 + golang.org/x/oauth2 v0.16.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 + google.golang.org/grpc v1.62.1 + google.golang.org/protobuf v1.32.0 k8s.io/apimachinery v0.28.2 ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.19.1 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.13.0 // indirect - cloud.google.com/go/storage v1.28.1 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect @@ -48,9 +45,10 @@ 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/felixge/httpsnoop v1.0.4 // indirect github.com/flyteorg/stow v0.3.10 // indirect github.com/ghodss/yaml v1.0.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -59,11 +57,12 @@ require ( github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.1 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.1 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -86,22 +85,25 @@ require ( github.com/spf13/cobra v1.7.0 // indirect github.com/stretchr/objx v0.5.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.12.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/api v0.155.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/flyteidl/go.sum b/flyteidl/go.sum index f1911aadfe..17f30f40c8 100644 --- a/flyteidl/go.sum +++ b/flyteidl/go.sum @@ -13,24 +13,22 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -40,8 +38,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= @@ -83,6 +81,8 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -101,10 +101,14 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= 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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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= @@ -116,8 +120,8 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -139,8 +143,8 @@ github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJ github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -185,8 +189,8 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -205,20 +209,21 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= @@ -333,6 +338,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -340,18 +346,22 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -365,8 +375,9 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -399,6 +410,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -427,18 +439,20 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -448,6 +462,9 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -485,12 +502,14 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -498,13 +517,14 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -548,6 +568,7 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -574,16 +595,16 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -615,12 +636,12 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -638,8 +659,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -653,8 +674,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/flyteplugins/go.mod b/flyteplugins/go.mod index be1331697b..d63a84a673 100644 --- a/flyteplugins/go.mod +++ b/flyteplugins/go.mod @@ -26,11 +26,11 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e - golang.org/x/net v0.17.0 - golang.org/x/oauth2 v0.8.0 - google.golang.org/api v0.114.0 - google.golang.org/grpc v1.56.1 - google.golang.org/protobuf v1.30.0 + golang.org/x/net v0.20.0 + golang.org/x/oauth2 v0.16.0 + google.golang.org/api v0.155.0 + google.golang.org/grpc v1.62.1 + google.golang.org/protobuf v1.32.0 gotest.tools v2.2.0+incompatible k8s.io/api v0.28.2 k8s.io/apimachinery v0.28.2 @@ -40,11 +40,11 @@ require ( ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.19.1 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.13.0 // indirect - cloud.google.com/go/storage v1.28.1 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect @@ -64,10 +64,11 @@ require ( github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fatih/color v1.13.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // 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-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -76,11 +77,12 @@ require ( github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.1 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.1 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -112,22 +114,24 @@ require ( github.com/stretchr/objx v0.5.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/flyteplugins/go.sum b/flyteplugins/go.sum index 662b36b87e..98f87376f7 100644 --- a/flyteplugins/go.sum +++ b/flyteplugins/go.sum @@ -17,24 +17,22 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -45,8 +43,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= @@ -111,6 +109,8 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -132,12 +132,16 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= 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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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= @@ -149,8 +153,8 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -217,8 +221,8 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -241,15 +245,17 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= @@ -386,6 +392,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -394,18 +401,22 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= @@ -417,9 +428,10 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -455,6 +467,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -491,8 +504,9 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -503,8 +517,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -515,6 +529,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -556,14 +573,16 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -572,13 +591,14 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -628,6 +648,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -657,16 +678,17 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -705,12 +727,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -731,8 +753,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -746,8 +768,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/flytepropeller/go.mod b/flytepropeller/go.mod index f541398b58..af2880c259 100644 --- a/flytepropeller/go.mod +++ b/flytepropeller/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-redis/redis v6.15.7+incompatible github.com/go-test/deep v1.0.7 github.com/golang/protobuf v1.5.3 - github.com/google/uuid v1.3.1 + github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/imdario/mergo v0.3.13 @@ -25,14 +25,14 @@ require ( github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 - go.opentelemetry.io/otel v1.19.0 - go.opentelemetry.io/otel/trace v1.19.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 + go.opentelemetry.io/otel v1.21.0 + go.opentelemetry.io/otel/trace v1.21.0 golang.org/x/exp v0.0.0-20231005195138-3e424a577f31 - golang.org/x/sync v0.2.0 - golang.org/x/time v0.3.0 - google.golang.org/grpc v1.56.1 - google.golang.org/protobuf v1.30.0 + golang.org/x/sync v0.6.0 + golang.org/x/time v0.5.0 + google.golang.org/grpc v1.62.1 + google.golang.org/protobuf v1.32.0 k8s.io/api v0.28.3 k8s.io/apiextensions-apiserver v0.28.0 k8s.io/apimachinery v0.28.3 @@ -43,11 +43,11 @@ require ( ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.19.1 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.13.0 // indirect - cloud.google.com/go/storage v1.29.0 // indirect + cloud.google.com/go/iam v1.1.5 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect @@ -72,9 +72,10 @@ require ( github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/flyteorg/stow v0.3.10 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -83,10 +84,11 @@ require ( github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.1 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect @@ -120,23 +122,23 @@ require ( github.com/stretchr/objx v0.5.0 // indirect github.com/subosito/gotenv v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/api v0.114.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect + google.golang.org/api v0.155.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/flytepropeller/go.sum b/flytepropeller/go.sum index b929dc11b5..04a26cfbf9 100644 --- a/flytepropeller/go.sum +++ b/flytepropeller/go.sum @@ -17,24 +17,22 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -45,8 +43,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= @@ -113,8 +111,8 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/coocood/freecache v1.1.1 h1:uukNF7QKCZEdZ9gAV7WQzvh0SbjwdMF6m3x3rxEkaPc= github.com/coocood/freecache v1.1.1/go.mod h1:OKrEjkGVoxZhyWAJoeFi5BMLUJm2Tit0kpGkIr7NGYY= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -136,14 +134,16 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8= -github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= 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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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= @@ -158,8 +158,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -229,8 +229,8 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -253,15 +253,17 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= @@ -413,6 +415,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -421,20 +424,22 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 h1:xFSRQBbXF6VvYRf2lqMJXxoB72XI1K/azav8TekHHSw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0/go.mod h1:h8TWwRAhQpOd0aM5nYsRD8+flnkj+526GEIVlarH7eY= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= @@ -451,9 +456,10 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -489,6 +495,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -523,8 +530,9 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -535,8 +543,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -547,8 +555,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -591,15 +600,17 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -608,13 +619,14 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -664,6 +676,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -693,16 +706,17 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -742,12 +756,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -768,8 +782,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -783,8 +797,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/go.mod b/go.mod index 37e95136ea..998cd19de7 100644 --- a/go.mod +++ b/go.mod @@ -7,22 +7,22 @@ require ( github.com/flyteorg/flyte/flyteadmin v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytepropeller v0.0.0-00010101000000-000000000000 github.com/flyteorg/flyte/flytestdlib v0.0.0-00010101000000-000000000000 - github.com/golang/glog v1.1.2 + github.com/golang/glog v1.2.0 github.com/prometheus/client_golang v1.16.0 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 - golang.org/x/sync v0.4.0 + golang.org/x/sync v0.6.0 gorm.io/driver/postgres v1.5.3 sigs.k8s.io/controller-runtime v0.16.3 ) require ( - cloud.google.com/go v0.111.0 // indirect + cloud.google.com/go v0.112.0 // indirect cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.5 // indirect - cloud.google.com/go/pubsub v1.33.0 // indirect - cloud.google.com/go/storage v1.30.1 // indirect + cloud.google.com/go/pubsub v1.34.0 // indirect + cloud.google.com/go/storage v1.36.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect @@ -63,7 +63,7 @@ require ( github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fatih/color v1.13.0 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/flyteorg/flyte/flyteidl v0.0.0-00010101000000-000000000000 // indirect github.com/flyteorg/flyte/flyteplugins v0.0.0-00010101000000-000000000000 // indirect github.com/flyteorg/stow v0.3.10 // indirect @@ -71,7 +71,7 @@ require ( github.com/ghodss/yaml v1.0.0 // indirect github.com/go-gormigrate/gormigrate/v2 v2.1.1 // indirect github.com/go-jose/go-jose/v3 v3.0.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -90,7 +90,7 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.7 // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect @@ -170,31 +170,32 @@ require ( github.com/stretchr/testify v1.8.4 // indirect github.com/subosito/gotenv v1.2.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/sdk v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.25.0 // indirect - golang.org/x/crypto v0.16.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20231005195138-3e424a577f31 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.3.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.13.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/api v0.149.0 // indirect + google.golang.org/api v0.155.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect - google.golang.org/grpc v1.60.1 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/grpc v1.62.1 // indirect google.golang.org/protobuf v1.32.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect diff --git a/go.sum b/go.sum index 8048229f18..294ed0f37d 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.111.0 h1:YHLKNupSD1KqjDbQ3+LVdQ81h/UJbJyZG203cEfnQgM= -cloud.google.com/go v0.111.0/go.mod h1:0mibmpKP1TyOOFYQY5izo0LnT+ecvOQ0Sg3OdmMiNRU= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -43,16 +43,16 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.33.0 h1:6SPCPvWav64tj0sVX/+npCBKhUi/UjJehy9op/V3p2g= -cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.34.0 h1:ZtPbfwfi5rLaPeSvDC29fFoE20/tQvGrUS6kVJZJvkU= +cloud.google.com/go/pubsub v1.34.0/go.mod h1:alj4l4rBg+N3YTFDDC+/YyFTs6JAjam2QfYsddcAW4c= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= contrib.go.opencensus.io/exporter/stackdriver v0.13.1/go.mod h1:z2tyTZtPmQ2HvWH4cOmVDgtY+1lomfKdbLnkJvZdc8c= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.2 h1:t5+QXLCK9SVi0PPdaY0PrFvYUo24KwA0QwxnaHRSVd4= @@ -171,8 +171,8 @@ github.com/cloudevents/sdk-go/v2 v2.14.0/go.mod h1:xDmKfzNjM8gBvjaF8ijFjM1VYOVUE github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= -github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= @@ -246,8 +246,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= -github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= @@ -259,8 +259,8 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= 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/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -295,8 +295,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -643,8 +643,8 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGw github.com/golang/gddo v0.0.0-20180828051604-96d2a289f41e/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4= github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -729,8 +729,8 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -1357,25 +1357,27 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v0.18.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 h1:xFSRQBbXF6VvYRf2lqMJXxoB72XI1K/azav8TekHHSw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0/go.mod h1:h8TWwRAhQpOd0aM5nYsRD8+flnkj+526GEIVlarH7eY= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.18.0/go.mod h1:iK1G0FgHurSJ/aYLg5LpnPI0pqdanM73S3dhyDp0Lk4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= go.opentelemetry.io/otel v0.18.0/go.mod h1:PT5zQj4lTsR1YeARt8YNKcFb88/c2IKoSABK9mX0r78= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y= go.opentelemetry.io/otel/metric v0.18.0/go.mod h1:kEH2QtzAyBy3xDVQfGZKIcok4ZZFvd5xyKPfPcuK6pE= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= go.opentelemetry.io/otel/oteltest v0.18.0/go.mod h1:NyierCU3/G8DLTva7KRzGii2fdxdR89zXKH1bNWY7Bo= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= go.opentelemetry.io/otel/trace v0.18.0/go.mod h1:FzdUu3BPwZSZebfQ1vl5/tAa8LyMLXSJN57AXIt/iDk= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1438,8 +1440,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1543,8 +1545,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1555,8 +1557,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1570,8 +1572,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1659,14 +1661,14 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1683,8 +1685,8 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1826,8 +1828,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.155.0 h1:vBmGhCYs0djJttDNynWo44zosHlPvHmA0XiN2zP2DtA= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1880,12 +1882,12 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 h1:YJ5pD9rF8o9Qtta0Cmy9rdBwkSjrTCT6XTiUQVOtIos= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0/go.mod h1:l/k7rMz0vFTBPy+tFSGvXEd3z+BcoG1k7EHbqm+YBsY= -google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 h1:rcS6EyEaoCO52hQDupoSfrxI3R6C2Tq741is7X8OvnM= -google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1909,8 +1911,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/examples v0.0.0-20210304020650-930c79186c99/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= From 78a690f43f39eeadbc1482259d7dc2ca66b814b1 Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Tue, 26 Mar 2024 18:32:37 -0500 Subject: [PATCH 76/76] fix broken link (#5122) Signed-off-by: nikki everett --- docs/user_guide/data_types_and_io/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user_guide/data_types_and_io/index.md b/docs/user_guide/data_types_and_io/index.md index f419c99bd3..f55aec69b4 100644 --- a/docs/user_guide/data_types_and_io/index.md +++ b/docs/user_guide/data_types_and_io/index.md @@ -133,7 +133,7 @@ Here's a breakdown of these mappings: - Any - Custom transformers - The ``FlytePickle`` transformer is the default option, but you can also define custom transformers. - **For instructions on building custom type transformers, please refer to :ref:`this section `**. + For instructions on building custom type transformers, please refer to :ref:`this section `. ``` ```{toctree}