|
| 1 | +# ArgoCD Agent Principal |
| 2 | + |
| 3 | +This Helm chart installs the ArgoCD Agent Principal component, which is part of the ArgoCD Agent system that enables multi-cluster application deployment and management. |
| 4 | + |
| 5 | +## Prerequisites |
| 6 | + |
| 7 | +- Kubernetes 1.19+ |
| 8 | +- Helm 3.2+ |
| 9 | +- ArgoCD installed in the cluster |
| 10 | +- Redis instance for agent communication |
| 11 | + |
| 12 | +## Installing the Chart |
| 13 | + |
| 14 | +To install the chart with the release name `argocd-agent-principal`: |
| 15 | + |
| 16 | +```bash |
| 17 | +helm install argocd-agent-principal . -n argocd |
| 18 | +``` |
| 19 | + |
| 20 | +To install with custom values: |
| 21 | + |
| 22 | +```bash |
| 23 | +helm install argocd-agent-principal . -n argocd -f values.yaml |
| 24 | +``` |
| 25 | + |
| 26 | +## Uninstalling the Chart |
| 27 | + |
| 28 | +To uninstall/delete the `argocd-agent-principal` deployment: |
| 29 | + |
| 30 | +```bash |
| 31 | +helm uninstall argocd-agent-principal -n argocd |
| 32 | +``` |
| 33 | + |
| 34 | +## Configuration |
| 35 | + |
| 36 | +The following table lists the configurable parameters of the ArgoCD Agent Principal chart and their default values. |
| 37 | + |
| 38 | +### Basic Configuration |
| 39 | + |
| 40 | +| Parameter | Description | Default | |
| 41 | +|-----------|-------------|---------| |
| 42 | +| `namespace` | Target namespace for deployment | `argocd` | |
| 43 | +| `replicaCount` | Number of replicas | `1` | |
| 44 | + |
| 45 | +### Image Configuration |
| 46 | + |
| 47 | +| Parameter | Description | Default | |
| 48 | +|-----------|-------------|---------| |
| 49 | +| `image.repository` | Image repository | `ghcr.io/argoproj-labs/argocd-agent/argocd-agent` | |
| 50 | +| `image.tag` | Image tag | `"d7ee8580"` | |
| 51 | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | |
| 52 | + |
| 53 | +### Resource Configuration |
| 54 | + |
| 55 | +| Parameter | Description | Default | |
| 56 | +|-----------|-------------|---------| |
| 57 | +| `resources.limits.cpu` | CPU limit | `2` | |
| 58 | +| `resources.limits.memory` | Memory limit | `4Gi` | |
| 59 | +| `resources.requests.cpu` | CPU request | `2` | |
| 60 | +| `resources.requests.memory` | Memory request | `4Gi` | |
| 61 | + |
| 62 | +### Service Configuration |
| 63 | + |
| 64 | +| Parameter | Description | Default | |
| 65 | +|-----------|-------------|---------| |
| 66 | +| `service.type` | Service type | `LoadBalancer` | |
| 67 | +| `service.port` | Service port | `443` | |
| 68 | +| `service.targetPort` | Target port | `8443` | |
| 69 | +| `service.annotations` | Service annotations | `networking.gke.io/load-balancer-type: "Internal"` | |
| 70 | + |
| 71 | +### Metrics Service |
| 72 | + |
| 73 | +| Parameter | Description | Default | |
| 74 | +|-----------|-------------|---------| |
| 75 | +| `metricsService.enabled` | Enable metrics service | `true` | |
| 76 | +| `metricsService.type` | Metrics service type | `ClusterIP` | |
| 77 | +| `metricsService.port` | Metrics service port | `8000` | |
| 78 | + |
| 79 | +### Health Check Service |
| 80 | + |
| 81 | +| Parameter | Description | Default | |
| 82 | +|-----------|-------------|---------| |
| 83 | +| `healthzService.enabled` | Enable health check service | `true` | |
| 84 | +| `healthzService.type` | Health check service type | `ClusterIP` | |
| 85 | +| `healthzService.port` | Health check service port | `8003` | |
| 86 | + |
| 87 | +### Principal Configuration |
| 88 | + |
| 89 | +| Parameter | Description | Default | |
| 90 | +|-----------|-------------|---------| |
| 91 | +| `principal.listen.port` | gRPC server listen port | `8443` | |
| 92 | +| `principal.listen.host` | gRPC server listen host | `""` (all interfaces) | |
| 93 | +| `principal.log.level` | Log level (trace, debug, info, warn, error) | `info` | |
| 94 | +| `principal.log.format` | Log format (text, json) | `text` | |
| 95 | +| `principal.metrics.port` | Metrics server port | `8000` | |
| 96 | +| `principal.healthz.port` | Health check server port | `8003` | |
| 97 | +| `principal.namespace` | Principal operation namespace | `"argocd"` | |
| 98 | +| `principal.allowedNamespaces` | Allowed namespaces for agents | `"argocd,argocd-apps,default"` | |
| 99 | + |
| 100 | +### Namespace Management |
| 101 | + |
| 102 | +| Parameter | Description | Default | |
| 103 | +|-----------|-------------|---------| |
| 104 | +| `principal.namespaceCreate.enable` | Allow namespace creation | `true` | |
| 105 | +| `principal.namespaceCreate.pattern` | Namespace creation pattern | `"-agent"` | |
| 106 | +| `principal.namespaceCreate.labels` | Labels for created namespaces | `"managed-by=argocd-agent,environment=production"` | |
| 107 | + |
| 108 | +### TLS Configuration |
| 109 | + |
| 110 | +| Parameter | Description | Default | |
| 111 | +|-----------|-------------|---------| |
| 112 | +| `principal.tls.secretName` | TLS secret name | `"argocd-agent-principal-tls"` | |
| 113 | +| `principal.tls.server.allowGenerate` | Allow TLS cert generation | `false` | |
| 114 | +| `principal.tls.server.rootCaSecretName` | Root CA secret name | `"argocd-agent-ca"` | |
| 115 | +| `principal.tls.clientCert.require` | Require client certificates | `true` | |
| 116 | +| `principal.tls.clientCert.matchSubject` | Match subject to agent name | `true` | |
| 117 | + |
| 118 | +### Redis Configuration |
| 119 | + |
| 120 | +| Parameter | Description | Default | |
| 121 | +|-----------|-------------|---------| |
| 122 | +| `principal.redis.compressionType` | Redis compression type | `"gzip"` | |
| 123 | +| `principal.redis.server.address` | Redis server address | `"argocd-redis:6379"` | |
| 124 | + |
| 125 | +### Resource Proxy |
| 126 | + |
| 127 | +| Parameter | Description | Default | |
| 128 | +|-----------|-------------|---------| |
| 129 | +| `principal.redisProxy.enabled` | Enable Redis proxy | `true` | |
| 130 | +| `principal.resourceProxy.enabled` | Enable resource proxy | `true` | |
| 131 | +| `principal.resourceProxy.secretName` | Resource proxy TLS secret | `"argocd-agent-resource-proxy-tls"` | |
| 132 | +| `principal.resourceProxy.ca.secretName` | Resource proxy CA secret | `"argocd-agent-ca"` | |
| 133 | + |
| 134 | +### JWT Configuration |
| 135 | + |
| 136 | +| Parameter | Description | Default | |
| 137 | +|-----------|-------------|---------| |
| 138 | +| `principal.jwt.allowGenerate` | Allow JWT key generation | `false` | |
| 139 | +| `principal.jwt.secretName` | JWT secret name | `"argocd-agent-jwt"` | |
| 140 | + |
| 141 | +### Advanced Configuration |
| 142 | + |
| 143 | +| Parameter | Description | Default | |
| 144 | +|-----------|-------------|---------| |
| 145 | +| `principal.websocket.enable` | Enable WebSocket streaming | `false` | |
| 146 | +| `principal.keepAlive.minInterval` | Keep-alive minimum interval | `"0"` | |
| 147 | +| `principal.pprof.port` | pprof server port | `"0"` (disabled) | |
| 148 | + |
| 149 | +### Secrets Configuration |
| 150 | + |
| 151 | +| Parameter | Description | Default | |
| 152 | +|-----------|-------------|---------| |
| 153 | +| `secrets.ca.tls.create` | Create CA TLS secret | `true` | |
| 154 | +| `secrets.ca.tls.key` | CA private key (base64) | `<provided>` | |
| 155 | +| `secrets.ca.tls.crt` | CA certificate (base64) | `<provided>` | |
| 156 | + |
| 157 | +## Usage |
| 158 | + |
| 159 | +The principal component should be installed in the management cluster where ArgoCD is running. It will coordinate with the agent components installed in remote clusters. |
0 commit comments