Skip to content

Commit 94faa6a

Browse files
authored
docs: Add notice of deprecation for userpass auth (#626)
Signed-off-by: jannfis <[email protected]>
1 parent 045ac64 commit 94faa6a

File tree

5 files changed

+46
-19
lines changed

5 files changed

+46
-19
lines changed

docs/configuration/agent/configuration.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ The recommended approach for production deployments is to use ConfigMap entries
6767
- **Default**: `""` (empty)
6868
- **Format**: `<method>:<configuration>`
6969
- **Valid Methods**:
70-
- `userpass:/path/to/creds/file` - Username/password authentication
71-
- `mtls:regex_pattern` - Mutual TLS authentication with agent ID extraction
72-
- **Example**: `"userpass:/app/config/creds/userpass.creds"`
70+
- `userpass:/path/to/creds/file` - Username/password authentication **[DEPRECATED - not suited for use outside development environments]**
71+
- `mtls:regex_pattern` - Mutual TLS authentication with agent ID extraction **(Recommended)**
72+
- **Example**: `"mtls:^CN=(.+)$"`
7373

7474
### TLS Configuration
7575

@@ -314,7 +314,7 @@ data:
314314
agent.mode: "autonomous"
315315
agent.namespace: "argocd"
316316
agent.log.level: "info"
317-
agent.creds: "userpass:/app/config/creds/userpass.creds"
317+
agent.creds: "mtls:^CN=(.+)$" # Use mTLS (recommended); userpass is deprecated
318318
agent.tls.client.insecure: "false"
319319
agent.tls.root-ca-secret-name: "argocd-agent-ca"
320320
agent.tls.secret-name: "argocd-agent-client-tls"

docs/configuration/agent/pki-certificates.md

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ The agent component uses certificates for two primary purposes:
1010
|----------------|---------|-------------|----------|
1111
| **CA Certificate** | Validates the principal's server certificate | `argocd-agent-ca` ||
1212
| **Client Certificate** | Authenticates the agent to the principal (mTLS) | `argocd-agent-client-tls` | ✅¹ |
13-
| **Authentication Credentials** | User/password authentication (alternative to mTLS) | `argocd-agent-agent-userpass` | ✅¹ |
13+
| **Authentication Credentials** | User/password authentication (alternative to mTLS) **[DEPRECATED]** | `argocd-agent-agent-userpass` | ✅¹ |
1414

1515
¹ Either client certificate (mTLS) or authentication credentials (userpass) is required, depending on the authentication method configured.
1616

17+
!!! warning "Deprecation Notice"
18+
The userpass authentication method is deprecated and not suited for use outside development environments. Use mTLS authentication for production deployments.
19+
1720
## Architecture Overview
1821

1922
```mermaid
@@ -51,13 +54,16 @@ graph TB
5154

5255
The agent supports two authentication methods:
5356

54-
### 1. UserPass Authentication (Default)
57+
### 1. UserPass Authentication (Default) [DEPRECATED]
58+
59+
!!! warning "Deprecation Notice"
60+
This authentication method is deprecated and not suited for use outside development environments. Use mTLS authentication for production deployments.
5561

5662
- **Agent** presents username/password credentials
5763
- **Simpler setup** but requires credential management
5864
- **Client certificate** still needed for TLS encryption (optional validation)
5965

60-
### 2. mTLS Authentication
66+
### 2. mTLS Authentication (Recommended)
6167

6268
- **Agent** presents a client certificate for authentication
6369
- **More secure** as no passwords are transmitted
@@ -384,7 +390,10 @@ kubectl create secret tls argocd-agent-client-tls \
384390
--context <workload-cluster-context>
385391
```
386392

387-
#### Step 4: Create Authentication Credentials (UserPass Method)
393+
#### Step 4: Create Authentication Credentials (UserPass Method) [DEPRECATED]
394+
395+
!!! warning "Deprecation Notice"
396+
The userpass authentication method is deprecated and not suited for use outside development environments. Use mTLS authentication for production deployments.
388397

389398
If using userpass authentication, create the credentials secret:
390399

@@ -428,7 +437,10 @@ data:
428437
tls.key: <base64-encoded-client-private-key>
429438
```
430439

431-
#### Authentication Credentials Secret (`argocd-agent-agent-userpass`)
440+
#### Authentication Credentials Secret (`argocd-agent-agent-userpass`) [DEPRECATED]
441+
442+
!!! warning "Deprecation Notice"
443+
The userpass authentication method is deprecated and not suited for use outside development environments.
432444

433445
```yaml
434446
apiVersion: v1
@@ -499,7 +511,10 @@ data:
499511

500512
## Authentication Methods Configuration
501513

502-
### UserPass Authentication
514+
### UserPass Authentication [DEPRECATED]
515+
516+
!!! warning "Deprecation Notice"
517+
The userpass authentication method is deprecated and not suited for use outside development environments. Use mTLS authentication for production deployments.
503518

504519
Configure the agent to use username/password authentication:
505520

@@ -562,13 +577,16 @@ argocd-agent agent \
562577

563578
### Authentication Security
564579

565-
**UserPass Authentication:**
580+
**UserPass Authentication [DEPRECATED]:**
581+
582+
!!! warning "Deprecation Notice"
583+
The userpass authentication method is deprecated and not suited for use outside development environments.
566584

567585
- Use strong, unique passwords for each agent
568586
- Rotate passwords regularly
569587
- Store passwords in encrypted secrets
570588

571-
**mTLS Authentication:**
589+
**mTLS Authentication (Recommended):**
572590

573591
- Use separate certificates for each agent
574592
- Implement certificate-based access control

docs/configuration/principal/configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,8 @@ The recommended approach for production deployments is to use ConfigMap entries
256256
- **Default**: `""` (empty)
257257
- **Format**: `<method>:<configuration>`
258258
- **Valid Methods**:
259-
- `userpass:/path/to/creds/file` - Username/password authentication
260-
- `mtls:regex_pattern` - Mutual TLS authentication with agent ID extraction
259+
- `userpass:/path/to/creds/file` - Username/password authentication **[DEPRECATED - not suited for use outside development environments]**
260+
- `mtls:regex_pattern` - Mutual TLS authentication with agent ID extraction **(Recommended)**
261261
- **Example**: `"mtls:CN=([^,]+)"`
262262

263263
### Logging and Debugging

docs/hack/quickstart.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
This is **not** a guide to set-up argocd-agent for a production environment. It is rather a guide to help you get going with contributing to and hacking on argocd-agent. This guide does not intend to provide pure copy & paste instructions. Instead, it will assume a little bit of willingness to hackery on your side, as well as some core knowledge about the underlying technologies (JWT, TLS, etc)
44

5+
!!! warning "Important - Deprecation Notice"
6+
This guide uses the userpass authentication method for simplicity in development environments. **The userpass authentication method is deprecated and not suited for use outside development environments.** For production deployments, use mTLS authentication instead.
7+
58
Please note that some resource names might be out-of-date (e.g. have changed names, or were removed and replaced by something else). If you notice something, please figure it out and submit a PR to this guide. Thanks!
69

710
If you want to use [Open Cluster Management (OCM)](https://open-cluster-management.io/)
@@ -106,7 +109,7 @@ Keep the `ca.crt` file, as you will need it for the installation of agents, too.
106109
Create the principal user password secret; replace `<PASSWORD>` with the password of your choice:
107110

108111
```shell
109-
kubectl create -n argocd secret generic argocd-agent-principal-userpass --from-literal=passwd='<PASSWORD>'
112+
kubectl create -n argocd secret generic argocd-agent-principal-userpass --from-literal=passwd='<PASSWORD>' # DEPRECATED: userpass auth not suited for production
110113
```
111114

112115
Now that the required secrets exist, it's time to apply the installation manifests and install the principal into the cluster:
@@ -149,7 +152,7 @@ we will use the `argocd` namespace to install all required resources into the cl
149152
Create the agent user password secret; replace `<CREDENTIALS>` with the credentials of your choice:
150153

151154
```shell
152-
kubectl create -n argocd secret generic argocd-agent-agent-userpass --from-literal=credentials='<CREDENTIALS>'
155+
kubectl create -n argocd secret generic argocd-agent-agent-userpass --from-literal=credentials='<CREDENTIALS>' # DEPRECATED: userpass auth not suited for production
153156
```
154157

155158
Now that the required secrets exist, it's time to apply the installation manifests and install the agent into the cluster:

docs/user-guide/adding-agents.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,10 @@ kubectl create namespace <agent-name> --context <control-plane-context>
125125

126126
### Option A: Using Kubernetes Manifests
127127

128-
1. **Create Authentication Secret**:
128+
1. **Create Authentication Secret** (for userpass - deprecated):
129+
130+
!!! warning "Deprecation Notice"
131+
The userpass authentication method is deprecated and not suited for use outside development environments. Use mTLS authentication for production deployments.
129132

130133
```bash
131134
kubectl create secret generic argocd-agent-agent-userpass \
@@ -196,12 +199,15 @@ data:
196199
197200
### Authentication Methods
198201
199-
**mTLS Authentication**:
202+
**mTLS Authentication (Recommended)**:
200203
```yaml
201204
agent.creds: "mtls:^CN=(.+)$" # Regex to extract agent ID from cert subject
202205
```
203206
204-
**UserPass Authentication** (deprecated):
207+
**UserPass Authentication [DEPRECATED]**:
208+
209+
!!! warning "Deprecation Notice"
210+
The userpass authentication method is deprecated and not suited for use outside development environments.
205211
206212
```yaml
207213
agent.creds: "userpass:/app/config/creds/userpass.creds"

0 commit comments

Comments
 (0)