Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A Jenkins plugin to populate environment variables from AWS Parameter Store.

Wiki Markup
{jenkins-plugin-info:aws-parameter-store}

Overview

This plugin collects parameters from the AWS Parameter Store and sets them as environment variables for a build.

Each AWS Parameter Store parameter name is converted to uppercase and any non-numeric characters are converted to underscores. For example, the parameter name my-param_1param1 with value my-value-1value1 would become the environment variable MY_PARAM_1PARAM1=my-value-1value1.

This plugin is compatible with AWS Parameter Store Hierarchies. A path and recursive indicator can be specified to pass to the GetParametersByPath API call. The path is removed from the variable name. A parameter name /service/param1 with value value1 and a path of /service/ would become PARAM1=value1. naming parameter can be used to specify how the environment variable is derived from the path:

  • basename - anything after the last '/' is the variable name (e.g. with path /service, parameter /service/app/param becomes PARAM)
  • relative - anything after the path is the variable name (e.g. with path /service, parameter /service/app/param becomes APP_PARAM)
  • absolute - the full path with parameter name is the variable name (e.g. with path /service, parameter /service/app/param becomes SERVICE_APP_PARAM)

Parameter types are handled as follow:

  • String parameter values are unchanged
  • SecureString parameter values are decrypted
  • StringList parameter values are set as comma-separated values

Configuration

The plugin is configured on each build configuration page:

ScreenshotImage Modified

This has the following fields:

  • AWS Credentials - the id of credentials added via the AWS Credentials Plugin
  • AWS Region Name - the region name to search for parameters (defaults to us-east-1)
  • Path - the hierarchy for the parameters
  • Recursive - whether to retrieve all parameters within a hierarchy
  • Naming - whether the environment variable should be basename, relative or absolute

Pipelines

This plugin can be included in your Jenkinsfile, for example:

withAWSParameterStore(credentialsId: '', naming: 'relative', path: '/service', recursive: true, regionName: 'eu-west-1') {
  // some block
}

ChangeLog

1.1.0 (2018-04-05)

  • Add support for pipelines
  • Add naming options for environment variables: basename, absolute, relative
  • Migrate deprecated AWS API calls

1.0.0 (2018-03-27)