From b15a79cc30509620fea703811f9a9c708f1b64d2 Mon Sep 17 00:00:00 2001 From: Thiago Bittencourt Gil <79285506+thiago4int@users.noreply.github.com> Date: Wed, 21 Jul 2021 21:41:05 -0300 Subject: [PATCH 1/6] docs: Add 4intelligence (#6400) Signed-off-by: Thiago Gil --- USERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/USERS.md b/USERS.md index b57e0c796e32..59653fc51c47 100644 --- a/USERS.md +++ b/USERS.md @@ -11,6 +11,7 @@ As the Argo Community grows, we'd like to keep track of our users. Please send a Currently, the following organizations are **officially** using Argo Workflows: 1. [23mofang](https://www.23mofang.com/) +1. [4intelligence](https://4intelligence.com.br/) 1. [7shifts](https://www.7shifts.com) 1. [Acquia](https://www.acquia.com/) 1. [Adevinta](https://www.adevinta.com/) From 2bf711b32498fd13a16fe82fb39286271b8b798b Mon Sep 17 00:00:00 2001 From: Yuan Tang Date: Wed, 21 Jul 2021 20:41:48 -0400 Subject: [PATCH 2/6] docs: Add note on additional required permission for createBucketIfNotPresent for OSS driver (#6378) Signed-off-by: Yuan Tang --- docs/configure-artifact-repository.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/configure-artifact-repository.md b/docs/configure-artifact-repository.md index 9e9dbbc4c3b3..a5f0ceaa1370 100644 --- a/docs/configure-artifact-repository.md +++ b/docs/configure-artifact-repository.md @@ -202,6 +202,8 @@ artifacts: key: secretKey ``` +You can also set `createBucketIfNotPresent` to `true` to tell the artifact driver to automatically create the OSS bucket if it doesn't exist yet when saving artifacts. Note that you'll need to set additional permission for your OSS account to create new buckets. + # Configure the Default Artifact Repository In order for Argo to use your artifact repository, you can configure it as the From 453539690e01827e97fd4921aaa425b2c864a3b1 Mon Sep 17 00:00:00 2001 From: Tianchu Zhao Date: Thu, 22 Jul 2021 11:21:12 +1000 Subject: [PATCH 3/6] fix(controller): allow initial duration to be 0 instead of current_time-0 (#6389) Signed-off-by: Tianchu Zhao --- workflow/controller/operator.go | 6 +++++- workflow/controller/operator_test.go | 31 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/workflow/controller/operator.go b/workflow/controller/operator.go index 3490ffce46b3..4c24617c54ce 100644 --- a/workflow/controller/operator.go +++ b/workflow/controller/operator.go @@ -235,7 +235,11 @@ func (woc *wfOperationCtx) operate(ctx context.Context) { } // Update workflow duration variable - woc.globalParams[common.GlobalVarWorkflowDuration] = fmt.Sprintf("%f", time.Since(woc.wf.Status.StartedAt.Time).Seconds()) + if woc.wf.Status.StartedAt.IsZero() { + woc.globalParams[common.GlobalVarWorkflowDuration] = fmt.Sprintf("%f", time.Duration(0).Seconds()) + } else { + woc.globalParams[common.GlobalVarWorkflowDuration] = fmt.Sprintf("%f", time.Since(woc.wf.Status.StartedAt.Time).Seconds()) + } // Populate the phase of all the nodes prior to execution for _, node := range woc.wf.Status.Nodes { diff --git a/workflow/controller/operator_test.go b/workflow/controller/operator_test.go index dda5526c6f23..43010e234402 100644 --- a/workflow/controller/operator_test.go +++ b/workflow/controller/operator_test.go @@ -148,6 +148,37 @@ spec: }), "zero node durations empty") } +func TestGlobalParamDuration(t *testing.T) { + wf := wfv1.MustUnmarshalWorkflow(` +metadata: + name: my-wf + namespace: my-ns +spec: + entrypoint: main + templates: + - name: main + dag: + tasks: + - name: pod + template: pod + - name: pod + container: + image: my-image +`) + cancel, controller := newController(wf) + defer cancel() + + ctx := context.Background() + woc := newWorkflowOperationCtx(wf, controller) + woc.operate(ctx) + assert.Equal(t, woc.globalParams[common.GlobalVarWorkflowDuration], "0.000000") + + makePodsPhase(ctx, woc, apiv1.PodSucceeded) + woc = newWorkflowOperationCtx(woc.wf, controller) + woc.operate(ctx) + assert.Greater(t, woc.globalParams[common.GlobalVarWorkflowDuration], "0.000000") +} + func TestEstimatedDuration(t *testing.T) { wf := wfv1.MustUnmarshalWorkflow(` metadata: From 092b4271b9b57ce9dbff0d988b04ddbf9742425c Mon Sep 17 00:00:00 2001 From: Alex Collins Date: Thu, 22 Jul 2021 09:08:26 -0700 Subject: [PATCH 4/6] fix(controller): Mark workflows wait for semaphore as pending. Fixes #6351 (#6356) Signed-off-by: Alex Collins --- workflow/controller/operator.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workflow/controller/operator.go b/workflow/controller/operator.go index 4c24617c54ce..31565f360650 100644 --- a/workflow/controller/operator.go +++ b/workflow/controller/operator.go @@ -229,7 +229,11 @@ func (woc *wfOperationCtx) operate(ctx context.Context) { woc.updated = wfUpdate if !acquired { woc.log.Warn("Workflow processing has been postponed due to concurrency limit") - woc.wf.Status.Message = msg + phase := woc.wf.Status.Phase + if phase == wfv1.WorkflowUnknown { + phase = wfv1.WorkflowPending + } + woc.markWorkflowPhase(ctx, phase, msg) return } } From 10c0fa5f9ed3d41e7bc164d7ca0e857485934486 Mon Sep 17 00:00:00 2001 From: Alex Collins Date: Thu, 22 Jul 2021 09:49:46 -0700 Subject: [PATCH 5/6] docs: Updating upgrading.md. Closes #6314 Signed-off-by: Alex Collins --- docs/upgrading.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/upgrading.md b/docs/upgrading.md index 8ff200ea6bd3..14e10d957aed 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -1,3 +1,4 @@ + # Upgrading Breaking changes typically (sometimes we don't realise they are breaking) have "!" in the commit message, as per @@ -40,6 +41,18 @@ containerRuntimeExecutors: | workflows.argoproj.io/container-runtime-executor: emissary ``` +### [be63efe89](https://github.com/argoproj/argo-workflows/commit/e6fa41a) feat(controller): Expression template tags. Resolves #4548 & #1293 (#5115) + +This PR introduced a new expression syntax know as "expression tag template". A user has reported that this does not +always play nicely with the `when` condition syntax (Goevaluate). + +This can be resolved using a single quote in your when expression: + +``` +when: "'{{inputs.parameters.should-print}}' != '2021-01-01'" +``` + +[Learn more](https://github.com/argoproj/argo-workflows/issues/6314) ## Upgrading to v3.0 From c80f4bc7322b1397c68c6cc14072bbb69c727496 Mon Sep 17 00:00:00 2001 From: Dominik Deren Date: Fri, 23 Jul 2021 01:32:43 +0200 Subject: [PATCH 6/6] docs: updating documentation on how to setup IRSA on AWS (#6406) --- docs/workflow-controller-configmap.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/workflow-controller-configmap.yaml b/docs/workflow-controller-configmap.yaml index 0c1c29d9e1e7..d9ade04fc53b 100644 --- a/docs/workflow-controller-configmap.yaml +++ b/docs/workflow-controller-configmap.yaml @@ -115,6 +115,9 @@ data: key: secretKey # If this is set to true, argo workflows will use AWS SDK default credentials provider chain. This will allow things like # IRSA and any of the authentication methods that the golang SDK uses in it's default chain. + # If you are using IRSA on AWS, and set this option to true, you will also need to modify Argo-Server Deployment with + # `spec.template.spec.securityContext.fsGroup: 65534` configuration. This is required for IRSA to be able to access + # `/var/run/secrets/eks.amazonaws.com/serviceaccount/token` file, and authenticate with AWS. useSDKCreds: false # Specifies the container runtime interface to use (default: docker)