|
1 | 1 | --- |
2 | 2 | layout: src/layouts/Default.astro |
3 | 3 | pubDate: 2025-09-15 |
4 | | -modDate: 2025-12-08 |
| 4 | +modDate: 2026-06-11 |
5 | 5 | navSection: Argo CD Instances |
6 | 6 | navTitle: Overview |
7 | 7 | title: Overview |
@@ -29,6 +29,24 @@ The [Kubernetes agent](/docs/kubernetes/targets/kubernetes-agent) and the [Kuber |
29 | 29 |
|
30 | 30 | ::: |
31 | 31 |
|
| 32 | +## Prerequisites |
| 33 | + |
| 34 | +The gateway makes three outgoing connections. Before installing, make sure all of them are reachable from inside your cluster: |
| 35 | + |
| 36 | +| Destination | Protocol | Port | |
| 37 | +| --- | --- | --- | |
| 38 | +| Octopus Server REST API | HTTPS | `443` | |
| 39 | +| Octopus Server gRPC endpoint | gRPC (HTTP/2) | `8443` by default | |
| 40 | +| Argo CD API server | gRPC (in-cluster) | Argo CD service port | |
| 41 | + |
| 42 | +:::div{.warning} |
| 43 | +If your Octopus Server sits behind a load balancer, proxy, or firewall, make sure the gRPC port (`8443` by default) is forwarded to Octopus Server and the proxy supports HTTP/2. Forwarding only HTTPS (`443`) is a common cause of installation failure, where the gateway registers successfully but never connects. See [Troubleshooting](/docs/argo-cd/troubleshooting#failed-to-connect-to-octopus) for details. |
| 44 | +::: |
| 45 | + |
| 46 | +:::div{.hint} |
| 47 | +The gateway holds long-lived gRPC streams and sends a keep-alive every 30 seconds by default. If a load balancer between the cluster and Octopus Server closes idle connections, set its idle timeout to comfortably exceed the keep-alive interval (`gateway.octopus.keepAlive.intervalSeconds`). |
| 48 | +::: |
| 49 | + |
32 | 50 | ## Installing the Octopus Argo CD Gateway |
33 | 51 |
|
34 | 52 | The gateway is installed using [Helm](https://helm.sh) via the [octopusdeploy/octopus-argocd-gateway-chart](https://hub.docker.com/r/octopusdeploy/octopus-argocd-gateway-chart) chart. |
@@ -206,61 +224,7 @@ The Octopus Argo CD gateway Helm chart follows [Semantic Versioning](https://sem |
206 | 224 |
|
207 | 225 | ## Troubleshooting |
208 | 226 |
|
209 | | -### Argo CD TLS Errors |
210 | | - |
211 | | -If your gateway is unable to connect to your Argo CD instance due to TLS errors it is likely due to the certificate that Argo CD is serving traffic with. |
212 | | - |
213 | | -#### Self Signed Certificate |
214 | | - |
215 | | -If you are getting an error that looks like this: |
216 | | - |
217 | | -```text |
218 | | -tls: failed to verify certificate: x509: certificate signed by unknown authority |
219 | | -``` |
220 | | - |
221 | | -It is most likely due to Argo CD using a self-signed certificate, if it is intended that your certificate is self-signed you can disable certificate verification by doing the following: |
222 | | - |
223 | | -Using Helm for existing installation: |
224 | | - |
225 | | -```bash |
226 | | -helm upgrade --atomic \ |
227 | | ---version "1.0.0" \ |
228 | | ---namespace "{{GATEWAY_NAMESPACE}}" \ |
229 | | ---reset-then-reuse-values \ |
230 | | ---set gateway.argocd.insecure="true" \ |
231 | | ---set gateway.argocd.plaintext="false" \ |
232 | | -{{EXISTING_HELM_RELEASE_NAME}} \ |
233 | | -oci://registry-1.docker.io/octopusdeploy/octopus-argocd-gateway-chart |
234 | | -``` |
235 | | - |
236 | | -:::div{.warning} |
237 | | -By setting `gateway.argocd.insecure="true"`, TLS certificate verification will no longer be performed between the gateway and the Argo CD instance. Make sure this configuration is necessary to avoid potential security issues. |
238 | | -::: |
239 | | - |
240 | | -#### No Certificate |
241 | | - |
242 | | -If you are running your Argo CD instance without a certificate due to terminating SSL at a load balancer level the gateway will likely fail to connect with the following error: |
243 | | - |
244 | | -```text |
245 | | -transport: authentication handshake failed: EOF |
246 | | -``` |
247 | | - |
248 | | -This is because the gateway is configured by default to require encrypted traffic, if it is intended that you don't have a certificate you can disable encryption between the gateway and Argo CD by doing the following: |
249 | | - |
250 | | -```bash |
251 | | -helm upgrade --atomic \ |
252 | | ---version "1.0.0" \ |
253 | | ---namespace "{{GATEWAY_NAMESPACE}}" \ |
254 | | ---reset-then-reuse-values \ |
255 | | ---set gateway.argocd.insecure="false" \ |
256 | | ---set gateway.argocd.plaintext="true" \ |
257 | | -{{EXISTING_HELM_RELEASE_NAME}} \ |
258 | | -oci://registry-1.docker.io/octopusdeploy/octopus-argocd-gateway-chart |
259 | | -``` |
260 | | - |
261 | | -:::div{.warning} |
262 | | -By setting `gateway.argocd.plaintext="true"`, all traffic between the gateway and Argo CD will be unencrypted. Make sure this configuration is necessary to avoid potential security issues. |
263 | | -::: |
| 227 | +If your gateway is unable to connect to your Argo CD instance or Octopus Server (e.g. due to TLS errors), see [Troubleshooting Argo CD in Octopus](/docs/argo-cd/troubleshooting) for common issues and resolutions. |
264 | 228 |
|
265 | 229 | ## Deleting an Octopus Argo CD Gateway |
266 | 230 |
|
|
0 commit comments