Automated Installation

With the Octopus Argo CD Gateway being published as a helm chart, several options exist to install it through automated means:

  • scripted install using the helm cli
  • Terraform
  • Argo CD Application

The Gateway requires the following configuration items which define how it connects to both OctopusDeploy an Argo CD:

ValueTypeRequiredDescription
registration.octopus.namestringRequiredThe unique name of this gateway, used within Octopus Deploy
registration.octopus.serverApiUrlstringRequiredThe URL of the Octopus Server that the gateway will register
registration.octopus.serverAccessTokenstringRequiredThe bearer or API token used for authentication during initial registration process with Octopus Server
registration.octopus.spaceIdstringRequiredThe unique id of the Octopus Deploy space in which the gateway should reside
registration.argocd.webUiUrlstringOptional (default: null)The URL of your Argo CD instance’s Web UI, used for generating deep-links within Octopus Deploy
gateway.octopus.serverThumbprintstringOptionalNeeded 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.serverGrpcUrlstringRequiredThe URL at which Octopus Server expects to receive grpc traffic (grpc://your-server.com<8443>)
gateway.octopus.plainTextstringOptional (default: false)True if Octopus’ grpc endpoint is using un-encrypted connections, false otherwise.
gateway.argocd.serverGrpcUrlstringRequiredThe URL on which your Argo CD instance is listening for connections - the cluster internal url - ie. ..svc.cluster.local:
gateway.argocd.insecurestringOptional (default: false)Set to True if your Argo CD instance is using a self-signed cert, false otherwise
gateway.argocd.plaintextstringOptional (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.

Scripted helm

The Octopus Server webUI 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:

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.environments="{dev,staging,production}" \
--set registration.octopus.spaceId="Spaces-X" \
--set gateway.octopus.serverGrpcUrl="grpc://your-server.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 \
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:

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"
  atomic           = true
  create_namespace = true
  namespace        = "octopus-argo-gateway-your-namespace)}"
  timeout = 60 
    set = [
    {
      name = "registration.octopus.name",
      value = "<name of gateway in Octopus>"
    },
    {
      name  = "registration.octopus.serverApiUrl"
      value = "https://your-server.octopus.app"
    },
    {
      name  = "registration.octopus.serverAccessToken"
      value = "API-123456789...."
    },
    {
      name  = "registration.octopus.spaceId"
      value = "Spaces-X"
    },
    {
      name  = "gateway.octopus.serverGrpcUrl"
      value = "grpc://your-server.octopus.app:8443"
    },
    {
      name  = "gateway.argocd.serverGrpcUrl"
      value = "grpc://argocd-server.argocd.svc.cluster.local"
    },
    {
      name  = "gateway.argocd.insecure"
      value = "true"
    },
    {
      name  = "gateway.argocd.plaintext"
      value = "false"
    },
    {
      name  = "gateway.argocd.authenticationToken"
      value = "<Argo Api Token>"
    }
  ]
  
  set_list = [{
    name = "registration.octopus.environments"
    value = [octopusdeploy_environment.dev_env.name, octopusdeploy_environment.prod_env.id] 
  }]
}

Installing as an Argo CD Application

The Octopus-Argo Gateway’s helm chart can be installed via an Argo CD Application.

The application yaml required to install the helm chart is as follows (replacing values as per previous examples):

project: default
source:
  repoURL: registry-1.docker.io/octopusdeploy
  targetRevision: 1.3.0
  helm:
    parameters:
      - name: registration.octopus.name
        value: <name of gateway in Octopus>
      - name: registration.octopus.serverAccessToken
        value: API-123456789....
      - name: registration.octopus.serverApiUrl
        value: https://your-server.octopus.app
      - name: registration.octopus.spaceId
        value: Spaces-X
      - 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
destination:
  server: https://kubernetes.default.svc
  namespace: new-gateway

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Page updated on Monday, September 15, 2025