Quick Start
What's New?
Find out in our blog post
Argo CLI
Mac
Available via curl
# Download the binary
curl -sLO https://github.com/argoproj/argo/releases/download/v2.12.0-rc1/argo-darwin-amd64.gz
# Unzip
gunzip argo-darwin-amd64.gz
# Make binary executable
chmod +x argo-darwin-amd64
# Move binary to path
mv ./argo-darwin-amd64 /usr/local/bin/argo
# Test installation
argo version
Linux
Available via curl
# Download the binary
curl -sLO https://github.com/argoproj/argo/releases/download/v2.12.0-rc1/argo-linux-amd64.gz
# Unzip
gunzip argo-linux-amd64.gz
# Make binary executable
chmod +x argo-linux-amd64
# Move binary to path
mv ./argo-linux-amd64 /usr/local/bin/argo
# Test installation
argo version
Argo Controller
kubectl create namespace argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/v2.12.0-rc1/manifests/install.yaml
Changes
v2.12.0-rc1
Enhancements
- #1824 Argo UI and Workflow container pods running as root users
- #2325 Native support for Docker operations
- #2717 Automatic workflow duration prediction
- #2899 Argo stress test
- #3095 PVC GC Policy
- #3525 Role-based Access Controls for SSO
- #3557 Workflow Report
- #3585 Add ability to automatically decompress zipped artifacts
- #3595 Hard to see child dependencies in UI with complicated workflows
- #3719 Investigate writing back to the informer
- #3786 More robust workflow archiving
- #3835 Publish roadmap
- #3873 SSO Timeout Configuration
- #3898 Improve Links feature
- #3918 Tolerate deleted resources
- #3955 Support interpolated mutex names
- #3996 Old version of kubectl 1.15, latest stable is 1.19.1
- #4000 Remove
alpha/beta/ga
labels from docs - #4039 Tooltips should also be supplied for ellipsized text
- #4087 Better UI error recovery
- #4165 Map-Reduce example
- #4192 Provide enum type parameters for Argo workflows
- #4204 Kubernetes API version harmonisation
- #4233 Show workflow pod security recommendations in UI
- #4264 Visualisation of the suspended CronWorkflows in the list
- #4286 Allow whitespace in templates
- #4293 Resource editor could auto set namespace
- #4360 Link to catalog/examples from UI
Bug Fixes
- #1554 controller.runWorker for wfc.throttler.Next(key) bug
- #3444 Artifact mode is not recursive
- #3872 Custom metrics are not recorded for DAG tasks.
- #3905 DAGs may not abort on
ErrDeadlineExceeded
- #3907 Workflow controller OOMKilled with running
withParams:
10k params - #3916 Pod did not output any logs
- #3926 Swagger UI does not allow you to send /api/v1/events requests
- #3927 Update default role for argo-server to support webhooks
- #3942 LGTM (security) review tool flagged 5 issues in the code base
- #3943 The version command fails due to lack of kubeconfig
- #3960 Argo CLI (v2.10.0+) doesn't handle int64 values
- #3977 Dockerfile: When using ADD with more than one source file, the destination must be a directory and end with a /
- #3984 typo in argo cli
- #3994 Upload via UI does not always seem to work
- #4001 v2.11: Investigate/fix
resubmitPendingPods
typo - #4005 v2.11: Clicking on timeline tab shows events tab
- #4016 v2.11: Pod event in UI not working for
withItems
- #4019 UI: Cron workflows filter not working as expected
- #4027 SSO logs out quickly
- #4033 Timestamp always present in logs provided by API
- #4044 Workflow created from Workflowtemplate doesn't respect the activeDeadlineSeconds defined the Workflowtemplate
- #4046 Step or dag workflows do not seem to release semaphore locks
- #4079 Cannot read property type of undefined
- #4081 v2.11: workflow-controller-configmap parallelism not being honored.
- #4082 Windows Output artifact does not work
- #4084 Some 2.11.0 URLs redirect unhelpfully
- #4093 add back flag for kubernetes log level in CLI
- #4101 Fix TestWorkflowRetry flakey test
- #4107 v2.11: Steps (not DAG) always fails (with conflict error) and no helpful diagnostics (AWS only?)
- #4144 Add request timed out in errors.isTransientNetworkErr
- #4169 unmarshal to workflow struct failed,if outputs.parameters.value is a number
- #4188 EKS workflowDefaults inconsistencies - kubelet executor
- #4206 Makefile seems to have deprecated k3d commands
- #4208 v2.11: workflow-controller-configmap serviceAccountName not being honored
- #4216 v2.11.1: error pulling image configuration: unknown blob
- #4232 Argo UI: Cannot read property 'x' of undefined when viewing workflow (v2.11.0)
- #4236 Argo UI - Archived Workflows - Error when clicking on hidden nodes ellipsis
- #4244 With workflow executor set to k8sapi, artifact optional feature does not work when tgz archive is disabled
- #4275 Pods in retried workflow with PVC after a step that succeeded never get scheduled
- #4296 Cannot submit workflow from workflow template with input artifact argument
- #4301 View Workflow Page Not Receiving Progress Updates
- #4302 [Bug] pns executor cannot retrieve correct containerId with runtime cri-containerd
- #4326 argo lint does not detect missing input parameters
- #4330 goofy syntax issue in examples/README.md
- #4338 open artifact : permission denied
- #4339 Slow / Unresponsive Kubernetes API
- #4351 v2.11.6: Parent CronWorkflow 'argo/canary' is malformed
- #4359 Integers are no longer supported in parameters
- #4364 Design-out Kubernetes event bugs
- #4386 v2.12: estimated duration not set for DAG
- #4387 v2.12: Running pods make chart un-usable
- #4394 Argo CLI does not work with load balancer (e.g. AWS ALB) that do not support HTTP/2
- #4400 auth-mode server fails when Authorization header is passed.
- #4460 Argo server api doesn't work when running inside kubernetes
Other
- #2239 What are the minimum permissions needed in a pod security policy in order for an argo workflow to run successfully?
- #3564 [bug] localhost not point to 127.0.0.1
- #3859 TLS docs link to Readiness Probe example is outdated
- Update manifests to v2.12.0-rc1
- chore: Correct manifests
- docs: Fix typo in docs for artifact repository
Pull Requests
- #3558 feat(ui): Adds a report page which shows basic historical workflow metrics. Closes #3557
- #3686 feat: Step and Task Level Global Timeout
- #3832 fix(executor): set artifact mode recursively. Fixes #3444
- #3862 feat(controller): Retry archiving later on error. Fixes #3786
- #3863 docs: Adds roadmap. Closes #3835
- #3877 docs: TLS documentation for readiness probe is outdated. Closes #3859
- #3886 fix: Custom metrics are not recorded for DAG tasks Fixes #3872
- #3914 fix: Default PDB example typo
- #3921 fix(controller): End DAG execution on deadline exceeded error. Fixes #3905
- #3924 docs: Update workflow-controller-configmap.yaml with SSL options
- #3928 fix: Fix UI selection issues
- #3929 fix(server): Adds missing webhook permissions. Fixes #3927
- #3932 fix(swagger): Correct item type. Fixes #3926
- #3934 chore: Add stress testing code. Closes #2899
- #3935 docs: add Nikkei to user list
- #3938 feat(controller): Support different volume GC strategies. Fixes #3095
- #3940 chore: Fixed TestTemplateTimeoutDuration testcase
- #3945 fix(cli): Allow
argo version
withoutKUBECONFIG
. Fixes #3943 - #3946 feat(ui): Add
startedAt
andfinishedAt
variables to configurable links. Fixes #3898 - #3947 docs: Correct Java client project link
- #3949 feat(controller): Panic or error on mis-matched resource version
- #3950 fix: Fix children is not defined error
- #3957 fix(controller): use interpolated values for mutexes and semaphores. Fixes #3955
- #3963 fix(controller): Revert parameter value to
*string
. Fixes #3960 - #3965 feat(controller): Workflow-level
retryStrategy
/resubmit pending pods by default. Closes #3918 - #3967 feat(ui): Introduce modal DAG renderer. Fixes: #3595
- #3969 docs: Correct indentation to display correctly docs in the website
- #3972 fixed typo in docs
- #3975 fix(server): Removes minor XSS vulnerability. Fixes #3942
- #3978 build: Allow build with older
docker
. Fixes #3977 - #3979 fix: Create global scope before workflow-level realtime metrics
- #3985 fix: typo of argo server cli (#3984)
- #3986 fix: argo-cluster-role pvc get
- #3987 docs: Adding Stillwater Supercomputing
- #3988 fix: Consider WorkflowTemplate metadata during validation
- #3993 fix: Delete realtime metrics of running Workflows that are deleted
- #3995 fix(ui): Report errors when uploading files. Fixes #3994
- #3997 fix: Step and Task level timeout examples
- #3999 chore(executor): upgrade
kubectl
to 1.18. Closes #3996 - #4002 fix(controller): Script Output didn't set if template has RetryStrategy
- #4004 fix(controller): Revert
resubmitPendingPods
mistake. Fixes #4001 - #4006 fix(ui): Allow you to view timeline tab. Fixes #4005
- #4007 docs: Update pages to GA. Closes #4000
- #4008 docs: Add
buildkit
example. Closes #2325 - #4010 feat(artifacts): Allow HTTP artifact load to set request headers
- #4018 fix(ui): Correctly show pod events. Fixes #4016
- #4021 fix(ui): Do not save undefined namespace. Fixes #4019
- #4022 fix: Don't save label filter in local storage. Fixes #3966
- #4024 feat(controller): Use pod informer for performance.
- #4025 feat(controller): Write back workflow to informer to prevent conflict errors. Fixes #3719
- #4028 fix: Tolerate malformed workflows when retrying
- #4031 fix(ui): [Snyk] Fix for 1 vulnerabilities
- #4032 docs(Windows): Add more information on artifacts and limitations
- #4037 Add Data4Risk to users list
- #4040 fix(artifacts): Make artifacts cross-platform compatible. Fixes #3682
- #4041 remove the space
- #4043 fix(ui): Tiny modal DAG tweaks. Fixes #4039
- #4054 docs: Update release guide
- #4060 feat: Add MaxAge to memoization
- #4063 fix(controller): Correct the order merging the fields in WorkflowTemplateRef scenario. Fixes #4044
- #4064 fix: Improve better handling on Pod deletion scenario
- #4067 fix: Fix unintended inf recursion
- #4068 feat(executor): Decompress zip file input artifacts. Fixes #3585
- #4070 docs: Update SSO docs to clarify the user must create K8S secrets for holding the OAuth2 values
- #4073 chore: Fix merge error
- #4075 fix(server): Optional timestamp inclusion when retrieving workflow logs. Closes #4033
- #4083 fix(executor): windows output artifacts. Fixes #4082
- #4089 feat(controller): Sum resources duration for DAGs and steps
- #4091 feat(controller): Estimate workflow & node duration. Closes #2717
- #4094 feat(ui): Improve error recovery. Closes #4087
- #4095 feat(server): Make Argo Server issue own JWE for SSO. Fixes #4027 & #3873
- #4097 fix(executor): race condition in docker kill. Fixes #3053
- #4099 fix(ui): Ignore referenced nodes that don't exist in UI. Fixes #4079
- #4100 fix(cli): Reinstate --gloglevel flag. Fixes #4093
- #4103 fix(controller): Process workflows at least once every 20m
- #4104 fix(controller): Treat annotation and conditions changes as significant
- #4105 fix(cli): Add retry to retry ;). Fixes #4101
- #4109 fix(ui): Render children of workflow-level onExit. Fixes #3754
- #4110 docs: Added PDOK to USERS.md
- #4111 chore(build): Use build matrix and cache. Fixes #4062
- #4112 fix(server): argo-server-role to allow submitting cronworkflows from UI
- #4114 refactor: Refactor Synchronization code
- #4115 fix(ui): No longer redirect to
undefined
namespace. See #4084 - #4116 Adding reserved.ai to users list
- #4118 fix(cli): Add retry to retry, again. Fixes #4101
- #4119 fix(ui): Show "waiting for data" while waiting for pod logs. Fixes #3916
- #4122 docs: Include minimal reference for templating mechanism
- #4127 chore(build): Pre-push temporary manifest with linux/amd64. Fixes #4062
- #4132 fix(controller): Fix throttler. Fixes #1554 and #4081
- #4133 fix(controller): Changing DeletePropagation to background in TTL Controller and Argo CLI. Fixes #4106
- #4137 docs: add Mixpanel to argo/USERS.md
- #4139 fix(docs): Update k3d command for running argo locally
- #4142 fix(cli): add validate args in delete command
- #4146 test: Fix retry (attempt 3). Fixes #4101
- #4147 docs: Add Onepanel to USERS.md
- #4148 fix(controller): Correct unstructured API version. Caused by #3719
- #4149 fix(executor): Remove IsTransientErr check for ExponentialBackoff. Fixes #4144
- #4150 fix(ui): handle logging disconnects gracefully. Fixes #4117
- #4155 chore: Deprecate unused RuntimeResolution field
- #4156 fix: Provide helpful hint when creating workflow with existing name
- #4161 chore: Update Github issue templates
- #4166 feat(cli): Print 'no resource msg' when
argo list/delete
returns zero workflows - #4172 fix: Ensure CronWorkflows are persisted once per operation
- #4175 docs: Add map-reduce example. Closes #4165
- #4178 refactor: upgrade argo-ui library version
- #4184 feat: Controller/server runAsNonRoot. Closes #1824
- #4194 feat(controller): Track N/M progress. See #2717
- #4195 fix: Support workflowDefaults on TTLController for WorkflowTemplateRef Fixes #4188
- #4196 fix(executor): Update executor retry config for ExponentialBackoff.
- #4198 feat(server): Enable RBAC for SSO. Closes #3525
- #4202 fix(controller): Support int64 for param value. Fixes #4169
- #4205 chore(build): Update
make codegen
to only run on changes - #4207 fix(controller): reduce withItem/withParams memory usage. Fixes #3907
- #4213 fix(controller): Apply Workflow default on normal workflow scenario Fixes #4208
- #4215 fix(controller): Increase the number of cron workflow workers from 2 to 8. Fixes #4211
- #4217 fix: Revert "chore: try out pre-pushing linux/amd64 images and updating ma… Fixes #4216
- #4218 fix(controller): Prevent tasks with names staring with a digit to use
depends
. Fixes #4199 - #4219 chore(build): re-add #4127 and steps to verify image pull
- #4220 chore: Enahnce logging around pod failures
- #4224 fix(controller): Make the delay before the first workflow reconciliation configurable. Fixes #4107
- #4225 feat(controller): Reduce reconcilliation time by exiting earlier.
- #4226 chore(api): Update swagger.json with Kubernetes v1.17.5 types. Closes #4204
- #4227 docs: Reinstate swagger.md so docs can build.
- #4228 fix(Makefile): removed deprecated k3d cmds. Fixes #4206
- #4237 docs: Correct formatting of variables example YAML
- #4241 fix(ui): Fix bugs with DAG view. Fixes #4232 & #4236
- #4243 fix(controller): Check the correct object for Cronworkflow reapply error log
- #4248 fix(ui): Revert bad part of commit
- #4251 docs: Add docs for
securityContext
andemptyDir
. Closes #2239 - #4253 feat(executor): Wait for termination using pod watch for PNS and K8SAPI executors.
- #4255 feat(ui): Add a nudge for users who have not set their security context. Closes #4233
- #4258 docs: daemon example: clarify prefix usage
- #4259 docs: Minor formatting fixes
- #4261 docs: correct a typo
- #4263 fix(controller): Synchronization lock didn't release on DAG call flow Fixes #4046
- #4268 fix: Add WorkflowEventBinding to aggregated roles
- #4269 chore(controller): N/M progress fixes
- #4274 feat(cli): Add the field selector option for delete command
- #4276 test: Tidy up E2E tests
- #4277 fix(controller): Fix argo retry with PVCs. Fixes #4275
- #4278 fix(controller): Fix cron-workflow re-apply error.
- #4279 fix(executor): Fix the artifacts option in k8sapi and PNS executor Fixes#4244
- #4280 fix(ui): Ignore missing nodes in DAG. Fixes #4232
- #4283 fix: TestMutexInDAG failure in master
- #4284 docs: Update releasing guide
- #4287 fix: WorkflowEventBinding typo in aggregated roles
- #4292 fix(cli): Return exit code on Argo template lint command
- #4294 fix(controller): Patch rather than update cron workflows.
- #4295 docs: Add diagram
- #4298 feat(ui): Submit resources without namespace to current namespace. Fixes #4293
- #4299 docs: Docker TLS env config
- #4300 fix(cli): Fix panic on argo template lint without argument
- #4303 fix(ui): Resolve undefined namespace correctly
- #4305 fix(ci): add non-root user to Dockerfile
- #4306 Update argo-server.md
- #4307 refactor: De-couple config
- #4309 fix(executor): Retrieve containerId from cri-containerd /proc/{pid}/cgroup. Fixes #4302
- #4310 feat(controller): Allow whitespace in variable subsitution. Fixes #4286
- #4311 fix(build): Some minor Makefile fixes
- #4314 feat(controller): add enum support in parameters (fixes #4192)
- #4315 build: Refactor
codegen
to make target dependencies clearer - #4316 fix: merge artifact arguments from workflow template. Fixes #4296
- #4320 chore(controller): Refactor the CronWorkflow schedule logic with sync.Map
- #4322 docs: Update USERS.md
- #4323 docs: Ye olde whitespace fix
- #4329 docs: Fix incorrect link to static code analysis document
- #4332 fix(ui): correct typing errors in cron-workflow-details
- #4333 fix(ui): correct typing errors in workflows-toolbar
- #4334 fix(ui): correct typing errors in events-panel
- #4335 docs: Fix typos (/priviledged/privileged/)
- #4340 fix(executor): Increase pod patch backoff. Fixes #4339
- #4342 [Snyk] Security upgrade chart.js from 2.9.3 to 2.9.4
- #4346 docs: Update pvc example with correct resource indentation. Fixes #4330
- #4350 fix(server): Download artifacts from UI. Fixes #4338
- #4352 fix(controller): Only warn if cron job missing. Fixes #4351
- #4357 docs: Fix a copy-paste typo in the docs
- #4358 fix(validate): Local parameters should be validated locally. Fixes #4326
- #4361 Use '[[:blank:]]' instead of ' ' to match spaces/tabs
- #4363 build: Remove
vendor
at end ofcodegen
- #4373 fix(ui): correct typing errors in workflow-drawer
- #4375 chore: match code comments to the generated documentation
- #4376 fix: Fix intstr nil dereference
- #4378 fix(ui): Reconnect to DAG. Fixes #4301
- #4379 fix: Use DeletionHandlingMetaNamespaceKeyFunc in cron controller
- #4380 fix(controller): Enqueue the front workflow if semaphore lock is available
- #4382 feat(ui): Sign-post examples and the catalog. Fixes #4360
- #4383 fix(controller): Design-out event errors. Fixes #4364
- #4389 fix(ui): correct log viewer only showing first log line
- #4391 docs: Fix typo in events.md
- #4396 fix(controller): Fix estimation of duration for DAGs. Fixes #4386
- #4397 fix(ui): Ignore running workflows in report. Fixes #4387
- #4399 fix: Use correct template when processing metrics
- #4401 fix(controller): Tolerate int64 parameters. Fixes #4359
- #4404 ci: Split e2e tests to make them faster
- #4409 fix(executor): artifact chmod should only if err != nil
- #4411 fix: Ensure resourceDuration variables in metrics are always in seconds
- #4412 fix(server): Only try to use auth-mode if enabled. Fixes #4400
- #4413 fix(controller): Trigger no of workflows based on available lock
- #4415 docs: Add Acquia to USERS.md
- #4416 feat(cli): Support ARGO_HTTP1 for HTTP/1 CLI requests. Fixes #4394
- #4417 fix: Assume controller is in UTC when calculating NextScheduledRuntime
- #4420 fix(server): Add x-frame config option. Fixes #3397
- #4421 fix(controller): When semaphore lock config gets updated, enqueue the waiting workflows
- #4424 fix(docs): update link to container spec
- #4429 docs: Specify that CronWorkflow timezone uses IANA standard. Fixes #4290
- #4436 ci: Speed up e2e tests by 25%
- #4437 chore: Update pull request template
- #4440 fix: Resolve inconsistent CronWorkflow persistence
- #4446 feat(ui): Visualisation of the suspended CronWorkflows in the list. Fixes #4264
- #4449 feat(cli): Add the --no-utf8 parameter to
argo get
command to support ascii only terminals - #4450 feat(server): Add WorkflowLogs API. See #4394
- #4451 fix: Fix validation with Argo Variable in activeDeadlineSeconds
- #4452 fix: Return copy of stored templates to ensure they are not modified
- #4453 chore(controller): Refactor and tidy up
- #4456 docs: Add DDEV to USERS.md
- #4457 feat: Add resume/suspend endpoints for CronWorkflows
- #4459 chore(docs): Fix docgen
- #4461 fix: localhost not being resolved. Resolves #4460, #3564
- #4465 refactor: Simplify grpcutil.TranslateError
- #4468 refactor(server): Use patch instead of update to resume/suspend
Contributors
- Aayush Rangwala
- Alex Capras
- Alex Collins
- Alexander Matyushentsev
- Amim Knabben
- Ang Gao
- Antoine Dao
- Bailey Hayes
- Basanth Jenu H B
- Bikramdeep Singh
- Byungjin Park (BJ)
- Douglas Lehr
- Elli Ludwigson
- Elvis Jakupovic
- Fischer Jemison
- Florian
- Floris Van den Abeele
- Francesco Murdaca
- Greg Roodt
- Huan-Cheng Chang
- Hussein Awala
- Ids van der Molen
- Igor Stepura
- InvictusMB
- James Laverack
- Juan C. Müller
- Justen Walker
- Lénaïc Huard
- Markus Lippert
- Martin Suchanek
- Matt Campbell
- Michael Crenshaw
- Michael Ruoss
- Michael Weibel
- Michal Cwienczek
- Mike Chau
- Naisisor
- Nicwalle
- Niklas Vest
- Nirav Patel
- Noah Hanjun Lee
- Noj Vek
- Pavel Čižinský
- Pranaye Karnati
- Remington Breeze
- Rush Tehrani
- Saravanan Balasubramanian
- Simon Behar
- Snyk bot
- Takahiro Tsuruda
- Theodore Omtzigt
- Tomáš Coufal
- Wouter Remijn
- Yuan Tang
- boundless-thread
- conanoc
- dherman
- duluong
- ivancili
- jacky
- omerfsen
- saranyaeu2987
- tianfeiyu
- tomgoren
- zhengchenyu