A Jenkins plugin to populate environment variables from 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-param1
with value my-value1
would become the
environment variable MY_PARAM1=my-value1
.
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 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
becomesPARAM
) - relative - anything after the path is the variable name
(e.g. with path
/service
, parameter/service/app/param
becomesAPP_PARAM
) - absolute - the full path with parameter name is the variable
name (e.g. with path
/service
, parameter/service/app/param
becomesSERVICE_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:
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
- Initial release