GCP Secret Manager - Retrieve Secrets (OIDC)

Octopus.GoogleCloudScripting exported 2025-09-18 by harrisonmeister belongs to ‘Google Cloud’ category.

This step retrieves one or more secrets from Secret Manager on Google Cloud Platform (GCP), and creates sensitive output variables for each value retrieved. These values can be used in other deployment or runbook process steps.

You should retrieve secrets with a specific version rather than the latest version. You can choose a custom output variable name for each secret, or one will be created dynamically.


The step authenticates with GCP using an OpenID Connect account. See our blog post for more details on configuring an account for GCP authentication.


Required:

  • Octopus Server 2021.2 or higher.
  • PowerShell 5.1 or higher.
  • The Google Cloud (gcloud) CLI, version 338.0.0 or higher installed on the target or worker. If the CLI can’t be found, the step will fail.
  • A Google account with permissions to retrieve secrets from Secret Manager on Google Cloud. Accessing a secret version requires the Secret Manager Secret Accessor role (roles/secretmanager.secretAccessor) on the secret, project, folder, or organization.

Notes:

  • Tested on Octopus 2025.4.
  • Tested on both Windows Server 2022 and Ubuntu 22.04.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

OpenID Connect (OIDC) Account

GCP.SecretManager.RetrieveSecrets.Account =

An OpenID Connect account with permission to access Secret Manager secrets.

Google Cloud Project

GCP.SecretManager.RetrieveSecrets.Project =

Specify the default project. This sets the CLOUDSDK_CORE_PROJECT environment variable.

Google Cloud Region

GCP.SecretManager.RetrieveSecrets.Region =

Specify the default region. View the GCP Regions and Zones documentation for a current list of the available region and zone codes.

This sets the CLOUDSDK_COMPUTE_REGION environment variable.

Google Cloud Zone

GCP.SecretManager.RetrieveSecrets.Zone =

Specify the default zone. View the GCP Regions and Zones documentation for a current list of the available region and zone codes.

This sets the CLOUDSDK_COMPUTE_ZONE environment variable.

Secret names to retrieve

GCP.SecretManager.RetrieveSecrets.SecretNames =

Specify the names of the secrets to be returned from Secret Manager in Google Cloud, in the format:

SecretName SecretVersion | OutputVariableName where:

  • SecretName is the name of the secret to retrieve.
  • SecretVersion is the version of the secret to retrieve. If this value isn’t specified, the latest version will be retrieved.
  • OutputVariableName is the optional Octopus output variable name to store the secret’s value in. If this value isn’t specified, an output name will be generated dynamically.

Note: Multiple fields can be retrieved by entering each one on a new line.

GCP.SecretManager.RetrieveSecrets.PrintVariableNames = False

Write out the Octopus output variable names to the task log. Default: False.

Script body

Steps based on this template will execute the following PowerShell script.

$ErrorActionPreference = 'Stop'

# Variables
$SecretNames = $OctopusParameters["GCP.SecretManager.RetrieveSecrets.SecretNames"]
$PrintVariableNames = $OctopusParameters["GCP.SecretManager.RetrieveSecrets.PrintVariableNames"]

# GCP Project/Region/Zone
$Project = $OctopusParameters["GCP.SecretManager.RetrieveSecrets.Project"]
$Region = $OctopusParameters["GCP.SecretManager.RetrieveSecrets.Region"]
$Zone = $OctopusParameters["GCP.SecretManager.RetrieveSecrets.Zone"]

# Validation
if ([string]::IsNullOrWhiteSpace($SecretNames)) {
    throw "Required parameter GCP.SecretManager.RetrieveSecrets.SecretNames not specified"
}

$Secrets = @()
$VariablesCreated = 0
$StepName = $OctopusParameters["Octopus.Step.Name"]

# Extract secret names
@(($SecretNames -Split "`n").Trim()) | ForEach-Object {
    if (![string]::IsNullOrWhiteSpace($_)) {
        Write-Verbose "Working on: '$_'"
        $secretDefinition = ($_ -Split "\|")
        $secretName = $secretDefinition[0].Trim()
        $secretNameAndVersion = ($secretName -Split " ")
        $secretVersion = "latest"
        if ($secretNameAndVersion.Count -gt 1) {
            $secretName = $secretNameAndVersion[0].Trim()
            $secretVersion = $secretNameAndVersion[1].Trim()
        }
        if ([string]::IsNullOrWhiteSpace($secretName)) {
            throw "Unable to establish secret name from: '$($_)'"
        }
        $secret = [PsCustomObject]@{
            Name          = $secretName
            SecretVersion = $secretVersion
            VariableName  = if (![string]::IsNullOrWhiteSpace($secretDefinition[1])) { $secretDefinition[1].Trim() } else { "" }
        }
        $Secrets += $secret
    }
}

Write-Verbose "GCP Default Project: $Project"
Write-Verbose "GCP Default Region: $Region"
Write-Verbose "GCP Default Zone: $Zone"
Write-Verbose "Secrets to retrieve: $($Secrets.Count)"
Write-Verbose "Print variables: $PrintVariableNames"

# Retrieve Secrets
foreach ($secret in $secrets) {
    $name = $secret.Name
    $secretVersion = $secret.SecretVersion
    $variableName = $secret.VariableName
    if ([string]::IsNullOrWhiteSpace($variableName)) {
        $variableName = "$($name.Trim())-$secretVersion"
    }
    Write-Host "Retrieving Secret '$name' (version: $secretVersion)"
    if ($secretVersion -ieq "latest") {
        Write-Host "Note: Retrieving the 'latest' version for secret '$name' isn't recommended. Consider choosing a specific version to retrieve."
    }
    
    $secretValue = (gcloud secrets versions access $secretVersion --secret="$name") -Join "`n"
    
    if ([string]::IsNullOrWhiteSpace($secretValue)) {
        throw "Error: Secret '$name' (version: $secretVersion) not found or has no versions."
    }

    Set-OctopusVariable -Name $variableName -Value $secretValue -Sensitive

    if ($PrintVariableNames -eq $True) {
        Write-Host "Created output variable: ##{Octopus.Action[$StepName].Output.$variableName}"
    }
    $VariablesCreated += 1
}

Write-Host "Created $VariablesCreated output variables"

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "a0119b66-831b-407e-b87b-45b19afe18a8",
  "Name": "GCP Secret Manager - Retrieve Secrets (OIDC)",
  "Description": "This step retrieves one or more secrets from [Secret Manager](https://cloud.google.com/secret-manager) on Google Cloud Platform (GCP), and creates [sensitive output variables](https://octopus.com/docs/projects/variables/output-variables#sensitive-output-variables) for each value retrieved. These values can be used in other deployment or runbook process steps.\n\nYou should retrieve secrets with a specific version rather than the *latest* version. You can choose a custom output variable name for each secret, or one will be created dynamically.\n\n---\n\nThe step authenticates with GCP using an [OpenID Connect](https://octopus.com/docs/infrastructure/accounts/openid-connect) account. See our [blog post](https://octopus.com/blog/generic-oidc#using-generic-oidc-accounts-with-google-cloud) for more details on configuring an account for GCP authentication.\n\n---\n\n**Required:** \n- Octopus Server **2021.2** or higher.\n- PowerShell **5.1** or higher.\n- The Google Cloud (`gcloud`) CLI, version **338.0.0** or higher installed on the target or worker. If the CLI can't be found, the step will fail.\n- A Google account with permissions to retrieve secrets from Secret Manager on Google Cloud. Accessing a secret version requires the **Secret Manager Secret Accessor** role (`roles/secretmanager.secretAccessor`) on the secret, project, folder, or organization. \n\nNotes:\n\n- Tested on Octopus **2025.4**.\n- Tested on both Windows Server 2022 and Ubuntu 22.04.",
  "Version": 1,
  "ExportedAt": "2025-09-18T12:25:52.896Z",
  "ActionType": "Octopus.GoogleCloudScripting",
  "Author": "harrisonmeister",
  "Packages": [],
  "Parameters": [
    {
      "Id": "98bef883-493d-45ca-8030-9323340f7b8d",
      "Name": "GCP.SecretManager.RetrieveSecrets.Account",
      "Label": "OpenID Connect (OIDC) Account",
      "HelpText": "An [OpenID Connect](https://octopus.com/docs/infrastructure/accounts/openid-connect) account with permission to access Secret Manager secrets.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "GenericOidcAccount"
      }
    },
    {
      "Id": "4fce0e10-2378-4008-ace0-0bda4bebef5f",
      "Name": "GCP.SecretManager.RetrieveSecrets.Project",
      "Label": "Google Cloud Project",
      "HelpText": "Specify the default project. This sets the `CLOUDSDK_CORE_PROJECT` [environment variable](https://g.octopushq.com/GCPDefaultProject).",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "0775f353-d9c7-4e5f-87d9-15dd4b7126f7",
      "Name": "GCP.SecretManager.RetrieveSecrets.Region",
      "Label": "Google Cloud Region",
      "HelpText": "Specify the default region. View the [GCP Regions and Zones](https://g.octopushq.com/GCPRegionsZones) documentation for a current list of the available region and zone codes.\n\nThis sets the `CLOUDSDK_COMPUTE_REGION` [environment variable](https://g.octopushq.com/GCPDefaultRegionAndZone).",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "d575b319-cd58-4200-9211-cddd328c1a62",
      "Name": "GCP.SecretManager.RetrieveSecrets.Zone",
      "Label": "Google Cloud Zone",
      "HelpText": "Specify the default zone. View the [GCP Regions and Zones](https://g.octopushq.com/GCPRegionsZones) documentation for a current list of the available region and zone codes.\n\nThis sets the `CLOUDSDK_COMPUTE_ZONE` [environment variable](https://g.octopushq.com/GCPDefaultRegionAndZone).",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "8194e79f-1a22-4126-a7aa-cbd300ef1fda",
      "Name": "GCP.SecretManager.RetrieveSecrets.SecretNames",
      "Label": "Secret names to retrieve",
      "HelpText": "Specify the names of the secrets to be returned from Secret Manager in Google Cloud, in the format:\n\n`SecretName SecretVersion | OutputVariableName` where:\n\n- `SecretName` is the name of the secret to retrieve.\n- `SecretVersion` is the version of the secret to retrieve. *If this value isn't specified, the latest version will be retrieved*.\n- `OutputVariableName` is the _optional_ Octopus [output variable](https://octopus.com/docs/projects/variables/output-variables) name to store the secret's value in. *If this value isn't specified, an output name will be generated dynamically*.\n\n**Note:** Multiple fields can be retrieved by entering each one on a new line.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "MultiLineText"
      }
    },
    {
      "Id": "24508f90-d88e-4527-b577-8e13c91d962f",
      "Name": "GCP.SecretManager.RetrieveSecrets.PrintVariableNames",
      "Label": "Print output variable names",
      "HelpText": "Write out the Octopus [output variable](https://octopus.com/docs/projects/variables/output-variables) names to the task log. Default: `False`.",
      "DefaultValue": "False",
      "DisplaySettings": {
        "Octopus.ControlType": "Checkbox"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.GoogleCloud.ImpersonateServiceAccount": "False",
    "Octopus.Action.GoogleCloud.UseVMServiceAccount": "False",
    "Octopus.Action.GoogleCloudAccount.Variable": "#{GCP.SecretManager.RetrieveSecrets.Account}",
    "Octopus.Action.GoogleCloud.Project": "#{GCP.SecretManager.RetrieveSecrets.Project}",
    "Octopus.Action.GoogleCloud.Region": "#{GCP.SecretManager.RetrieveSecrets.Region}",
    "Octopus.Action.GoogleCloud.Zone": "#{GCP.SecretManager.RetrieveSecrets.Zone}",
    "Octopus.Action.Script.ScriptBody": "$ErrorActionPreference = 'Stop'\n\n# Variables\n$SecretNames = $OctopusParameters[\"GCP.SecretManager.RetrieveSecrets.SecretNames\"]\n$PrintVariableNames = $OctopusParameters[\"GCP.SecretManager.RetrieveSecrets.PrintVariableNames\"]\n\n# GCP Project/Region/Zone\n$Project = $OctopusParameters[\"GCP.SecretManager.RetrieveSecrets.Project\"]\n$Region = $OctopusParameters[\"GCP.SecretManager.RetrieveSecrets.Region\"]\n$Zone = $OctopusParameters[\"GCP.SecretManager.RetrieveSecrets.Zone\"]\n\n# Validation\nif ([string]::IsNullOrWhiteSpace($SecretNames)) {\n    throw \"Required parameter GCP.SecretManager.RetrieveSecrets.SecretNames not specified\"\n}\n\n$Secrets = @()\n$VariablesCreated = 0\n$StepName = $OctopusParameters[\"Octopus.Step.Name\"]\n\n# Extract secret names\n@(($SecretNames -Split \"`n\").Trim()) | ForEach-Object {\n    if (![string]::IsNullOrWhiteSpace($_)) {\n        Write-Verbose \"Working on: '$_'\"\n        $secretDefinition = ($_ -Split \"\\|\")\n        $secretName = $secretDefinition[0].Trim()\n        $secretNameAndVersion = ($secretName -Split \" \")\n        $secretVersion = \"latest\"\n        if ($secretNameAndVersion.Count -gt 1) {\n            $secretName = $secretNameAndVersion[0].Trim()\n            $secretVersion = $secretNameAndVersion[1].Trim()\n        }\n        if ([string]::IsNullOrWhiteSpace($secretName)) {\n            throw \"Unable to establish secret name from: '$($_)'\"\n        }\n        $secret = [PsCustomObject]@{\n            Name          = $secretName\n            SecretVersion = $secretVersion\n            VariableName  = if (![string]::IsNullOrWhiteSpace($secretDefinition[1])) { $secretDefinition[1].Trim() } else { \"\" }\n        }\n        $Secrets += $secret\n    }\n}\n\nWrite-Verbose \"GCP Default Project: $Project\"\nWrite-Verbose \"GCP Default Region: $Region\"\nWrite-Verbose \"GCP Default Zone: $Zone\"\nWrite-Verbose \"Secrets to retrieve: $($Secrets.Count)\"\nWrite-Verbose \"Print variables: $PrintVariableNames\"\n\n# Retrieve Secrets\nforeach ($secret in $secrets) {\n    $name = $secret.Name\n    $secretVersion = $secret.SecretVersion\n    $variableName = $secret.VariableName\n    if ([string]::IsNullOrWhiteSpace($variableName)) {\n        $variableName = \"$($name.Trim())-$secretVersion\"\n    }\n    Write-Host \"Retrieving Secret '$name' (version: $secretVersion)\"\n    if ($secretVersion -ieq \"latest\") {\n        Write-Host \"Note: Retrieving the 'latest' version for secret '$name' isn't recommended. Consider choosing a specific version to retrieve.\"\n    }\n    \n    $secretValue = (gcloud secrets versions access $secretVersion --secret=\"$name\") -Join \"`n\"\n    \n    if ([string]::IsNullOrWhiteSpace($secretValue)) {\n        throw \"Error: Secret '$name' (version: $secretVersion) not found or has no versions.\"\n    }\n\n    Set-OctopusVariable -Name $variableName -Value $secretValue -Sensitive\n\n    if ($PrintVariableNames -eq $True) {\n        Write-Host \"Created output variable: ##{Octopus.Action[$StepName].Output.$variableName}\"\n    }\n    $VariablesCreated += 1\n}\n\nWrite-Host \"Created $VariablesCreated output variables\"\n"
  },
  "Category": "Google Cloud",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/a381802920158308/step-templates/gcp-secret-manager-retrieve-secret-oidc.json",
  "Website": "/step-templates/a0119b66-831b-407e-b87b-45b19afe18a8",
  "Logo": "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",
  "MinimumServerVersion": "2021.2.0",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Thursday, September 18, 2025