- Must be used with Spinnaker version 1.22 or higher.
- Must enable Lambda support.
- Must enable ECS support
- Add the following to
clouddriver.yml
in the necessary profile to load plugin.
spinnaker:
extensibility:
plugins:
AWS.AccountRegistration:
id: AWS.AccountRegistration
enabled: true
version: <<plugin release version>>
extensions: {}
repositories:
awsAccountRegistrationPluginRepo:
id: awsAccountRegistrationPluginRepo
url: https://raw.githubusercontent.com/awslabs/aws-account-registration-plugin-spinnaker/master/plugins.json
accountProvision:
url: <<account provider remote address>>
pullFrequencyInMilliSeconds: <<plugin pull frequency>>
syncAgentFrequencyInMilliSeconds: <<plugin agent scheduler frequency>>
iamAuth: <<IAM Authentication for API Gateway>>
iamAuthRegion: <<AWS Region for API Gateway. Required if iamAuth is true>>
- Run
./gradlew releaseBundle
in the root of this project. - The above command will create a zip file,
build/distributions/spinnaker-aws-account-registration*.zip
. - Copy the zip file to Clouddriver plugin directory. Defaults to
/opt/clouddriver/plugins
. This directory can be specified by theplugins-root-path
configuration property. - Enable the plugin by placing the following in Clouddriver profile
spinnaker:
extensibility:
plugins-root-path: /opt/clouddriver/plugins # Specify plugin directory if necessary.
plugins:
AWS.AccountRegistration:
enabled: true
repositories: {}
strict-plugin-loading: false
# Available Plugin configuration properties:
accountProvision:
url: 'http://localhost:8080' # Remote host address. Query string is supported but must not include space characters.
pullFrequencyInMilliSeconds: 10000 # How often this plugin should query the remote host.
syncAgentFrequencyInMilliSeconds: 10000 # How often agent scheduler should run.
iamAuth: false # Enable IAM authentication for API Gateway.
iamAuthRegion: 'us-west-2' # Specify which region API Gateway is deployed. Required if `iamAuth` is enabled.
This plugin expects the following JSON payload from the configured remote host, configured with the url
property.
{
"SpinnakerAccounts": [
{
"AccountId": "12345678901",
"SpinnakerAccountName": "test-3",
"Regions": [
"us-west-2"
],
"SpinnakerStatus": "ACTIVE | SUSPENDED",
"SpinnakerAssumeRole": "role/spinnakerManaged",
"SpinnakerProviders": [
"ecs", "lambda", "ec2"
],
"SpinnakerId": "spinnaker1",
"CreatedAt": "2020-08-27T16:52:59.026696+00:00",
"UpdatedAt": "2020-08-27T16:52:59.026696+00:00"
}
],
"Pagination": {
"NextUrl": "http://some/next/url"
}
}
See CONTRIBUTING for more information.
This project is licensed under the Apache-2.0 License.