Skip to content

Commit a0ec9de

Browse files
jkodroffclaude
andauthored
docs(deployments): restructure into Concepts and Operations sections (#19699) (#19755)
- Move pages into concepts/ and operations/ (aliases preserved) - Merge intro into the Concepts landing; rewrite to be non-marketing - Rewrite Triggers page; make Source settings generic across VCS integrations - Split Runners into Pulumi-managed and Customer-managed pages - Add Deployment queue topic; remove all screenshots - Fix code-in-notes rendering (_notes.scss) - Sweep internal links repo-wide to new canonical paths Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 3e531f4 commit a0ec9de

86 files changed

Lines changed: 439 additions & 474 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

content/docs/administration/access-identity/oidc-issuers/kubernetes-eks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ This document outlines the steps required to configure Pulumi Cloud to accept El
2727
This integration is most often used to authenticate workloads that run Pulumi operations from inside an EKS cluster, without storing long-lived Pulumi access tokens. Two common scenarios:
2828

2929
- **[Pulumi Kubernetes Operator](/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/)** — Run Pulumi stacks as Kubernetes custom resources. The operator's workspace pods authenticate to Pulumi Cloud using the cluster's OIDC tokens instead of a static `PULUMI_ACCESS_TOKEN`.
30-
- **[Customer-managed deployment runners](/docs/deployments/deployments/runners/)** — Run Pulumi Deployments inside your own EKS cluster. The workflow runner fetches a Pulumi Pool token dynamically using its OIDC identity.
30+
- **[Customer-managed deployment runners](/docs/deployments/concepts/customer-managed-runners/)** — Run Pulumi Deployments inside your own EKS cluster. The workflow runner fetches a Pulumi Pool token dynamically using its OIDC identity.
3131

3232
{{< notes type="info" >}}
3333
This guide walks through the Pulumi Cloud UI. You can also configure OIDC Issuers via the [REST API](/docs/reference/cloud-rest-api/oidc-issuers/) or the [`OidcIssuer`](https://www.pulumi.com/registry/packages/pulumiservice/api-docs/oidcissuer/) resource in the Pulumi Service provider.

content/docs/administration/access-identity/oidc-issuers/kubernetes-gke.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ See ["Bound Tokens"](https://cloud.google.com/blog/products/containers-kubernete
2525
This integration is most often used to authenticate workloads that run Pulumi operations from inside a GKE cluster, without storing long-lived Pulumi access tokens. Two common scenarios:
2626

2727
- **[Pulumi Kubernetes Operator](/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/)** — Run Pulumi stacks as Kubernetes custom resources. The operator's workspace pods authenticate to Pulumi Cloud using the cluster's OIDC tokens instead of a static `PULUMI_ACCESS_TOKEN`.
28-
- **[Customer-managed deployment runners](/docs/deployments/deployments/runners/)** — Run Pulumi Deployments inside your own GKE cluster. The workflow runner fetches a Pulumi Pool token dynamically using its OIDC identity.
28+
- **[Customer-managed deployment runners](/docs/deployments/concepts/customer-managed-runners/)** — Run Pulumi Deployments inside your own GKE cluster. The workflow runner fetches a Pulumi Pool token dynamically using its OIDC identity.
2929

3030
{{< notes type="info" >}}
3131
This guide walks through the Pulumi Cloud UI. You can also configure OIDC Issuers via the [REST API](/docs/reference/cloud-rest-api/oidc-issuers/) or the [`OidcIssuer`](https://www.pulumi.com/registry/packages/pulumiservice/api-docs/oidcissuer/) resource in the Pulumi Service provider.

content/docs/administration/onboarding-guide/ways-of-working.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ It's common to give developers their own stacks for development and testing. Pul
9191

9292
- **Individual developer stacks**: Each developer gets their own complete environment
9393
- **Shared infrastructure**: Developers share costly resources like databases while having their own application instances
94-
- **[Review stacks](/docs/deployments/deployments/review-stacks/)**: Short-lived stacks for each pull request that are automatically torn down
95-
- **[TTL stacks](/docs/deployments/deployments/ttl/)**: Automatically destroyed after a specified timeframe to prevent cloud waste
94+
- **[Review stacks](/docs/deployments/concepts/review-stacks/)**: Short-lived stacks for each pull request that are automatically torn down
95+
- **[TTL stacks](/docs/deployments/concepts/ttl/)**: Automatically destroyed after a specified timeframe to prevent cloud waste
9696

9797
Use [stack references](/blog/iac-best-practices-applying-stack-references/) to factor out shared infrastructure and create flexible project architectures.
9898

@@ -125,7 +125,7 @@ While most teams start by running the Pulumi CLI manually, you'll eventually wan
125125

126126
**CI/CD platform options:**
127127

128-
- **[Pulumi Deployments](/docs/deployments/deployments/)** (recommended): Purpose-built for IaC deployments and integrated into Pulumi Cloud
128+
- **[Pulumi Deployments](/docs/deployments/concepts/)** (recommended): Purpose-built for IaC deployments and integrated into Pulumi Cloud
129129
- **[Pulumi Kubernetes Operator](/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/)**: Trigger deployments from within Kubernetes clusters
130130
- **Existing CI/CD solutions**: GitHub Actions, GitLab CI, Octopus Deploy, and [many others](/docs/iac/operations/continuous-delivery/)
131131

@@ -142,7 +142,7 @@ While most teams start by running the Pulumi CLI manually, you'll eventually wan
142142

143143
### Guarding against drift
144144

145-
Drift occurs when changes happen outside your IaC pipeline, causing conflicts between your last known deployment and your cloud resources' current state. This can cause security issues or outages during your next deployment. Pulumi supports [detecting and remediating drift](/docs/deployments/deployments/drift).
145+
Drift occurs when changes happen outside your IaC pipeline, causing conflicts between your last known deployment and your cloud resources' current state. This can cause security issues or outages during your next deployment. Pulumi supports [detecting and remediating drift](/docs/deployments/concepts/drift).
146146

147147
## Integrating with and extending Pulumi
148148

@@ -156,7 +156,7 @@ The well-documented, powerful API that powers the CLI and cloud console experien
156156
**[Pulumi Automation API](/docs/iac/concepts/automation-api/)**
157157
Embed IaC capabilities into any software, enabling custom tools, self-serve portals, complex deployment orchestrations, and even SaaS products that provision cloud resources.
158158

159-
**[Pulumi Cloud Webhooks](/docs/deployments/webhooks/)**
159+
**[Pulumi Cloud Webhooks](/docs/deployments/concepts/webhooks/)**
160160
React to lifecycle events in Pulumi Cloud by invoking custom REST API endpoints. Use these for posting to Slack channels, triggering test runs after deployments, and more.
161161

162162
### Writing your own IaC providers

content/docs/administration/self-hosting/components/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ scrape_configs:
468468
In order to enable [Pulumi Deployments](/docs/pulumi-cloud/deployments), the following must be configured:
469469
470470
* `PULUMI_SERVICE_METADATA_BLOB_STORAGE_ENDPOINT` or `PULUMI_LOCAL_OBJECTS` [object storage](#object-storage)
471-
* [Customer-Managed Workflow Runners](/docs/deployments/deployments/runners/) - You also need to update the `pulumi-workflow-agent.yaml` [configuration file](/docs/deployments/deployments/runners/#configuration-reference) by setting `service_url` to `<PULUMI_API_DOMAIN>`. Example:
471+
* [Customer-Managed Workflow Runners](/docs/deployments/concepts/customer-managed-runners/) - You also need to update the `pulumi-workflow-agent.yaml` [configuration file](/docs/deployments/concepts/customer-managed-runners/#configuration-reference) by setting `service_url` to `<PULUMI_API_DOMAIN>`. Example:
472472
473473
```yaml
474474
token: pul-d2d2….

content/docs/administration/self-hosting/components/deployments.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ aliases:
2020
To manage your state with a self-managed backend, such as a cloud storage bucket, see [State and Backends](/docs/concepts/state/).
2121
{{< /self-hosting-trial-note >}}
2222

23-
[Pulumi Deployments](/docs/deployments/deployments/) is fully supported in Kubernetes-managed self-hosted environments. If you're using Kubernetes to manage your self-hosted Pulumi Cloud installation, you can enable Pulumi Deployments features by configuring a Kubernetes-native workflow runner pool in Pulumi Cloud and installing one or more [customer-managed workflow runners](/docs/deployments/deployments/runners/) into your installation's Kubernetes cluster. In addition to deployments, customer-managed workflow runners also support [Insights](/docs/insights/) discovery scans and [policy evaluations](/docs/insights/policy/).
23+
[Pulumi Deployments](/docs/deployments/concepts/) is fully supported in Kubernetes-managed self-hosted environments. If you're using Kubernetes to manage your self-hosted Pulumi Cloud installation, you can enable Pulumi Deployments features by configuring a Kubernetes-native workflow runner pool in Pulumi Cloud and installing one or more [customer-managed workflow runners](/docs/deployments/concepts/customer-managed-runners/) into your installation's Kubernetes cluster. In addition to deployments, customer-managed workflow runners also support [Insights](/docs/insights/) discovery scans and [policy evaluations](/docs/insights/policy/).
2424

2525
To do so, follow these steps:
2626

content/docs/deployments/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ sections:
2727
- icon: rocket-launch
2828
heading: Deployments
2929
description: Managed CI/CD platform with git integration, automated drift detection and remediation, ephemeral review stacks for pull requests, scheduled operations, and TTL-based cleanup for temporary infrastructure.
30-
link: /docs/deployments/deployments/
30+
link: /docs/deployments/concepts/
3131
- icon: bell
3232
heading: Webhooks
3333
description: Trigger external systems and workflows in response to stack updates, deployments, drift detection, and policy violations. Integrates with Slack, Microsoft Teams, or custom webhooks.
34-
link: /docs/deployments/webhooks/
34+
link: /docs/deployments/concepts/webhooks/
3535

3636
- type: flat
3737
heading: Have questions?
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: Concepts
3+
title_tag: "Pulumi Deployments"
4+
h1: "Pulumi Deployments"
5+
meta_desc: What Pulumi Deployments is, why it exists, and an overview of its core concepts.
6+
meta_image: /images/docs/meta-images/docs-meta.png
7+
menu:
8+
deployments:
9+
parent: deployments-home
10+
identifier: deployments-concepts
11+
weight: 10
12+
aliases:
13+
- /docs/deployments/concepts/introduction/
14+
- /docs/deployments/deployments/
15+
- /docs/pulumi-cloud/deployments/
16+
- /docs/platform/deployments/
17+
- /docs/intro/pulumi-service/deployments/
18+
- /docs/intro/deployments/
19+
- /docs/intro/deployments/platform/
20+
- /docs/pulumi-cloud/deployments/platform/
21+
- /docs/pulumi-cloud/deployments/using/
22+
- /docs/pulumi-cloud/deployments/using-deployments/
23+
- /docs/deployments/deployments/reference/
24+
- /docs/pulumi-cloud/deployments/reference/
25+
- /docs/platform/deployments/reference/
26+
- /docs/intro/deployments/reference/
27+
---
28+
29+
Pulumi Deployments is a managed service that runs Pulumi operations — `pulumi up`, `preview`, `refresh`, and `destroy` — on Pulumi-hosted or self-hosted compute rather than on a developer's machine. You configure how a stack should be deployed once, and Pulumi Cloud runs those operations for you: on demand, in response to version control events, on a schedule, or through the REST API.
30+
31+
## Why Pulumi Deployments exists
32+
33+
Running infrastructure updates from local machines or hand-built CI pipelines is hard to keep consistent and secure. Every engineer needs cloud credentials, the toolchain has to be installed and version-pinned, and there is no shared record of what ran or who ran it.
34+
35+
Pulumi Deployments moves that work into a managed, isolated environment that already has the Pulumi CLI and language runtimes installed. Cloud credentials and secrets are supplied through [Pulumi ESC](/docs/pulumi-cloud/esc) and OIDC instead of living on laptops or in pipeline configuration, deployments can run automatically from your [version control system](/docs/integrations/version-control/), and every run is recorded in Pulumi Cloud. A stack's [deployment settings](/docs/deployments/concepts/settings/) capture everything a run needs — source location, credentials, environment variables, and build requirements — so the same deployment behaves the same way no matter what triggers it.
36+
37+
## In this section
38+
39+
- **[Deployments Settings](/docs/deployments/concepts/settings/)** — the per-stack configuration that defines how a deployment runs: source, credentials, environment variables, path and tag filters, and runner pool.
40+
- **[Deployment Triggers](/docs/deployments/concepts/triggers/)** — the ways a deployment is initiated, including the console's Click to Deploy, the REST API, and webhooks.
41+
- **[Drift Detection](/docs/deployments/concepts/drift/)** — detecting when deployed infrastructure no longer matches your Pulumi program, and optionally remediating it on a schedule.
42+
- **[TTL Stacks](/docs/deployments/concepts/ttl/)** — automatically destroying a stack at a set time, for temporary or ephemeral environments.
43+
- **[Review Stacks](/docs/deployments/concepts/review-stacks/)** — ephemeral environments stood up automatically for each pull request and torn down when it closes.
44+
- **[Scheduled operations](/docs/deployments/concepts/schedules/)** — running any Pulumi operation on a recurring schedule.
45+
- **[Pulumi-managed runners](/docs/deployments/concepts/pulumi-managed-runners/)** — the Pulumi-hosted compute that runs deployments by default, including its hardware and image.
46+
- **[Customer-managed runners](/docs/deployments/concepts/customer-managed-runners/)** — self-hosting that compute on your own infrastructure.
47+
- **[Webhooks](/docs/deployments/concepts/webhooks/)** — notifying external systems, or triggering other stacks, in response to events in your Pulumi organization.
48+
49+
For task-oriented walkthroughs — supplying cloud credentials, building custom images, configuring OIDC, and more — see the [Deployments guides](/docs/deployments/guides/).
50+
51+
## Getting started
52+
53+
To start using Pulumi Deployments:
54+
55+
1. Create a new project with the Pulumi Cloud [New Project Wizard](/docs/idp/concepts/new-project-wizard), which configures Deployments for your repository automatically, or
56+
1. Follow the [Getting Started guide](/docs/deployments/get-started/) to set it up on an existing project.

content/docs/deployments/deployments/runners.md renamed to content/docs/deployments/concepts/customer-managed-runners.md

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,24 @@
11
---
2-
title: Runners
3-
title_tag: Deployment runners | Pulumi Deployments
4-
meta_desc: How Pulumi Cloud executes your deployments — Pulumi-hosted and customer-managed workflow runners, their hardware, and the full configuration reference.
2+
title: Customer-managed runners
3+
title_tag: Customer-managed runners | Pulumi Deployments
4+
meta_desc: Self-host Pulumi workflow runners on your own infrastructure — supplying credentials and the full configuration reference for customer-managed runner pools.
55
meta_image: /images/docs/meta-images/docs-meta.png
66
menu:
77
deployments:
8-
name: Runners
9-
parent: deployments-deployments
10-
identifier: deployments-deployments-runners
11-
weight: 40
8+
name: Customer-managed runners
9+
parent: deployments-concepts
10+
identifier: deployments-concepts-customer-managed-runners
11+
weight: 90
1212
aliases:
13+
- /docs/deployments/concepts/runners/
14+
- /docs/deployments/deployments/runners/
1315
- /docs/pulumi-cloud/deployments/customer-managed-agents/
1416
- /docs/deployments/deployments/customer-managed-agents/
1517
- /docs/deployments/deployments/runs/customer-managed-agents/
1618
- /docs/deployments/deployments/runs/
1719
---
1820

19-
Every Pulumi Deployment runs in a container image on a *workflow runner* — the compute that executes your Pulumi program. Two settings control how a run works:
20-
21-
- The [image](/docs/deployments/guides/custom-images/): a Pulumi-managed Linux image by default, or a custom image when your project needs extra tools.
22-
- The runner: Pulumi-hosted by default, or [customer-managed](#customer-managed-workflow-runners) when you need to run on your own infrastructure.
23-
24-
## Hardware and operating system
25-
26-
When a deployment runs on a Pulumi-hosted workflow runner, it executes inside a Linux container with the following resources:
27-
28-
| Resource | Allocation |
29-
|---|---|
30-
| vCPU | 2 |
31-
| Memory | 8 GB |
32-
| Disk | A 32 GB volume, with roughly half available for your program's working files after the executor image and dependency caches |
33-
34-
With the default executor image, the container's operating system is Debian, regardless of the operating system of the host it runs on. If you supply a [custom executor image](/docs/deployments/guides/custom-images/), the operating system is whatever that image is built on. If a deployment depends on a specific OS, package manager, or system library, match it to the image you use.
35-
36-
These specifications apply to Pulumi-hosted workflow runners. Customer-managed workflow runners run on infrastructure you provision, so their hardware and operating system are whatever you configure.
21+
By default, deployments run on [Pulumi-managed runners](/docs/deployments/concepts/pulumi-managed-runners/). Customer-managed workflow runners let you self-host that compute on your own infrastructure instead — for example, to run within a private network — while supporting the same deployment triggers and workflow types.
3722

3823
## Customer-managed workflow runners
3924

@@ -47,7 +32,7 @@ Customer-Managed Workflow Runners allow you to self-host workflow runners, bring
4732

4833
<sup>1</sup> *Currently Linux and macOS are supported*
4934

50-
Customer-Managed Workflow Runners support all the [deployment triggers](/docs/deployments/deployments/#deployment-triggers) currently offered by Pulumi Deployments such as click to deploy, the Pulumi Deployments REST API, git push to deploy, Review Stacks, and remote Automation API. They also support running Insights discovery scans and policy evaluations.
35+
Customer-Managed Workflow Runners support all the [deployment triggers](/docs/deployments/concepts/triggers/) currently offered by Pulumi Deployments such as click to deploy, the Pulumi Deployments REST API, git push to deploy, Review Stacks, and remote Automation API. They also support running Insights discovery scans and policy evaluations.
5136

5237
{{% notes "info" %}}
5338
Customer-Managed Workflow Runners are available on the Business Critical edition of Pulumi Cloud. [Contact sales](/contact/?form=sales) if you are interested and want to enable Customer-Managed Workflow Runners.

0 commit comments

Comments
 (0)