summaryrefslogtreecommitdiff
path: root/docs/install/reference.md
blob: 82952c3a637234825963f4dd47316267187d96b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Configuration and command line reference

The `argocd-image-updater` provides some command line parameters to control the
behaviour of its operations. The following is a list of available parameters
and their description.

## Command "version"

### Synopsis

`argocd-image-updater version`

### Description

Prints out the version of the binary and exits.

## Command "run"

### Synopsis

`argocd-image-updater run [flags]`

### Description

Runs the Argo CD Image Updater, possibly in an endless loop.

### Flags

**--argocd-auth-token *token* **

Use *token* for authenticating to the Argo CD API. This token must be a base64
encoded JWT, as generated by Argo CD.

The token can also be set using the *ARGOCD_TOKEN* environment variable.

**--argocd-grpc-web**

If this flag is given, use the gRPC-web protocol to connect to the Argo CD API.
This can be useful if your Argo CD API is behind a proxy that does not support
HTTP/2, or only accept HTTP/2 on the front end.

Can also be set using the *ARGOCD_GRPC_WEB* environment variable.

**--argocd-insecure**

If specified, the certificate of the Argo CD API server is not verified. Useful
if you are using a self-signed TLS certificate for the Argo CD API server. As
the name implies, this is an *insecure* setting and should not be used for
production systems.

Can also be set using the *ARGOCD_INSECURE* environment variable.

**--argocd-plaintext**

If specified, use an unencrypted HTTP connection to the ArgoCD API instead of
TLS.

Can also be set using the *ARGOCD_PLAINTEXT* environment variable.

**--argocd-server-addr *server address* **

Connect to the Argo CD API server at *server address*. *server address* must
be a valid IP address or DNS host name, optionally with a port specification
delimited using a colon, i.e. *10.23.42.5* or *argocd-server.argocd:8080*.
If no port given, the protocol default will be used: Port 80 for plaintext
connections, and port 443 for TLS connections.

Can also be set using the *ARGOCD_SERVER* environment variable.

**--disable-kubernetes**

If running locally, and you do not have a working connection to any Kubernetes
cluster, this flag will prevent Argo CD Image Updater from creating a client
to interact with Kubernetes. When Kubernetes access is disabled, pull secrets
for images can only be specified from an environment variable.

**--dry-run**

If this flag is set, Argo CD Image Updater won't actually perform any changes
to workloads it found in need for upgrade.

**--health-port *port* **

Specifies the local port to bind the health server to. The health server is
used to provide health and readiness probes when running as K8s workload.
Use value *0* for *port* to disable launching the health server.

**--interval *duration* **

Sets the interval for checking whether there are new images available to
*duration*. *duration* must be given as a valid duration identifier with
a unit suffix, i.e. `2m` for 2 minutes or `30s` for 30 seconds. If no unit
is given, milliseconds will be assumed. If set to `0`, ArgoCD Image Updater
will exit after the first run, effectively disabling the interval. Default
value is `2m0s`.

**--kubeconfig *path* **

Specify the Kubernetes client config file to use when running outside a
Kubernetes cluster, i.e. `~/.kube/config`. When specified, Argo CD Image
Updater will use the currently active context in the configuration to connect
to the Kubernetes cluster.

**--loglevel *level* **

Set the log level to *level*, where *level* can be one of `trace`, `debug`,
`info`, `warn` or `error`.

Can also be set using the *IMAGE_UPDATER_LOGLEVEL* environment variable.

**--match-application-name *pattern* **

Only process applications that have a valid annotation and matches the given
*pattern*. The *pattern* is a simple glob pattern and supports file system
style wildcards, i.e. `*-staging` would match any application name with a
suffix of `-staging`. Can be specified multiple times to define more than
one pattern, from which at least one has to match.

**--match-application-label *selector* **

Only process applications that have a valid annotation and match the given
*label* selector. The *selector* is a string that matches the standard kubernetes label
[label selector syntax][]. For e.g, `custom.label/name=xyz` would be a valid label
that can be supplied through this parameter. Any applications carrying this
exact label will be considered as candidates for image updates. This parameter
currently does not support pattern matching on label values (e.g `customer.label/name=*-staging`).
You can specify equality, inequality, or set based requirements or a combination.
For e.g., `app,app!=foo,custom.label/name=xyz,customer in (a,b,c)`

**--max-concurrency *number* **

Process a maximum of *number* applications concurrently. To disable concurrent
application processing, specify a number of `1`.

**--once**

A shortcut for specifying `--interval 0 --health-port 0`. If given,
Argo CD Image Updater will exit after the first update cycle.

**--registries-conf-path *path* **

Load the registry configuration from file at *path*. Defaults to the path
`/app/config/registries.conf`. If no configuration should be loaded, and the
default configuration should be used instead, specify the empty string, i.e.
`--registries-conf-path=""`.

[label selector syntax]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors