Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

115 lines
6.2 KiB
Markdown
Raw Permalink Normal View History

2019-08-23 14:22:47 -07:00
---
2023-06-02 21:41:36 -07:00
title_tag: "Continuous Delivery for the Cloud"
meta_desc: Pulumi's approach to infrastructure as code is great for CI/CD because it uses source code to model cloud resources and integrates into any CI/CD system.
title: Continuous Delivery
h1: Pulumi & Continuous delivery
2023-06-08 16:15:52 -07:00
meta_image: /images/docs/meta-images/docs-meta.png
2019-08-23 14:22:47 -07:00
menu:
usingpulumi:
name: Continuous Delivery
2019-08-23 14:22:47 -07:00
identifier: cont_delivery
2023-10-05 10:43:11 -07:00
weight: 5
2019-08-23 14:22:47 -07:00
aliases:
- /docs/reference/cd/
- /docs/console/continuous-delivery/
- /docs/guides/continuous-delivery/
2019-08-23 14:22:47 -07:00
---
Pulumi's approach to infrastructure as code is great for continuous delivery, because it uses source code to model
cloud resources. This means updates to your cloud infrastructure can be reviewed, validated, and tested using the same
process that you have today. For example, doing code reviews via Pull Requests, running code through linters or static
analysis tools, and running unit and integration tests as appropriate. It all "just works" for your cloud
infrastructure the same way it would for your application code.
2019-08-23 14:22:47 -07:00
Pulumi can easily integrate into any continuous integration/continuous delivery (CI/CD) system. If your CI/CD system isn't listed below or you are testing something new, see [adding support for CI/CD systems](/docs/using-pulumi/continuous-delivery/add-support-for-cicd-systems).
2019-08-23 14:22:47 -07:00
> Looking to troubleshoot failures related to running Pulumi in CI/CD? Check out our [CI/CD troubleshooting guide](/docs/using-pulumi/continuous-delivery/troubleshooting-guide).
2019-08-23 14:22:47 -07:00
<div class="supported-cicd-platforms">
<a href="/docs/using-pulumi/continuous-delivery/aws-code-services">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/aws-codedeploy.svg" alt="AWS Code Services">
<h4 class="no-anchor">AWS Code Services</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/azure-devops">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/azure-devops.svg" alt="Azure DevOps">
<h4 class="no-anchor">Azure DevOps</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/circleci">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/circleci.svg" alt="CircleCI">
<h4 class="no-anchor">CircleCI</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/codefresh">
2021-06-15 06:29:32 -07:00
<img src="/logos/tech/ci-cd/codefresh.svg" alt="Codefresh">
2019-08-23 14:22:47 -07:00
<h4 class="no-anchor">Codefresh</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/github-actions">
2021-06-15 06:29:32 -07:00
<img src="/logos/tech/ci-cd/github-actions.svg" alt="GitHub Actions">
2019-08-23 14:22:47 -07:00
<h4 class="no-anchor">GitHub Actions</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/gitlab-ci">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/gitlab-ci.svg" alt="GitLab CI">
<h4 class="no-anchor">GitLab CI</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/google-cloud-build">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/google-cloud-build.png" alt="Google Cloud Build">
<h4 class="no-anchor">Google Cloud Build</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/jenkins">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/jenkins.svg" alt="Jenkins">
<h4 class="no-anchor">Jenkins</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/octopus-deploy">
<img src="/logos/tech/ci-cd/octopus-deploy.svg" alt="Octopus Deploy">
<h4 class="no-anchor">Octopus Deploy</h4>
</a>
2023-05-15 17:51:16 -07:00
<a href="/docs/pulumi-cloud/deployments/">
Ced 2022 night before updates (#2169) * Update pull-request.yml (#71) * CED 2022 night before update (#81) * Add some docs for Automation API for Pulumi Deployments (#76) * Remove preview note from Pulumi YAML (#77) * Deployment marketing page (#67) * add preview sign-up page for Pulumi Deploy * add pulumi deployments signup page to navigation * use theme updates for icons * update meta description * Copy edits * add 'learn more' section to the bottom * center the learn list * Update copy in the three scenarios section * Add youtube video, buttons to jump to registration * update graphic * Revert "use theme updates for icons" - related theme PR is merged * Edit messaging about Automation API 10x stat * update learn more section, fix some height mismatches Co-authored-by: George Huang <george@pulumi.com> * Deployment docs (#70) * wip draft of Deployment docs setting up structure for others to collaborate * Increment weights * Update Continuous Delivery docs * Thorough redo until GET deployment * Add banner to Pulumi Service page & add slack * Update list deployments * Pass over logs docs * Config documentation (#2079) * Update go.mod * Update pull-request.yml (#71) * Empty commit to trigger a preview * wip (just pushing changes inbetween meetings throughout the day) * wip draft of Deployment docs setting up structure for others to collaborate * Increment weights * Thorough redo until GET deployment * Update Continuous Delivery docs * Update list deployments * Add banner to Pulumi Service page & add slack * Pass over logs docs * wip (just pushing changes inbetween meetings throughout the day) * Empty commit to trigger a preview * Update themes/default/content/docs/intro/pulumi-service/deployments.md Co-authored-by: susan evans <susan.ra.evans@gmail.com> * Update themes/default/content/docs/guides/continuous-delivery/github-app.md Co-authored-by: susan evans <susan.ra.evans@gmail.com> * Update themes/default/content/docs/guides/continuous-delivery/github-app.md Co-authored-by: susan evans <susan.ra.evans@gmail.com> * Addressing susan's feedback * add numbering to github app installation steps * Add cancel * Indent to fix lint-breaking issue * content updates * empty Signed-off-by: susanev <susan.ra.evans@gmail.com> * potentially final push? Signed-off-by: susanev <susan.ra.evans@gmail.com> Co-authored-by: Komal <komal@pulumi.com> Co-authored-by: George Huang <george@pulumi.com> Co-authored-by: Fraser Waters <fraser@pulumi.com> Co-authored-by: Frassle <Frassle@users.noreply.github.com> Co-authored-by: GH Action - Upstream Sync <action@github.com> Co-authored-by: Christian Nunciato <c@nunciato.org> Co-authored-by: susan evans <susan.ra.evans@gmail.com> * Pricing page update (#73) * Updates to pricing page * fix format Signed-off-by: susanev <susan.ra.evans@gmail.com> * edit Signed-off-by: susanev <susan.ra.evans@gmail.com> Co-authored-by: susanev <susan.ra.evans@gmail.com> * Update security whitepaper date * Updated CED page to remove registration and add 'join now' button (#79) Co-authored-by: Sarah Hughes <sarah@pulumi.com> Signed-off-by: susanev <susan.ra.evans@gmail.com> Co-authored-by: Justin Van Patten <jvp@justinvp.com> Co-authored-by: Ian Wahbe <ian@wahbe.com> Co-authored-by: Sarah Hughes <sarah@pulumi.com> Co-authored-by: George Huang <george@pulumi.com> Co-authored-by: meagancojocar <50200557+meagancojocar@users.noreply.github.com> Co-authored-by: Komal <komal@pulumi.com> Co-authored-by: Fraser Waters <fraser@pulumi.com> Co-authored-by: Frassle <Frassle@users.noreply.github.com> Co-authored-by: GH Action - Upstream Sync <action@github.com> Co-authored-by: Christian Nunciato <c@nunciato.org> Co-authored-by: susan evans <susan.ra.evans@gmail.com> Signed-off-by: susanev <susan.ra.evans@gmail.com> Co-authored-by: GH Action - Upstream Sync <action@github.com> Co-authored-by: Christian Nunciato <c@nunciato.org> Co-authored-by: Justin Van Patten <jvp@justinvp.com> Co-authored-by: Ian Wahbe <ian@wahbe.com> Co-authored-by: Sarah Hughes <sarah@pulumi.com> Co-authored-by: George Huang <george@pulumi.com> Co-authored-by: meagancojocar <50200557+meagancojocar@users.noreply.github.com> Co-authored-by: Komal <komal@pulumi.com> Co-authored-by: Fraser Waters <fraser@pulumi.com> Co-authored-by: Frassle <Frassle@users.noreply.github.com> Co-authored-by: susan evans <susan.ra.evans@gmail.com>
2022-11-01 21:17:17 -07:00
<img src="/logos/brand/avatar-on-white.png" alt="Pulumi Deployments">
<h4 class="no-anchor">Pulumi Deployments</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/pulumi-kubernetes-operator">
<img src="/logos/tech/ci-cd/kubernetes.png" alt="Pulumi Kubernetes Operator">
<h4 class="no-anchor">Pulumi Kubernetes Operator</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/teamcity">
2021-06-15 20:20:54 -07:00
<img src="/logos/tech/ci-cd/teamcity.svg" alt="JetBrains TeamCity">
<h4 class="no-anchor">JetBrains TeamCity</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/spinnaker">}}">
<img src="/logos/tech/ci-cd/spinnaker.svg" alt="Spinnaker">
<h4 class="no-anchor">Spinnaker</h4>
</a>
<a href="/docs/using-pulumi/continuous-delivery/travis">
2019-08-23 14:22:47 -07:00
<img src="/logos/tech/ci-cd/travis-ci.svg" alt="TravisCI">
<h4 class="no-anchor">TravisCI</h4>
</a>
</div>
> Pulumi can also bridge results from your CI/CD system with GitHub, surfacing the results of stack updates
> on GitHub pull requests. See the [Pulumi GitHub App](/docs/using-pulumi/continuous-delivery/github-app/) for more information.
2019-08-23 14:22:47 -07:00
### Configuration and Secrets
Pulumi is designed to be entirely code-centric, including the way in which configuration and secrets are managed.
Configuration values and secrets are stored safely inside of `Pulumi.yaml` files, which you will commit.
The source is effectively everything that Pulumi needs to for deployment, with minimal external dependencies.
Secret configuration values are encrypted on [app.pulumi.com](https://app.pulumi.com) and are safe to check into your
source code repository. But you can use your own secrets provider, ensuring that only you have access to your
sensitive information. See [Managing Secrets with Pulumi](/blog/managing-secrets-with-pulumi/) for more information.
2019-08-23 14:22:47 -07:00
### Managing Complex Environments
Most real-world environments are complex. Perhaps you have a networking stack that's independent from your data
and application stacks. Pulumi [supports "stack references"](/docs/guides/organizing-projects-stacks), which
permit one stack to depend upon another. This facilitates continuous delivery and integration at scale.
2019-08-23 14:22:47 -07:00
### Using Branches for Environments
Pulumi is agnostic to what sort of branching strategy you take. Most customers use Git-based flows; the most common is
to use one branch-per-[stack](/docs/concepts/stack/). This allows you to control deployments to environments
2019-08-23 14:22:47 -07:00
using your usual commit, code review, and approval process, such as GitHub pull requests.
If you are using GitHub pull requests to trigger updates, you will likely want to use the
[Pulumi GitHub App](/docs/using-pulumi/continuous-delivery/github-app/). This gives you interactive infrastructure change previews
2019-08-23 14:22:47 -07:00
inside of your Pull Request, making it easier to see, review, and comment on any changes before a deployment occurs.