Introduction
What are integrations and how do they work?
Integrations let you define and re-apply access data to third-party services in Buddy's pipelines. For example, adding an AWS integration will allow you to upload assets to S3 buckets, deploy Elastic Beanstalk apps, invalidate CloudFront cache, or run commands in the AWS CLI.
Whenever you add an action that requires connecting to a third-party service, Buddy will ask you to create an integration. Depending on the type of the integration, you may need to fill a form with the access data (e.g. access and secret keys), or authenticate Buddy in the external service with OAuth (e.g. when connecting to GitHub).
Adding AWS integration
Adding integrations
There are two ways to add integrations:
- By clicking the New integration button on the Integrations page:
Adding new integration from Integrations tab
- From the integration selection dropdown in an action using the integration:
Adding new integration from action
Multiple integrations for one service
You can have multiple integrations of one type in your workspace. For example, you can use several AWS integrations and deploy to different accounts within the same project:
Adding another integration from action
Scopes
When adding an integration, it is added either with the Workspace or Project scope, depending on the place you add it from:
Integration scope
Permissions
In the Permissions tab, you can grant permissions to an integration to specific groups/users and decide whether it should be available for all pipelines or only specific ones:
Permissions tab in integration
Roles
There are 4 predefined permission types that can be assigned to groups/users:
- None (Deny): users won't see the integration
- None (Delete-only): integration will be visible for administrators, and they will be able to delete, but not use or edit it
- Use: users will be able to use the integration
- Manage: open permission to use and edit the integration
By default, every integration is added with the Manage role for the owner and administrators, and the Use role for Others.
Missing permissions to the following integration:
, a button will appear allowing you to grant permissions to this pipeline and retry the run. The option is available for users with Use and Manage role in the integration.![Adding pipeline to allowed pipelines in integration](/docs/static/articles/integrations/manage-integrations/manage-integrations-14.png)
Managing integrations
Workspace integrations can be managed in the Integrations tab. There you can add and remove them, and edit their details: name, access data, and permissions. Integrations assigned to specific project(s) are displayed only in the Integrations tab of this project.
Integration management screen
In the Usage tab in an integration you can find a list of synchronized projects using the given integration. You can access the project directly by clicking on its name.
Projects using an integration
Integrations in YAML
If you manage your pipelines with YAML, make sure to provide the identifier of the integration to the actions that are using it. Here's an example:
- action: "Upload files to AWS S3"
type: "AMAZON_S3"
input_type: "BUILD_ARTIFACTS"
bucket_name: "buddy-tests-files"
local_path: "/build"
remote_path: "/var/www/mysite/"
acl: "PRIVATE"
integration: "my_integration"
Identifier
Identifiers are used as a reference in YAML, variables and scripts. Once created, they cannot be changed.
You can find the ID on the integration's tile on the Integrations page:
Google Cloud integration's identifier
If you decide to change the integration name, the identifier won't be changed.
Switch integration
To do it, open the Integrations page, click the burger menu (3 dots), and click Switch integration:
Switching integration
A window will appear where you can select an existing integration from the dropdown menu or create a new one.
Switch integration window
Last modified on July 4, 2024