Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 41 additions & 44 deletions src/pages/docs/argo-cd/instances/automated-installation.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2025-09-15
modDate: 2025-09-15
modDate: 2026-01-20
title: Automated Installation
description: How Octopus tracks your Argo CD Instances
navOrder: 10
Expand All @@ -15,39 +15,25 @@ means:
- Terraform
- Argo CD Application

The Gateway requires the following configuration items which define how it connects to both OctopusDeploy an Argo CD:
Full documentation for all available Helm values is available on [GitHub](https://github.com/OctopusDeploy/octopus-argocd-gateway-chart-docs).

| Value | Type | Required | Description |
| -------------------------------------- | ------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| registration.octopus.name | string | Required | The unique name of this gateway, used within Octopus Deploy |
| registration.octopus.serverApiUrl | string | Required | The URL of the Octopus Server that the gateway will register |
| registration.octopus.serverAccessToken | string | Required | The bearer or API token used for authentication during initial registration process with Octopus Server |
| registration.octopus.spaceId | string | Required | The unique id of the Octopus Deploy space in which the gateway should reside |
| registration.argocd.webUiUrl | string | Optional (default: null) | The URL of your Argo CD instance's Web UI, used for generating deep-links within Octopus Deploy |
| gateway.octopus.serverThumbprint | string | Optional | Needed only if your Octopus server uses a self-signed certificate for its grpc endpoints. The thumbprint of the X509 certificate used by Octopus's GRPC service |
| gateway.octopus.serverGrpcUrl | string | Required | The URL at which Octopus Server expects to receive grpc traffic (grpc://your-server.com:8443) |
| gateway.octopus.plainText | string | Optional (default: false) | True if Octopus' grpc endpoint is using un-encrypted connections, false otherwise. |
| gateway.argocd.serverGrpcUrl | string | Required | The URL on which your Argo CD instance is listening for connections - the cluster *internal* url - ie. <service-name>.<namespace>.svc.cluster.local:<port> |
| gateway.argocd.insecure | string | Optional (default: false) | Set to True if your Argo CD instance is using a self-signed cert, false otherwise |
| gateway.argocd.plaintext | string | Optional (default: false) | Set to True if your Argo CD instance is using un-encrypted connections, false otherwise. If true, Insecure is not considered. |

It should be noted that the gateway self-registers with Octopus Deploy Server when it is first installed.
These examples, and the Helm command provided in the Octopus Server portal, describe the minimum configuration required to install an Argo Gateway.

## Scripted helm

The Octopus Server webUI offers a process to aid in the creation of the required helm command to install the Gateway chart.
The Octopus Server portal offers a process to aid in the creation of the required helm command to install the Gateway chart.
However, it can also be scripted using a command similar to the following:

```bash
helm upgrade --install --atomic \
--create-namespace --namespace octo-argo-gateway-release-name \
--version "*.*" \
--set registration.octopus.name="<name of gateway in Octopus>" \
--set registration.octopus.serverApiUrl="https://your-server.octopus.app" \
--set registration.octopus.serverAccessToken="API-123456789...." \
--set registration.octopus.name="<display name of gateway in Octopus>" \
--set registration.octopus.serverApiUrl="https://your-instance.octopus.app" \
--set registration.octopus.serverAccessToken="API-XXXXXXXXXXXXXXXX" \
--set registration.octopus.environments="{dev,staging,production}" \
--set registration.octopus.spaceId="Spaces-X" \
--set gateway.octopus.serverGrpcUrl="grpc://your-server.octopus.app:8443" \
--set registration.octopus.spaceId="Spaces-1" \
--set gateway.octopus.serverGrpcUrl="grpc://your-instance.octopus.app:8443" \
--set gateway.argocd.serverGrpcUrl="grpc://argocd-server.argocd.svc.cluster.local" \
--set gateway.argocd.authenticationToken="<Argo Api Token>" \
octo-argo-gateway-release-name \
Expand All @@ -56,38 +42,49 @@ oci://registry-1.docker.io/octopusdeploy/octopus-argocd-gateway-chart

## Terraform

The Gateway helm chart can be installed via a terraform - for a minimal install the following is required:
The Gateway helm chart can be installed via a terraform - for a minimal install the following is required.

Update the version line to the most recent tag found on [dockerhub](https://hub.docker.com/r/octopusdeploy/octopus-argocd-gateway-chart)

```hcl
locals {
gatewayName = "<display name of gateway in Octopus>"
octopus_api_key = "API-XXXXXXXXXXXXXXXX"
octopus_address = "https://your-instance.octopus.app"
octopus_grpc_address = "https://your-instance.octopus.app:8443"
argo_auth_token = "<your Argo JWT>"
}

resource "helm_release" "argo_gateway" {
name = "octopus-argo-gateway"
repository = "oci://registry-1.docker.io"
chart = "octopusdeploy/octopus-argocd-gateway-chart"
version = "1.3.0"
version = "1.*.*"
atomic = true
create_namespace = true
namespace = "octopus-argo-gateway-your-namespace"
timeout = 60
set = [
timeout = 60

set = [
{
name = "registration.octopus.name",
value = "<name of gateway in Octopus>"
name = "registration.octopus.name",
value = local.gatewayName
},
{
name = "registration.octopus.serverApiUrl"
value = "https://your-server.octopus.app"
value = local.octopus_address
},
{
name = "registration.octopus.serverAccessToken"
value = "API-123456789...."
value = local.octopus_api_key
},
{
name = "registration.octopus.spaceId"
value = "Spaces-X"
value = "Spaces-1"
},
{
name = "gateway.octopus.serverGrpcUrl"
value = "grpc://your-server.octopus.app:8443"
value = local.octopus_grpc_address
},
{
name = "gateway.argocd.serverGrpcUrl"
Expand All @@ -103,13 +100,13 @@ resource "helm_release" "argo_gateway" {
},
{
name = "gateway.argocd.authenticationToken"
value = "<Argo Api Token>"
value = local.argo_auth_token
}
]

set_list = [{
name = "registration.octopus.environments"
value = [octopusdeploy_environment.dev_env.name, octopusdeploy_environment.prod_env.id]
name = "registration.octopus.environments"
value = [octopusdeploy_environment.dev_env.name, octopusdeploy_environment.prod_env.id]
}]
}
```
Expand All @@ -124,26 +121,26 @@ The application yaml required to install the helm chart is as follows (replacing
project: default
source:
repoURL: registry-1.docker.io/octopusdeploy
chart: octopus-argocd-gateway-chart
targetRevision: 1.3.0
helm:
parameters:
- name: registration.octopus.name
value: <name of gateway in Octopus>
value: <display name of gateway in Octopus>
- name: registration.octopus.serverAccessToken
value: API-123456789....
value: API-XXXXXXXXXXXXXXXX
- name: registration.octopus.serverApiUrl
value: https://your-server.octopus.app
value: https://your-instance.octopus.app
- name: registration.octopus.spaceId
value: Spaces-X
value: Spaces-1
- name: gateway.argocd.authenticationToken
value: >-
<Argo Api Token>
- name: gateway.argocd.serverGrpcUrl
value: grpc://argocd-server.argocd.svc.cluster.local"
- name: gateway.octopus.serverGrpcUrl
value: grpc://your-server.octopus.app:8443
chart: octopus-argocd-gateway-chart
value: grpc://your-instance.octopus.app:8443
destination:
server: https://kubernetes.default.svc
namespace: new-gateway
namespace: octopus-argo-gateway-your-namespace
```