Skip to content

Commit 900738e

Browse files
authored
redhat-argocd-agent 0.5.3 (#2597)
1 parent b0c02df commit 900738e

22 files changed

+2126
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: v2
2+
name: redhat-argocd-agent
3+
description: RedHat Argo CD Agent for connecting managed clusters to a Principal
4+
type: application
5+
# chart version
6+
version: 0.5.3
7+
# applicaation version, ArgoCD Agent version
8+
appVersion: 0.5.3
9+
home: https://github.com/argoproj-labs/argocd-agent
10+
11+
icon: "https://raw.githubusercontent.com/redhat-developer/gitops-operator/refs/heads/master/docs/Red_Hat-OpenShift_GitOps-Standard-RGB.svg"
12+
13+
14+
sources:
15+
- https://github.com/argoproj-labs/argocd-agent
16+
keywords:
17+
- argocd
18+
- gitops
19+
- agent
20+
maintainers:
21+
- name: Argo Project Maintainers
22+
url: https://github.com/argoproj-labs/argocd-agent
23+
kubeVersion: ">=1.24.0-0"
24+
annotations:
25+
charts.openshift.io/name: "RedHat Argo CD Agent - Agent Component"
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# argocd-agent-agent
2+
3+
![Version: 0.5.3](https://img.shields.io/badge/Version-0.5.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.3](https://img.shields.io/badge/AppVersion-0.5.3-informational?style=flat-square)
4+
5+
RedHat Argo CD Agent for connecting managed clusters to a Principal
6+
7+
**Homepage:** <https://github.com/argoproj-labs/argocd-agent>
8+
9+
## Maintainers
10+
11+
| Name | Email | Url |
12+
| ---- | ------ | --- |
13+
| Argo Project Maintainers | | <https://github.com/argoproj-labs/argocd-agent> |
14+
15+
## Source Code
16+
17+
* <https://github.com/argoproj-labs/argocd-agent>
18+
19+
## Requirements
20+
21+
Kubernetes: `>=1.24.0-0`
22+
23+
## Values
24+
25+
| Key | Type | Default | Description |
26+
|-----|------|---------|-------------|
27+
| affinity | object | `{}` | Affinity rules for the agent Pod. |
28+
| agentMode | string | `"autonomous"` | Agent mode of operation. |
29+
| argoCdRedisPasswordKey | string | `"auth"` | ArgoCD Redis password key. |
30+
| argoCdRedisSecretName | string | `"argocd-redis"` | ArgoCD Redis password secret name. |
31+
| auth | string | `"mtls:any"` | Authentication mode for connecting to the principal. |
32+
| cacheRefreshInterval | string | `"10s"` | Cache refresh interval. |
33+
| enableCompression | bool | `false` | Whether to enable gRPC compression. |
34+
| enableResourceProxy | bool | `true` | Whether to enable resource proxy. |
35+
| enableWebSocket | bool | `false` | Whether to enable WebSocket connections. |
36+
| healthzPort | string | `"8002"` | Healthz server port exposed by the agent. |
37+
| image.pullPolicy | string | `"Always"` | Image pull policy for the agent container. |
38+
| image.repository | string | `"registry.redhat.io/openshift-gitops-1/argocd-agent-rhel8"` | Container image repository for the agent. |
39+
| image.tag | string | `"v1.19.0"` | Container image tag for the agent. |
40+
| keepAliveInterval | string | `"50s"` | Keep-alive interval for connections. |
41+
| logFormat | string | `"text"` | Log format for the agent (text or json). |
42+
| logLevel | string | `"info"` | Log level for the agent. |
43+
| metricsPort | string | `"8181"` | Metrics server port exposed by the agent. |
44+
| namespaceOverride | string | `""` | Override namespace to deploy the agent into. Leave empty to use the release namespace. |
45+
| nodeSelector | object | `{}` | Node selector for scheduling the agent Pod. |
46+
| podAnnotations | object | `{}` | Additional annotations to add to the agent Pod. |
47+
| podLabels | object | `{}` | Additional labels to add to the agent Pod. |
48+
| pprofPort | string | `"0"` | Port for pprof server (0 disables pprof). |
49+
| priorityClassName | string | `""` | PriorityClassName for the agent Pod. |
50+
| probes | object | `{"liveness":{"enabled":true,"failureThreshold":3,"httpGet":{"path":"/healthz","port":"healthz"},"initialDelaySeconds":10,"periodSeconds":10,"timeoutSeconds":2},"readiness":{"enabled":true,"failureThreshold":3,"httpGet":{"path":"/healthz","port":"healthz"},"initialDelaySeconds":5,"periodSeconds":10,"timeoutSeconds":2}}` | Liveness and readiness probe configuration. |
51+
| probes.liveness.enabled | bool | `true` | Enable the liveness probe. |
52+
| probes.liveness.failureThreshold | int | `3` | Failure threshold for liveness probe. |
53+
| probes.liveness.initialDelaySeconds | int | `10` | Initial delay before the first liveness probe. |
54+
| probes.liveness.periodSeconds | int | `10` | Frequency of liveness probes. |
55+
| probes.liveness.timeoutSeconds | int | `2` | Timeout for liveness probe. |
56+
| probes.readiness.enabled | bool | `true` | Enable the readiness probe. |
57+
| probes.readiness.failureThreshold | int | `3` | Failure threshold for readiness probe. |
58+
| probes.readiness.initialDelaySeconds | int | `5` | Initial delay before the first readiness probe. |
59+
| probes.readiness.periodSeconds | int | `10` | Frequency of readiness probes. |
60+
| probes.readiness.timeoutSeconds | int | `2` | Timeout for readiness probe. |
61+
| redisAddress | string | `"argocd-redis:6379"` | Redis address used by the agent. |
62+
| redisUsername | string | `""` | Redis username for authentication. |
63+
| replicaCount | int | `1` | Number of replicas for the agent Deployment. |
64+
| resources | object | `{"limits":{"cpu":"500m","memory":"512Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}` | Resource requests and limits for the agent Pod. |
65+
| server | string | `"principal.server.address.com"` | Principal server address (hostname or host:port). |
66+
| serverPort | string | `"443"` | Principal server port. |
67+
| service | object | `{"healthz":{"annotations":{},"port":8002,"targetPort":8002},"metrics":{"annotations":{},"port":8181,"targetPort":8181}}` | Service configuration for metrics and healthz endpoints. |
68+
| service.healthz.annotations | object | `{}` | Annotations to add to the healthz Service. |
69+
| service.healthz.port | int | `8002` | Service port for healthz. |
70+
| service.healthz.targetPort | int | `8002` | Target port for healthz. |
71+
| service.metrics.annotations | object | `{}` | Annotations to add to the metrics Service. |
72+
| service.metrics.port | int | `8181` | Service port for metrics. |
73+
| service.metrics.targetPort | int | `8181` | Target port for metrics. |
74+
| serviceAccount | object | `{"annotations":{},"create":true,"name":""}` | ServiceAccount configuration. |
75+
| serviceAccount.annotations | object | `{}` | Annotations to add to the ServiceAccount. |
76+
| serviceAccount.create | bool | `true` | Whether to create the ServiceAccount. |
77+
| serviceAccount.name | string | `""` | Name of the ServiceAccount to use. If empty, a name is generated. |
78+
| tests | object | `{"enabled":false,"image":"bitnamilegacy/kubectl","tag":"1.33.4"}` | Configuration for chart tests. |
79+
| tests.enabled | bool | `false` | By default, chart tests are disabled. |
80+
| tests.image | string | `"bitnamilegacy/kubectl"` | Test image. |
81+
| tests.tag | string | `"1.33.4"` | Test image tag. |
82+
| tlsClientCertPath | string | `""` | Path to the TLS client certificate. |
83+
| tlsClientInSecure | string | `"false"` | Whether to skip TLS verification for client connections. |
84+
| tlsClientKeyPath | string | `""` | Path to the TLS client key. |
85+
| tlsRootCAPath | string | `""` | Path to the TLS root CA certificate. |
86+
| tlsRootCASecretName | string | `"argocd-agent-ca"` | Name of the Secret containing root CA certificate. |
87+
| tlsSecretName | string | `"argocd-agent-client-tls"` | Name of the TLS Secret containing client cert/key for mTLS. |
88+
| tolerations | list | `[]` | Tolerations for the agent Pod. |
89+
| userPasswordSecretName | string | `"argocd-agent-agent-userpass"` | Name of the Secret containing agent username/password (if used). |
90+
91+
----------------------------------------------
92+
Autogenerated from chart metadata using [helm-docs v1.13.1](https://github.com/norwoodj/helm-docs/releases/v1.13.1)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
Thank you for installing {{ include "argocd-agent-agent.name" . }}!
2+
3+
Your agent has been deployed to the {{ include "argocd-agent-agent.namespace" . }} namespace.
4+
5+
Release: {{ .Release.Name }}
6+
Namespace: {{ include "argocd-agent-agent.namespace" . }}
7+
8+
Deployment
9+
----------
10+
- Name: {{ include "argocd-agent-agent.agentDeploymentName" . }}
11+
- Replicas: {{ .Values.replicaCount }}
12+
- Image: {{ .Values.image.repository }}:{{ .Values.image.tag }} (pullPolicy: {{ .Values.image.pullPolicy }})
13+
14+
Services
15+
--------
16+
- Metrics Service: {{ include "argocd-agent-agent.metricsServiceName" . }}
17+
- Port/TargetPort: {{ .Values.service.metrics.port }} / {{ .Values.service.metrics.targetPort }}
18+
- Healthz Service: {{ include "argocd-agent-agent.healthzServiceName" . }}
19+
- Port/TargetPort: {{ .Values.service.healthz.port }} / {{ .Values.service.healthz.targetPort }}
20+
21+
Quick checks
22+
------------
23+
1) Check Deployment rollout
24+
kubectl -n {{ include "argocd-agent-agent.namespace" . }} rollout status deploy/{{ include "argocd-agent-agent.agentDeploymentName" . }}
25+
26+
2) List Services
27+
kubectl -n {{ include "argocd-agent-agent.namespace" . }} get svc {{ include "argocd-agent-agent.metricsServiceName" . }} {{ include "argocd-agent-agent.healthzServiceName" . }}
28+
29+
3) Port-forward to Metrics and Healthz
30+
# Metrics
31+
kubectl -n {{ include "argocd-agent-agent.namespace" . }} port-forward deploy/{{ include "argocd-agent-agent.agentDeploymentName" . }} 127.0.0.1:{{ .Values.service.metrics.port }}:{{ .Values.service.metrics.targetPort }}
32+
# Healthz
33+
kubectl -n {{ include "argocd-agent-agent.namespace" . }} port-forward deploy/{{ include "argocd-agent-agent.agentDeploymentName" . }} 127.0.0.1:{{ .Values.service.healthz.port }}:{{ .Values.service.healthz.targetPort }}
34+
35+
4) Probe endpoints
36+
curl -sf http://127.0.0.1:{{ .Values.service.healthz.port }}/healthz || true
37+
curl -sf http://127.0.0.1:{{ .Values.service.metrics.port }}/metrics | head -n 20 || true
38+
39+
Configuration overview
40+
----------------------
41+
- Agent mode: {{ .Values.agentMode }}
42+
- Remote server: {{ .Values.server }}:{{ .Values.serverPort }}
43+
- Redis address: {{ .Values.redisAddress }}
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
{{/*
2+
Expand the name of the chart.
3+
*/}}
4+
{{- define "argocd-agent-agent.name" -}}
5+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
6+
{{- end }}
7+
8+
{{/*
9+
Create a default fully qualified app name.
10+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
11+
If release name contains chart name it will be used as a full name.
12+
*/}}
13+
{{- define "argocd-agent-agent.fullname" -}}
14+
{{- if .Values.fullnameOverride }}
15+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
16+
{{- else }}
17+
{{- $name := default .Chart.Name .Values.nameOverride }}
18+
{{- if contains $name .Release.Name }}
19+
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
20+
{{- else }}
21+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
22+
{{- end }}
23+
{{- end }}
24+
{{- end }}
25+
26+
{{/*
27+
Base name for Helm-created resources, derived from the release.
28+
*/}}
29+
{{- define "argocd-agent-agent.agentBaseName" -}}
30+
{{- if .Values.fullnameOverride }}
31+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
32+
{{- else }}
33+
{{- printf "%s-agent-helm" .Release.Name | trunc 63 | trimSuffix "-" }}
34+
{{- end }}
35+
{{- end }}
36+
37+
{{/*
38+
Helper to append a suffix to the resource base name.
39+
Usage: {{ include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "metrics") }}
40+
*/}}
41+
{{- define "argocd-agent-agent.resourceName" -}}
42+
{{- $root := .root -}}
43+
{{- $suffix := .suffix | default "" -}}
44+
{{- $base := include "argocd-agent-agent.agentBaseName" $root -}}
45+
{{- if $suffix }}
46+
{{- printf "%s-%s" $base $suffix | trunc 63 | trimSuffix "-" }}
47+
{{- else }}
48+
{{- $base }}
49+
{{- end }}
50+
{{- end }}
51+
52+
{{/*
53+
Name for the agent deployment.
54+
*/}}
55+
{{- define "argocd-agent-agent.agentDeploymentName" -}}
56+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "") }}
57+
{{- end }}
58+
59+
{{/*
60+
Common resource-specific helpers.
61+
*/}}
62+
{{- define "argocd-agent-agent.paramsConfigMapName" -}}
63+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "params") }}
64+
{{- end }}
65+
66+
{{- define "argocd-agent-agent.metricsServiceName" -}}
67+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "metrics") }}
68+
{{- end }}
69+
70+
{{- define "argocd-agent-agent.healthzServiceName" -}}
71+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "healthz") }}
72+
{{- end }}
73+
74+
{{- define "argocd-agent-agent.roleName" -}}
75+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "role") }}
76+
{{- end }}
77+
78+
{{- define "argocd-agent-agent.roleBindingName" -}}
79+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "rolebinding") }}
80+
{{- end }}
81+
82+
{{- define "argocd-agent-agent.clusterRoleName" -}}
83+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "clusterrole") }}
84+
{{- end }}
85+
86+
{{- define "argocd-agent-agent.clusterRoleBindingName" -}}
87+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "clusterrolebinding") }}
88+
{{- end }}
89+
90+
{{/*
91+
Name for resources used exclusively by Helm tests.
92+
*/}}
93+
{{- define "argocd-agent-agent.testResourceName" -}}
94+
{{- printf "%s-test" (include "argocd-agent-agent.agentBaseName" .) | trunc 63 | trimSuffix "-" }}
95+
{{- end }}
96+
97+
{{/*
98+
Create chart name and version as used by the chart label.
99+
*/}}
100+
{{- define "argocd-agent-agent.chart" -}}
101+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
102+
{{- end }}
103+
104+
{{/*
105+
Common labels
106+
*/}}
107+
{{- define "argocd-agent-agent.labels" -}}
108+
helm.sh/chart: {{ include "argocd-agent-agent.chart" . }}
109+
{{ include "argocd-agent-agent.selectorLabels" . }}
110+
{{- if .Chart.AppVersion }}
111+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
112+
{{- end }}
113+
app.kubernetes.io/managed-by: {{ .Release.Service }}
114+
{{- end }}
115+
116+
{{/*
117+
Selector labels
118+
*/}}
119+
{{- define "argocd-agent-agent.selectorLabels" -}}
120+
app.kubernetes.io/name: {{ include "argocd-agent-agent.name" . }}
121+
app.kubernetes.io/instance: {{ .Release.Name }}
122+
{{- end }}
123+
124+
{{/*
125+
Create the name of the service account to use
126+
*/}}
127+
{{- define "argocd-agent-agent.serviceAccountName" -}}
128+
{{- if .Values.serviceAccount.create }}
129+
{{- if .Values.serviceAccount.name }}
130+
{{- .Values.serviceAccount.name | trunc 63 | trimSuffix "-" }}
131+
{{- else }}
132+
{{- include "argocd-agent-agent.resourceName" (dict "root" . "suffix" "sa") }}
133+
{{- end }}
134+
{{- else }}
135+
{{- default "default" .Values.serviceAccount.name }}
136+
{{- end }}
137+
{{- end }}
138+
139+
140+
{{/*
141+
Expand the namespace of the release.
142+
*/}}
143+
{{- define "argocd-agent-agent.namespace" -}}
144+
{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
145+
{{- end }}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: argocd-agent-agent
6+
app.kubernetes.io/part-of: argocd-agent
7+
app.kubernetes.io/component: agent
8+
name: {{ include "argocd-agent-agent.clusterRoleName" . }}
9+
rules:
10+
- apiGroups:
11+
- ""
12+
resources:
13+
- namespaces
14+
verbs:
15+
- list
16+
- watch
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: argocd-agent-agent
6+
app.kubernetes.io/part-of: argocd-agent
7+
app.kubernetes.io/component: agent
8+
name: {{ include "argocd-agent-agent.clusterRoleBindingName" . }}
9+
roleRef:
10+
apiGroup: rbac.authorization.k8s.io
11+
kind: ClusterRole
12+
name: {{ include "argocd-agent-agent.clusterRoleName" . }}
13+
subjects:
14+
- kind: ServiceAccount
15+
name: {{ include "argocd-agent-agent.serviceAccountName" . }}
16+
namespace: {{ include "argocd-agent-agent.namespace" . }}

0 commit comments

Comments
 (0)