Environment Variables¶
This document outlines the set of environment variables that can be used to customize the behavior at different levels.
⚠️ Environment variables are typically added to test out experimental features and should not be used by most users. Environment variables may be removed at any time.
Controller¶
Name | Type | Default | Description |
---|---|---|---|
ARGO_AGENT_TASK_WORKERS |
int |
16 |
The number of task workers for the agent pod. |
ALL_POD_CHANGES_SIGNIFICANT |
bool |
false |
Whether to consider all pod changes as significant during pod reconciliation. |
ALWAYS_OFFLOAD_NODE_STATUS |
bool |
false |
Whether to always offload the node status. |
ARCHIVED_WORKFLOW_GC_PERIOD |
time.Duration |
24h |
The periodicity for GC of archived workflows. |
ARGO_PPROF |
bool |
false |
Enable pprof endpoints |
ARGO_PROGRESS_PATCH_TICK_DURATION |
time.Duration |
1m |
How often self reported progress is patched into the pod annotations which means how long it takes until the controller picks up the progress change. Set to 0 to disable self reporting progress. |
ARGO_PROGRESS_FILE_TICK_DURATION |
time.Duration |
3s |
How often the progress file is read by the executor. Set to 0 to disable self reporting progress. |
ARGO_REMOVE_PVC_PROTECTION_FINALIZER |
bool |
true |
Remove the kubernetes.io/pvc-protection finalizer from persistent volume claims (PVC) after marking PVCs created for the workflow for deletion, so deleted is not blocked until the pods are deleted. #6629 |
ARGO_TRACE |
string |
`` | Whether to enable tracing statements in Argo components. |
ARGO_AGENT_PATCH_RATE |
time.Duration |
DEFAULT_REQUEUE_TIME |
Rate that the Argo Agent will patch the workflow task-set. |
ARGO_AGENT_CPU_LIMIT |
resource.Quantity |
100m |
CPU resource limit for the agent. |
ARGO_AGENT_MEMORY_LIMIT |
resource.Quantity |
256m |
Memory resource limit for the agent. |
BUBBLE_ENTRY_TEMPLATE_ERR |
bool |
true |
Whether to bubble up template errors to workflow. |
CACHE_GC_PERIOD |
time.Duration |
0s |
How often to perform memoization cache GC, which is disabled by default and can be enabled by providing a non-zero duration. |
CACHE_GC_AFTER_NOT_HIT_DURATION |
time.Duration |
30s |
When a memoization cache has not been hit after this duration, it will be deleted. |
CRON_SYNC_PERIOD |
time.Duration |
10s |
How often to sync cron workflows. |
DEFAULT_REQUEUE_TIME |
time.Duration |
10s |
The re-queue time for the rate limiter of the workflow queue. |
EXPRESSION_TEMPLATES |
bool |
true |
Escape hatch to disable expression templates. |
EVENT_AGGREGATION_WITH_ANNOTATIONS |
bool |
false |
Whether event annotations will be used when aggregating events. |
GRPC_MESSAGE_SIZE |
string |
Use different GRPC Max message size for Argo server deployment (supporting huge workflows). | |
GZIP_IMPLEMENTATION |
string |
PGZip |
The implementation of compression/decompression. Currently only "PGZip " and "GZip " are supported. |
INFORMER_WRITE_BACK |
bool |
true |
Whether to write back to informer instead of catching up. |
HEALTHZ_AGE |
time.Duration |
5m |
How old a un-reconciled workflow is to report unhealthy. |
HEALTHZ_LIST_LIMIT |
int |
200 |
The maximum number of responses to return for a list call on workflows for liveness check. |
INDEX_WORKFLOW_SEMAPHORE_KEYS |
bool |
true |
Whether or not to index semaphores. |
LEADER_ELECTION_IDENTITY |
string |
Controller's metadata.name |
The ID used for workflow controllers to elect a leader. |
LEADER_ELECTION_DISABLE |
bool |
false |
Whether leader election should be disabled. |
LEADER_ELECTION_LEASE_DURATION |
time.Duration |
15s |
The duration that non-leader candidates will wait to force acquire leadership. |
LEADER_ELECTION_RENEW_DEADLINE |
time.Duration |
10s |
The duration that the acting master will retry refreshing leadership before giving up. |
LEADER_ELECTION_RETRY_PERIOD |
time.Duration |
5s |
The duration that the leader election clients should wait between tries of actions. |
MAX_OPERATION_TIME |
time.Duration |
30s |
The maximum time a workflow operation is allowed to run for before re-queuing the workflow onto the work queue. |
OFFLOAD_NODE_STATUS_TTL |
time.Duration |
5m |
The TTL to delete the offloaded node status. Currently only used for testing. |
POD_NAMES |
string |
v2 |
Whether to have pod names contain the template name (v2) or be the node id (v1) - should be set the same for Argo Server. |
RECENTLY_STARTED_POD_DURATION |
time.Duration |
10s |
The duration of a pod before the pod is considered to be recently started. |
RETRY_BACKOFF_DURATION |
time.Duration |
10ms |
The retry back-off duration when retrying API calls. |
RETRY_BACKOFF_FACTOR |
float |
2.0 |
The retry back-off factor when retrying API calls. |
RETRY_BACKOFF_STEPS |
int |
5 |
The retry back-off steps when retrying API calls. |
RETRY_HOST_NAME_LABEL_KEY |
string |
kubernetes.io/hostname |
The label key for host name used when retrying templates. |
TRANSIENT_ERROR_PATTERN |
string |
"" |
The regular expression that represents additional patterns for transient errors. |
WF_DEL_PROPAGATION_POLICY |
string |
"" |
The deletion propagation policy for workflows. |
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 |
CLI parameters of the argo-server
and workflow-controller
can be specified as environment variables with the ARGO_
prefix. For example:
workflow-controller --managed-namespace=argo
Can be expressed as:
ARGO_MANAGED_NAMESPACE=argo workflow-controller
You can set environment variable for the argo-server deployment, for example:
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-server
spec:
selector:
matchLabels:
app: argo-server
template:
metadata:
labels:
app: argo-server
spec:
containers:
- args:
- server
image: argoproj/argocli:latest
name: argo-server
env:
- name: GRPC_MESSAGE_SIZE
value: "209715200"
ports:
..
...
....
You can set the environment variables for controller in controller's container spec like the following:
apiVersion: apps/v1
kind: Deployment
metadata:
name: workflow-controller
spec:
selector:
matchLabels:
app: workflow-controller
template:
metadata:
labels:
app: workflow-controller
spec:
containers:
- env:
- name: WORKFLOW_GC_PERIOD
value: 30s
Executor¶
Name | Type | Default | Description |
---|---|---|---|
EXECUTOR_RETRY_BACKOFF_DURATION |
time.Duration |
1s |
The retry back-off duration when the workflow executor performs retries. |
EXECUTOR_RETRY_BACKOFF_FACTOR |
float |
1.6 |
The retry back-off factor when the workflow executor performs retries. |
EXECUTOR_RETRY_BACKOFF_JITTER |
float |
0.5 |
The retry back-off jitter when the workflow executor performs retries. |
EXECUTOR_RETRY_BACKOFF_STEPS |
int |
5 |
The retry back-off steps when the workflow executor performs retries. |
REMOVE_LOCAL_ART_PATH |
bool |
false |
Whether to remove local artifacts. |
RESOURCE_STATE_CHECK_INTERVAL |
time.Duration |
5s |
The time interval between resource status checks against the specified success and failure conditions. |
WAIT_CONTAINER_STATUS_CHECK_INTERVAL |
time.Duration |
5s |
The time interval for wait container to check whether the containers have completed. |
You can set the environment variables for executor by customizing executor container's environment variables in your controller's config-map like the following:
apiVersion: v1
kind: ConfigMap
metadata:
name: workflow-controller-configmap
data:
config: |
executor:
env:
- name: RESOURCE_STATE_CHECK_INTERVAL
value: 3s
Argo Server¶
Name | Type | Default | Description |
---|---|---|---|
FIRST_TIME_USER_MODAL |
bool |
true |
Show this modal. |
FEEDBACK_MODAL |
bool |
true |
Show this modal. |
NEW_VERSION_MODAL |
bool |
true |
Show this modal. |
POD_NAMES |
string |
v2 |
Whether to have pod names contain the template name (v2) or be the node id (v1) - should be set the same for Controller |