Skip to content

Commit bddc0bc

Browse files
committed
feat(docs): add docs for project deployment freezes
Add warning about global deployment freezes becoming an Enterprise feature
1 parent 1f7f7d1 commit bddc0bc

File tree

2 files changed

+165
-7
lines changed

2 files changed

+165
-7
lines changed

src/pages/docs/deployments/deployment-freezes.md renamed to src/pages/docs/deployments/deployment-freezes/index.md

+27-7
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@ modDate: 2024-05-22
55
title: Deployment freezes
66
description: Deployment freezes allow you to pause deployments for a specified time range
77
navOrder: 170
8+
hideInThisSectionHeader: true
89
---
910

10-
Deployment freezes allow you to prevent deployments for a configured amount of time. This is useful when you want to prevent certain projects deploying to certain environments within a specific time frame. Without deployment freezes, you would need to manually disable specific projects or machines to stop the deployments.
11+
:::div{.warning}
12+
**Deployment Freezes is currently in early access.** When the feature becomes generally available, only enterprise customers will be able to create Deployment Freezes that apply to multiple projects.
13+
However, all customers will be able to create freezes on a per-project basis. Any freezes created prior to this change will be carried forward.
14+
:::
15+
16+
Deployment freezes allow you to prevent deployments for a configured amount of time. This is useful when you want to prevent certain projects deploying to certain environments within a specific time frame. Without deployment freezes, you would need to manually disable specific projects or machines to stop the deployments.
1117

1218
Examples of how deployment freezes could be used:
1319

@@ -18,16 +24,17 @@ Examples of how deployment freezes could be used:
1824
As deployment freezes are scoped to projects and environments, both projects and environments will need to be assigned to the freeze. This will ensure that projects and environments that are not frozen will still deploy.
1925

2026
While a deployment freeze is in place for a project and environment:
27+
2128
- New deployments are prevented from being created
2229
- Any existing deployments that start executing during the freeze will fail
2330
- Automatically triggered deployments fail, except for deployments created by machine triggers
2431

25-
2632
## Pre-requisites
27-
As a deployment freeze needs to be scoped to projects and environments, projects and environments will need to be created before a deployment freeze can be created. If you plan to use tenant-scoped freezes, you'll need to have tenants configured as well.
2833

34+
As a deployment freeze needs to be scoped to projects and environments, projects and environments will need to be created before a deployment freeze can be created. If you plan to use tenant-scoped freezes, you'll need to have tenants configured as well.
2935

3036
## Create a deployment freeze
37+
3138
1. Navigate to **Configuration ➜ Deployment Freezes** and click **ADD DEPLOYMENT FREEZE**
3239
2. Enter a name for your deployment freeze
3340
3. Set a start and end time for your freeze
@@ -40,16 +47,18 @@ As a deployment freeze needs to be scoped to projects and environments, projects
4047

4148
Note: You must have at least one type of scope (project or tenant) configured before you can save the deployment freeze.
4249

43-
4450
## Scoping deployment freezes
51+
4552
Deployment freezes can be scoped in the following ways:
53+
4654
- Projects
4755
- Environments
4856
- Tenants
4957

5058
During deployment, Octopus will block deployments for projects to a certain environment if a freeze is scoped to that project and environment. For example, if a freeze is active and is assigned to Project A in Production, Project A will not be deployed to Production but can still be deployed to any other environment according to the lifecycle.
5159

5260
### Tenant scope
61+
5362
When using tenant scoping, deployments will only be blocked for the specific tenants included in the freeze while other tenants can still receive deployments. In the tenant scope section of the freeze configuration:
5463

5564
1. Click **Assign Tenants** to select the tenants to include in the freeze
@@ -61,34 +70,41 @@ When using tenant scoping, deployments will only be blocked for the specific ten
6170
The tenant scope table will show you all assigned tenants and their associated project and environment combinations.
6271

6372
## Recurring freezes
73+
6474
You can set up deployment freezes that automatically repeat on a schedule. This is useful for:
75+
6576
- Daily protection windows during business hours
6677
- Weekly maintenance windows
6778
- Monthly release cycles
6879
- Annual business events
6980

7081
The system supports these recurring patterns:
82+
7183
- Daily
7284
- Weekly
7385
- Monthly
7486
- Annual
7587
- Custom... (for more complex recurrence patterns)
7688

7789
## Permissions
90+
7891
To create and edit a deployment freeze, the DeploymentFreezeAdminister system permission is required. In addition, permissions will need to be scoped to all requested projects and environments when creating, editing or overriding a deployment freeze.
7992

8093
For example, imagine a deployment freeze that applies to
81-
* Car Rental project
82-
* To the Production environment
94+
95+
- Car Rental project
96+
- To the Production environment
8397

8498
You will be allowed to view this deployment freeze on the **Deployment Freezes** page if your user doesn't have the DeploymentFreezeAdminister system permission. If your user has the DeploymentFreezeAdminister system permission and permissions scoped to the Car Rental project and Production environment, they will be able to view, edit and override this freeze.
8599

86100
The DeploymentFreezeAdminister permission is included in the System Administrator, System Manager and Space Manager roles.
87101

88102
## Overriding a freeze
89-
Following on from the example above, imagine a scenario where a deployment freeze is currently active for the Car Rental project to the Production environment. While the freeze is active, a developer discovers that there is a bug in the production code and a fix needs to be rolled out immediately. In this scenario, the freeze can be overridden to deploy the fix to Production even while the freeze is active. After the fix is deployed, the freeze will still be in place and behave as expected.
103+
104+
Following on from the example above, imagine a scenario where a deployment freeze is currently active for the Car Rental project to the Production environment. While the freeze is active, a developer discovers that there is a bug in the production code and a fix needs to be rolled out immediately. In this scenario, the freeze can be overridden to deploy the fix to Production even while the freeze is active. After the fix is deployed, the freeze will still be in place and behave as expected.
90105

91106
To override a freeze:
107+
92108
- Navigate to the **Deploy A Release** page of your chosen project.
93109
- You should see an information box that shows the affected environments in the freeze
94110
- If you have the correct permissions, the Deploy button should be green.
@@ -105,16 +121,20 @@ To override a freeze:
105121
:::
106122

107123
## Deployment freezes and automatic deployments
124+
108125
During deployment freezes, automatic deployments based on deployment target triggers are allowed. This ensures that your deployment targets will be updated with the latest deployments when you scale up.
109126

110127
All other automatic deployments, such as scheduled deployment or automatic lifecycle promotions, are blocked by deployment freezes.
111128

112129
## Automation and integration
130+
113131
You can automate and integrate deployment freezes into your workflows using:
132+
114133
- The Octopus REST API with the Go client
115134
- The Terraform provider with the `octopusdeploy_deployment_freeze` resource
116135

117136
For examples and detailed information, refer to:
137+
118138
- [Octopus REST API - Go Client](https://github.com/OctopusDeploy/go-octopusdeploy)
119139
- [Terraform provider: Deployment Freeze example](https://github.com/OctopusDeployLabs/terraform-provider-octopusdeploy/tree/main/examples/resources/octopusdeploy_deployment_freeze)
120140

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
---
2+
layout: src/layouts/Default.astro
3+
pubDate: 2025-03-25
4+
modDate: 2025-03-25
5+
title: Project deployment freezes
6+
navTitle: Project deployment freezes
7+
description: Project deployment freezes allow you to pause deployments in a project for a specified time range
8+
---
9+
10+
:::div{.hint}
11+
With multi-project deployment freezes becoming an **Enterprise** license feature, we are introducing per-project deployment freezes for **all customers** in Octopus Server version **2025.2**
12+
:::
13+
14+
Project deployment freezes allow you to prevent deployments for a configured amount of time. This is useful when you want to prevent a project from deploying to certain environments within a specific time frame. Without deployment freezes, you would need to manually disable specific projects or machines to stop the deployments.
15+
16+
Examples of how deployment freezes could be used:
17+
18+
- Freezing deployments for all projects to the production environment during the holiday shut-down period
19+
- Preventing deployments to production during business hours using recurring freezes
20+
- Blocking deployments to specific tenants during their critical business periods
21+
22+
As deployment freezes are scoped to environments and tenants, both environments and tenants will need to be assigned to the freeze. This will ensure that environments and tenants that are not frozen will still deploy.
23+
24+
While a deployment freeze is in place for a project and environment:
25+
26+
- New deployments are prevented from being created
27+
- Any existing deployments that start executing during the freeze will fail
28+
- Automatically triggered deployments fail, except for deployments created by machine triggers
29+
30+
## Pre-requisites
31+
32+
As a deployment freeze needs to be scoped to environments, these environments will need to be created before a deployment freeze can be created. If you plan to use tenant-scoped freezes, you'll need to have tenants configured as well.
33+
34+
## Create a deployment freeze
35+
36+
1. From a project, navigate to **Freezes** and click **Add Deployment Freeze**
37+
2. Enter a name for your deployment freeze
38+
3. Set a start and end time for your freeze
39+
4. (Optional) Configure recurring schedules if you want the freeze to repeat automatically
40+
5. (Optional) Select at least one environment that should be frozen
41+
6. (Optional) Set up the scope for your freeze by clicking **Assign Tenants**. Select at least one tenant with its associated environment.
42+
7. Save
43+
44+
Note: You must have at least one type of scope (environment or tenant) configured before you can save the deployment freeze.
45+
46+
## Scoping deployment freezes
47+
48+
Deployment freezes can be scoped in the following ways:
49+
50+
- Environments
51+
- Tenants
52+
53+
During deployment, Octopus will block deployments to a certain environment if a freeze is scoped to that environment. For example, if a freeze is active and is assigned to Production, the project will not be deployed to Production but can still be deployed to any other environment according to the lifecycle.
54+
55+
### Tenant scope
56+
57+
When using tenant scoping, deployments will only be blocked for the specific tenants included in the freeze while other tenants can still receive deployments. In the tenant scope section of the freeze configuration:
58+
59+
1. Click **Assign Tenants** to select the tenants to include in the freeze
60+
2. For each tenant, you can specify:
61+
- The tenant it applies to
62+
- The environment where the freeze will be active
63+
64+
The tenant scope table will show you all assigned tenants and their associated environments.
65+
66+
## Recurring freezes
67+
68+
You can set up deployment freezes that automatically repeat on a schedule. This is useful for:
69+
70+
- Daily protection windows during business hours
71+
- Weekly maintenance windows
72+
- Monthly release cycles
73+
- Annual business events
74+
75+
The system supports these recurring patterns:
76+
77+
- Daily
78+
- Weekly
79+
- Monthly
80+
- Annual
81+
- Custom... (for more complex recurrence patterns)
82+
83+
## Permissions
84+
85+
To create and edit a project deployment freeze, the **ProjectEdit** permission is required. In addition, permissions will need to be scoped to all requested environments when creating, editing or overriding a project deployment freeze.
86+
87+
For example, imagine a deployment freeze that applies to
88+
89+
- Car Rental tenant
90+
- To the Production environment
91+
92+
You will be allowed to view this deployment freeze on the **Freezes** page if your user doesn't have the **ProjectEdit** permission. If your user has the **ProjectEdit** permission and permissions scoped to the Car Rental tenant and Production environment, they will be able to view, edit and override this freeze.
93+
94+
## Overriding a freeze
95+
96+
Following on from the example above, imagine a scenario where a deployment freeze is currently active for the Car Rental tenant to the Production environment. While the freeze is active, a developer discovers that there is a bug in the production code and a fix needs to be rolled out immediately. In this scenario, the freeze can be overridden to deploy the fix to Production even while the freeze is active. After the fix is deployed, the freeze will still be in place and behave as expected.
97+
98+
To override a freeze:
99+
100+
- Navigate to the **Deploy A Release** page of your chosen project.
101+
- You should see an information box that shows the affected environments in the freeze
102+
- If you have the correct permissions, the Deploy button should be green.
103+
104+
:::figure
105+
![Override a project deployment freeze from deploy a release page](/docs/deployments/deployment-freeze-override.png)
106+
:::
107+
108+
- Click the **DEPLOY** button and enter a reason for the override in the dialog box.
109+
- Click **OVERRIDE AND DEPLOY**
110+
111+
:::figure
112+
![Override a project deployment freeze confirmation dialog](/docs/deployments/deployment-freeze-override-dialog-confirm.png)
113+
:::
114+
115+
## Project deployment freezes and automatic deployments
116+
117+
During deployment freezes, automatic deployments based on deployment target triggers are allowed. This ensures that your deployment targets will be updated with the latest deployments when you scale up.
118+
119+
All other automatic deployments, such as scheduled deployment or automatic lifecycle promotions, are blocked by deployment freezes.
120+
121+
## Automation and integration
122+
123+
You can automate and integrate deployment freezes into your workflows using:
124+
125+
- The Octopus REST API with the Go client
126+
- The Terraform provider with the `octopusdeploy_project_deployment_freeze` resource
127+
128+
For examples and detailed information, refer to:
129+
130+
- [Octopus REST API - Go Client](https://github.com/OctopusDeploy/go-octopusdeploy)
131+
- [Terraform provider: Project Deployment Freeze example](https://github.com/OctopusDeployLabs/terraform-provider-octopusdeploy/tree/main/examples/resources/octopusdeploy_project_deployment_freeze)
132+
133+
## Learn more
134+
135+
- [Projects](/docs/projects/)
136+
- [Environments](/docs/infrastructure/environments)
137+
- [Tenants](/docs/tenants)
138+
- Learn more about our concept of [Spaces](/docs/administration/spaces)

0 commit comments

Comments
 (0)