From d86e61912b07b14e2200474cbd6725dfc07131be Mon Sep 17 00:00:00 2001 From: tooptoop4 <33283496+tooptoop4@users.noreply.github.com> Date: Sat, 12 Oct 2024 07:13:26 +1100 Subject: [PATCH 1/3] Signed-off-by: tooptoop4 <33283496+tooptoop4@users.noreply.github.com> --- docs/environment-variables.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/environment-variables.md b/docs/environment-variables.md index 66f0145724e5..46b25408d821 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -55,6 +55,7 @@ This document outlines environment variables that can be used to customize behav | `WORKFLOW_GC_PERIOD` | `time.Duration` | `5m` | The periodicity for GC of workflows. | | `SEMAPHORE_NOTIFY_DELAY` | `time.Duration` | `1s` | Tuning Delay when notifying semaphore waiters about availability in the semaphore | | `WATCH_CONTROLLER_SEMAPHORE_CONFIGMAPS` | `bool` | `true` | Whether to watch the Controller's ConfigMap and semaphore ConfigMaps for run-time changes. When disabled, the Controller will only read these ConfigMaps once and will have to be manually restarted to pick up new changes. | +| `SKIP_WORKFLOW_DURATION_ESTIMATION` | `bool` | `false` | Whether to lookup resource usage from prior workflows as a basis for estimating resource usage on a new workflow. | CLI parameters of the Controller can be specified as environment variables with the `ARGO_` prefix. For example: From b3966dcfdadfb09f276365649232f1cf71ca218d Mon Sep 17 00:00:00 2001 From: tooptoop4 <33283496+tooptoop4@users.noreply.github.com> Date: Sat, 12 Oct 2024 07:16:57 +1100 Subject: [PATCH 2/3] Signed-off-by: tooptoop4 <33283496+tooptoop4@users.noreply.github.com> --- workflow/controller/estimation/estimator_factory.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/workflow/controller/estimation/estimator_factory.go b/workflow/controller/estimation/estimator_factory.go index 192f2a7c2513..74e087bd9a85 100644 --- a/workflow/controller/estimation/estimator_factory.go +++ b/workflow/controller/estimation/estimator_factory.go @@ -9,6 +9,7 @@ import ( "github.com/argoproj/argo-workflows/v3/persist/sqldb" wfv1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v3/util/env" "github.com/argoproj/argo-workflows/v3/workflow/common" "github.com/argoproj/argo-workflows/v3/workflow/controller/indexes" "github.com/argoproj/argo-workflows/v3/workflow/hydrator" @@ -28,12 +29,19 @@ type estimatorFactory struct { var _ EstimatorFactory = &estimatorFactory{} +var ( + skipWorkflowDurationEstimation = env.LookupEnvStringOr("SKIP_WORKFLOW_DURATION_ESTIMATION", "false") +) + func NewEstimatorFactory(wfInformer cache.SharedIndexInformer, hydrator hydrator.Interface, wfArchive sqldb.WorkflowArchive) EstimatorFactory { return &estimatorFactory{wfInformer, hydrator, wfArchive} } func (f *estimatorFactory) NewEstimator(wf *wfv1.Workflow) (Estimator, error) { defaultEstimator := &estimator{wf: wf} + if skipWorkflowDurationEstimation == "true" { + return defaultEstimator, nil + } for labelName, indexName := range map[string]string{ common.LabelKeyWorkflowTemplate: indexes.WorkflowTemplateIndex, common.LabelKeyClusterWorkflowTemplate: indexes.ClusterWorkflowTemplateIndex, From a15b26bc6c018f63c2d0bc4de01cd1f9d05d6824 Mon Sep 17 00:00:00 2001 From: Anton Gilgur <4970083+agilgur5@users.noreply.github.com> Date: Sat, 12 Oct 2024 02:11:51 -0400 Subject: [PATCH 3/3] simplify env var description Signed-off-by: Anton Gilgur <4970083+agilgur5@users.noreply.github.com> --- docs/environment-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/environment-variables.md b/docs/environment-variables.md index 46b25408d821..0a5e1533bc4f 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -55,7 +55,7 @@ This document outlines environment variables that can be used to customize behav | `WORKFLOW_GC_PERIOD` | `time.Duration` | `5m` | The periodicity for GC of workflows. | | `SEMAPHORE_NOTIFY_DELAY` | `time.Duration` | `1s` | Tuning Delay when notifying semaphore waiters about availability in the semaphore | | `WATCH_CONTROLLER_SEMAPHORE_CONFIGMAPS` | `bool` | `true` | Whether to watch the Controller's ConfigMap and semaphore ConfigMaps for run-time changes. When disabled, the Controller will only read these ConfigMaps once and will have to be manually restarted to pick up new changes. | -| `SKIP_WORKFLOW_DURATION_ESTIMATION` | `bool` | `false` | Whether to lookup resource usage from prior workflows as a basis for estimating resource usage on a new workflow. | +| `SKIP_WORKFLOW_DURATION_ESTIMATION` | `bool` | `false` | Whether to lookup resource usage from prior workflows to estimate usage for new workflows. | CLI parameters of the Controller can be specified as environment variables with the `ARGO_` prefix. For example: