πŸ–₯️Infrastructure as Code (IaC)

Learn how to connect your preferred Infrastructure as Code (IaC) source to automatically sync configurations from Sedai.

Learn more about how Sedai works with CI/CD workflows and utilizes resource to IaC file mapping to ensure resource configurations remain in sync.

Sedai plans to support various IaC tools to offer coverage for diverse cloud environments and allow you to ensure your IaC & Sedai configurations are in sync. Sedai plans to support the following IaC providers:

  • Terraform Currently Available

  • CloudFormation Q2 Release Q2 Release

  • Azure Resource Manager Q2 Release

  • Google Cloud Deployment Manager Q2 Release

  • Pulumi Q3 Release

Currently, Sedai uses Terraform by default, and you can integrate your preferred Git-hosting platforms (Bitbucket, Github, or GitLab) to connect your IaC. To do this, navigate to Settings > IaC and click Add Integration. Select a provider to view specific details required to integrate.

You will additionally need to configure details about your template, file format, and whether PRs will be created for all resources or a subset of resources:

  • Configuration Template:

    • System (YAML format)

    • Use existing: Sedai will read and make changes to your IaC template. This option requires you to provide the HELM or Terraform CSV mapping so Sedai can locate the variable files and names.

  • Merge Request/File Format:

    • Single: Creates a single merge request/file containing configurations for all resources, including those that did not have a change

    • Multiple: Creates separate merge requests/files for each changed resource with its configuration changes

  • File Updates: You can set up your PRs to include configuration updates for all resources connected to Sedai, or for specific resources based on group(s). Learn more about setting up groups here.

Once you've entered the required details for your selected provider, click the Test Connection button to proceed. Make sure to enable Sedai to sync configuration changes and save the integration.


Bitbucket

The following details are required to connect Bitbucket:

RequiredDescription

Nickname

Give this integration a nickname within Sedai to distinguish it from other Bitbucket integrations.

Workspace ID

In Bitbucket, navigate to your profile to copy your Workspace ID. Be sure to add the actual Workspace ID (not the URL or project ID).

Repository Name

This can be found from the Repository details within Bitbucket.

Token

Sedai uses Bitbucket Repository Access Tokens to read IaC template files and create merge requests. View Atlassian Docs to learn more.

Optional: Add default branch or a self-hosted endpoint as a URL for your company's self-hosted infrastructure.


GitHub

The following details are required to connect GitHub:

RequiredDescription

Nickname

Give this integration a nickname within Sedai to distinguish it from other GitHub integrations.

Username

This is used to access your repository via API; we recommend using the username of whoever creates the integration.

Repository Name

The repository you want Sedai to push PRs to.

Default Branch

Defaults to main; enter an alternate branch to customize.

Token

Sedai uses GitHub Personal Access Tokens to read IaC template files and create merge requests. The provided token should have access to all the projects passed in the CSV file. View GitHub Docs to learn more.

Target File Location

The path for files that Sedai will add

Optional: Add a self-hosted endpoint as a URL for your company's self-hosted infrastructure.


GitLab

The following details are required to connect GitLab:

RequiredDescription

Nickname

Give this integration a nickname within Sedai to distinguish it from other GitLab integrations.

Username

This is used to access your repository via API; we recommend using the username of whoever creates the integration.

Project ID

This is used to validate the token and ensure Sedai can connect to your GitLab. The actual project ID can be set at the resource level, which can be provided in a CSV file.

Token

Sedai uses GitLab Personal Access Tokens to read IaC files and create merge requests. The provided token should have access to all the projects passed in the CSV file. Visit GitLab Docs to learn more about creating tokens.

Optional: Add a self-hosted endpoint as a URL for your company's self-hosted infrastructure.


Self-Hosted Endpoints

A self-hosted endpoint is a server or service created and maintained by your organization. This endpoint serves as a connection point between your IaC tool and the version control system (Bitbucket, GitLab, or GitHub)

Self-hosted endpoints allow you to control where your infrastructure code is stored, how it's managed, and who has access to it, providing more customization compared to cloud-based solutions provided by GitHub or Bitbucket.

When adding an IaC integration to Sedai, you can add your self-hosted input in the form of a URL:

https://your.endpoint.here

Learn more about self-hosted endpoints with BitBucket, GitHub, & GitLab:

Last updated