Skip to content

Commit 1c19e02

Browse files
committed
Add troubleshooting section for gateway connectivity issues and update connection requirements
1 parent 589b4d0 commit 1c19e02

2 files changed

Lines changed: 38 additions & 6 deletions

File tree

src/pages/docs/argo-cd/instances/index.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ The [Kubernetes agent](/docs/kubernetes/targets/kubernetes-agent) and the [Kuber
3333

3434
The gateway makes three outgoing connections. Before installing, make sure all of them are reachable from inside your cluster:
3535

36-
| The gateway must reach | How |
37-
| --- | --- |
38-
| Octopus Server REST API | HTTPS, port `443` |
39-
| Octopus Server gRPC endpoint | gRPC (HTTP/2), port `8443` by default |
40-
| Argo CD API server | In-cluster gRPC, e.g. `<servicename>.<namespace>.svc.cluster.local` |
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 |
4141

4242
:::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#argo-cd-gateway-registers-but-fails-to-connect-to-octopus-server) for details.
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.
4444
:::
4545

4646
:::div{.hint}

src/pages/docs/argo-cd/troubleshooting.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,38 @@ oci://registry-1.docker.io/octopusdeploy/octopus-argocd-gateway-chart
164164
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.
165165
:::
166166

167+
## Gateway Connectivity
168+
169+
### Gateway connection drops at regular intervals (load balancer idle timeout)
170+
171+
Behavior:
172+
173+
- The gateway installs and connects successfully, but loses its connection to Octopus Server after every quiet period of the same length (e.g. 60 seconds without activity)
174+
- Deployments with Argo CD steps fail intermittently with gRPC connection errors, and succeed when retried
175+
- The "Gateway connectivity" tab of the Argo CD instance intermittently shows "Unavailable", depending on when the last health check ran
176+
- The gateway pod logs show stream errors followed by an immediate reconnection
177+
- If the load balancer drops connections silently instead of closing them, the logs show failing keep alives (`keep alive check failed - cancelling subscribers` with `DeadlineExceeded` errors) and the gateway pod restart count climbs at a regular cadence
178+
179+
Cause:
180+
181+
- A load balancer or proxy between the gateway and Octopus Server closes connections it considers idle
182+
- The gateway sends a keep alive to Octopus Server every 30 seconds by default to hold the connection open. If the load balancer's idle timeout is shorter than the keep alive interval (or keep alives are disabled), the connection is terminated before the next keep alive is sent
183+
184+
Resolution:
185+
186+
- Increase the idle timeout on your load balancer so it comfortably exceeds the keep alive interval (`gateway.octopus.keepAlive.intervalSeconds`, default 30 seconds)
187+
- Alternatively, reduce the keep alive interval below the load balancer's idle timeout:
188+
189+
```bash
190+
helm upgrade --atomic \
191+
--version "1.0.0" \
192+
--namespace "{{GATEWAY_NAMESPACE}}" \
193+
--reset-then-reuse-values \
194+
--set gateway.octopus.keepAlive.intervalSeconds="15" \
195+
{{EXISTING_HELM_RELEASE_NAME}} \
196+
oci://registry-1.docker.io/octopusdeploy/octopus-argocd-gateway-chart
197+
```
198+
167199
## Application/Project mapping
168200

169201
### No applications are listed on the **Argo CD Instance ➜ Applications** page

0 commit comments

Comments
 (0)