diff --git a/src/pages/docs/administration/high-availability/design/octopus-for-high-availability-on-gcp.mdx b/src/pages/docs/administration/high-availability/design/octopus-for-high-availability-on-gcp.mdx
index 82d4ab5eb7..646ad58ba4 100644
--- a/src/pages/docs/administration/high-availability/design/octopus-for-high-availability-on-gcp.mdx
+++ b/src/pages/docs/administration/high-availability/design/octopus-for-high-availability-on-gcp.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Designing Octopus HA in GCP
description: Information on configuring Octopus High Availability hosted in Google Cloud Platform (GCP).
navOrder: 40
@@ -345,7 +345,7 @@ Once you've completed those steps, [install Octopus](/docs/installation/) and th
Changing the path only needs to be done once, and not on each node as the values are stored in the database.
:::
-### Load Balancing in Google Cloud
+### Load balancing in Google Cloud
To distribute traffic to the Octopus web portal on multiple nodes, you need to use a load balancer. Google Cloud provides two options you should consider to distribute HTTP/HTTPS traffic to your Compute Engine instances.
diff --git a/src/pages/docs/administration/high-availability/index.md b/src/pages/docs/administration/high-availability/index.md
index e2175706d4..25b9e8998c 100644
--- a/src/pages/docs/administration/high-availability/index.md
+++ b/src/pages/docs/administration/high-availability/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-08-24
+modDate: 2023-10-04
title: High Availability
description: Octopus High Availability (HA) enables you to run multiple Octopus Server nodes, distributing load and tasks between them.
hideInThisSection: true
@@ -42,7 +42,7 @@ The node limit is included in the license key in the NodeLimit node.
If you do not have that node in your license key then you are limited to a single node. If you recently purchased a license key and it is missing that node then reach out to [sales@octopus.com](mailto:sales@octopus.com).
-## How High Availablity Works
+## How High Availablity works
In broad terms, HA allows for load to be distributed between multiple Octopus Server nodes. How that load is distributed, specifically tasks, is more complex than "it's load balanced."
diff --git a/src/pages/docs/administration/high-availability/migrate/index.mdx b/src/pages/docs/administration/high-availability/migrate/index.mdx
index 7cede3db90..ca7e342422 100644
--- a/src/pages/docs/administration/high-availability/migrate/index.mdx
+++ b/src/pages/docs/administration/high-availability/migrate/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Migration
description: How to migrate from a stand-alone Octopus server to a High Availability (HA) setup.
navOrder: 30
@@ -102,7 +102,7 @@ The advantage of a new URL is:
-## Outage Windows
+## Outage windows
The below steps will cause an outage in Octopus Deploy. With all the prep work, the outage window should be small. If possible, we recommend making these change off-hours. In addition, you don't have to do them all in one outage window. You can move the database in one outage window, and the file system in the other outage window.
@@ -161,7 +161,7 @@ After you finish moving the database and file storage, it is time to turn back o
1. Assuming all goes well, disable maintenance mode.
1. Notify everyone of the new URL (if there is one).
-## Adding Additional Nodes
+## Adding additional nodes
After configuring a load balancer and moving the database and files, adding a new node is trivial.
diff --git a/src/pages/docs/administration/managing-infrastructure/lost-master-key.md b/src/pages/docs/administration/managing-infrastructure/lost-master-key.md
index 68e6145d43..3e1e0a4227 100644
--- a/src/pages/docs/administration/managing-infrastructure/lost-master-key.md
+++ b/src/pages/docs/administration/managing-infrastructure/lost-master-key.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Recovering after losing your Octopus Server and Master Key
description: A guide to recovering if the machine hosting Octopus Server dies irrecoverably, and you don't have the Master Key.
navOrder: 40
@@ -24,7 +24,7 @@ Octopus [encrypts important and sensitive data](/docs/security/data-encryption)
- Sensitive values in your deployment processes, like the password for a custom IIS App Pool user account.
- Sensitive values in your deployment targets, like the password for creating [Offline Drops](/docs/infrastructure/deployment-targets/offline-package-drop).
-## Recovering with a New Master Key
+## Recovering with a new Master Key
If you are confident with Octopus you can follow these steps to get back up and going. Otherwise, please get in contact with our [support team](https://octopus.com/support) so we can be available to help get you up and going.
diff --git a/src/pages/docs/administration/managing-infrastructure/performance/index.mdx b/src/pages/docs/administration/managing-infrastructure/performance/index.mdx
index 32a132d2d1..b21271a37a 100644
--- a/src/pages/docs/administration/managing-infrastructure/performance/index.mdx
+++ b/src/pages/docs/administration/managing-infrastructure/performance/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Performance
description: Octopus is all about reliable and repeatable deployments, but that doesn't mean it has to be slow. This page will help you tune your Octopus installation for the best performance in your scenario.
navOrder: 60
@@ -136,11 +136,11 @@ Delta compression doesn't always result in smaller package transfers. The algor
If your packages have a lot of static data, consider creating a package containing only that static data and deploying it only when it changes.
-### Custom Package Feed
+### Custom package feed
Consider using a custom package feed close to your deployment targets, and download the packages directly on the agent. This alleviates a lot of resource contention on the Octopus Server.
-### Retention Policy
+### Retention policy
The built-in package feed has its own [retention policy](/docs/administration/retention-policies/#set-builtinfeed-retentionpolicy). Ensure that is enabled to keep the amount of packages to store and index down.
@@ -148,19 +148,19 @@ The built-in package feed has its own [retention policy](/docs/administration/re
The package retention policy only deletes packages not referenced by a release or runbook. Setting the retention policy to 1 day means the package will be deleted 1 day after the release is deleted.
:::
-## File Storage
+## File storage
Octopus Deploy stores BLOB data (task logs, packages, project images, etc.) on the file system.
-### Task Logs \{#tip-task-logs}
+### Task logs \{#tip-task-logs}
Larger task logs put the entire Octopus pipeline under more pressure. The task log has to be transferred from the Tentacle to the server, it has to be saved to the file system, and is read when you are on the deployment or runbook screen. We recommend printing messages required to understand progress and deployment failures. The rest of the information should be streamed to a file, then published as a deployment [artifact](/docs/projects/deployment-process/artifacts).
-### Image Size
+### Image size
While it is fun to have gifs and fancy images for your projects consider the size of each image. Keep them under 100x100 pixels. This will reduce the amount of data you have to download from the Octopus Server.
-## Deployment Parallelism
+## Deployment parallelism
By default, Octopus will only run one process on each [deployment target](/docs/infrastructure/deployment-targets) at a time, queuing the rest. There may be times that you want to run multiple processes at a time. In those situations, there are three special variables that can be used to control the way Octopus runs steps in parallel:
diff --git a/src/pages/docs/administration/managing-infrastructure/server-configuration-and-file-storage/manually-uninstall-octopus-server.md b/src/pages/docs/administration/managing-infrastructure/server-configuration-and-file-storage/manually-uninstall-octopus-server.md
index 79a8f99d18..edc776a492 100644
--- a/src/pages/docs/administration/managing-infrastructure/server-configuration-and-file-storage/manually-uninstall-octopus-server.md
+++ b/src/pages/docs/administration/managing-infrastructure/server-configuration-and-file-storage/manually-uninstall-octopus-server.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Manually uninstall Octopus Server
description: Information on how to manually uninstall the Octopus Server.
navOrder: 1
@@ -9,7 +9,7 @@ navOrder: 1
When you uninstall the Octopus Server MSI, it automatically removes the application files from the installation folder, but that's it. This page describes how to manually clean up Octopus Server in part, or completely remove it from your server.
-## Why Would I Want To Clean Up? {#ManuallyuninstallOctopusServer-WhywouldIwanttocleanupinthefirstplace?}
+## Why would I want to clean up? {#ManuallyuninstallOctopusServer-WhywouldIwanttocleanupinthefirstplace?}
:::div{.problem}
diff --git a/src/pages/docs/administration/retention-policies/index.mdx b/src/pages/docs/administration/retention-policies/index.mdx
index eed455c79b..ca924680ac 100644
--- a/src/pages/docs/administration/retention-policies/index.mdx
+++ b/src/pages/docs/administration/retention-policies/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Retention policies
description: Retention policies allow you to specify the releases, packages and files you want to keep as well as the ones you want cleaned up.
navOrder: 70
@@ -204,7 +204,7 @@ Choosing the *A limited time* option will allow you to select the number of days
Only packages that are not associated with releases will be cleaned up. That means even if a package is older than the value you choose, if it's attached to an existing release, it won't be cleaned up until that release is also cleaned up.
:::
-## External Feeds
+## External feeds
Octopus does not apply any retention policies to external feeds. However the packages that are currently in-use can be retrieved from the API ([example](https://github.com/OctopusDeploy/OctopusDeploy-Api/blob/master/Octopus.Client/LINQPad/GetInUsePackages.linq)) and those results then used to remove packages from those feeds.
diff --git a/src/pages/docs/administration/sync-instances/index.md b/src/pages/docs/administration/sync-instances/index.md
index b01ffebb8a..a371bd38aa 100644
--- a/src/pages/docs/administration/sync-instances/index.md
+++ b/src/pages/docs/administration/sync-instances/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Sync multiple instances
description: How to keep two or more Octopus Deploy instances in sync.
navOrder: 45
@@ -17,7 +17,7 @@ Keeping multiple instances in sync is a complex task involving dozens if not hun
TL;DR; copying projects between instances should be done when all other options have been exhausted. There is no provided tooling to support syncing instances with different environments, tenants, or variable values. Due to the number of decisions and business rules, you will have to create and maintain a custom syncing process. Before making this decision, reach out to [customersuccess@octopus.com](mailto:customersuccess@octopus.com) to see if there are alternatives.
:::
-## Suitable Scenarios
+## Suitable scenarios
Split and sync instances only when Octopus lacks a critical feature to satisfy a company policy, industry regulation, or a business contract. The use cases we've seen in the past are:
@@ -104,7 +104,7 @@ We make that recommendation because, as you'll soon see, there are a lot of busi
The Octopus team has written a sample PowerShell tool, [SpaceCloner](https://github.com/OctopusDeployLabs/SpaceCloner), you can use as a reference or example for your syncing process. A lot of this documentation used lessons from writing that tool. While the SpaceCloner supports syncing instances with a known delta, we recommend using that tool as a guide. It was created with specific use cases in mind and probably won't support your hyper-specific use case.
-## Syncing Process
+## Syncing process
If you do determine the best course of action is to sync projects across multiple Octopus Deploy instances, then you will need to start designing a syncing process. While the actual business rules and decisions will vary between implementations, the core rules for any syncing process will remain the same.
@@ -130,7 +130,7 @@ It will be nearly impossible to know which instance is "right" and whether the c
It's okay to have known differences between the instances, such as different environments, lifecycles, variable values, tenants, deployment targets, channels, and more. But when something new is added, such as a new variable or step, it should be done on one instance and synced to the other instance. It is hard enough to detect when something is "new". A one-way sync will help keep conflicts to a minimum, and reduce complexity.
-### Data to Sync
+### Data to sync
Octopus Deploy is more than a deployment process and variables. A lot of scaffolding data is needed for everything to work correctly. The syncing process should allow for the syncing of the following data:
@@ -258,7 +258,7 @@ A deployment, and runbook run, have the same limitation. Issuing a `POST` comma
What this comes back to is auditability. If that data can be modified by any outside process then it is not auditable.
-### Syncing Order
+### Syncing order
In our experience, it is far easier to group data by type and sync them all together. For example, sync all the Project Groups before syncing Projects. That requires an order of precedence in syncing due to data dependencies. That order of precedence is:
@@ -383,7 +383,7 @@ In most cases, it doesn't make much sense to sync Accounts and Certificates. Bu
- Create an Account or Certificate with the same name on each instance but different details. You don't have to modify any variables.
- Re-use the same variable name but associate it to different Accounts or Certificates. The syncing process will only create new variables and insert dummy data.
-### Variable Scoping
+### Variable scoping
Syncing variables between instances with different environments is very complex due to scoping and variable types.
For all the examples below, the source instance has **Development** and **Test** while the destination instance has **Staging** and **Production**. The source instance has the following variables.
@@ -493,7 +493,7 @@ Both Accounts and Certificates are referenced by variables in either projects or
In most cases, it doesn't make much sense to sync Accounts and Certificates. But the variables referencing the Accounts and Certificates are used in Deployment and Runbook processes. In this case, the best option is to re-use the same variable name but associate it with different Accounts or Certificates.
-### Team User Role Scoping
+### Team User Role scoping
The Team user role scoping is used for permissions. For example, a team has access to edit a specific set of Tenants. In this case, it makes sense to exclude any Tenants not found on the destination instance from the team user role scope. It won't hurt anything as that Tenant doesn't exist. Most likely, the list of Tenants that particular team has permission to edit will be very different.
diff --git a/src/pages/docs/administration/upgrading/guide/automate-upgrades.mdx b/src/pages/docs/administration/upgrading/guide/automate-upgrades.mdx
index 5e8cd6fe40..e4b1e6277b 100644
--- a/src/pages/docs/administration/upgrading/guide/automate-upgrades.mdx
+++ b/src/pages/docs/administration/upgrading/guide/automate-upgrades.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-07-10
+modDate: 2023-10-04
title: How to automate Octopus Deploy upgrades
description: A how-to guide on how to automate Octopus Deploy upgrades
navOrder: 4
@@ -14,7 +14,7 @@ Automating the Octopus Deploy upgrade ensures all essential steps are executed d
This guide was written for upgrading Octopus Deploy on Windows.
-## Prep Work
+## Prep work
Before going down the automation path, it is critical to back up the master key and license key. If anything goes wrong, you might need these keys to do a restore. It is better to have the backup and not need it than need the backup and not have it. The master key doesn't change, while your license key changes, at most, once a year. Back them up once to a secure location and move on.
@@ -23,7 +23,7 @@ Before going down the automation path, it is critical to back up the master key
-## Upgrading Single Node Octopus Deploy instances
+## Upgrading single node Octopus Deploy instances
A single node Octopus Deploy instance is an instance not configured for [high availability](/docs/administration/high-availability). The instance is running on a single Windows Server, and as such, you can run this script to:
diff --git a/src/pages/docs/administration/upgrading/guide/index.md b/src/pages/docs/administration/upgrading/guide/index.md
index 6461b9b5f7..ca2c12e29a 100644
--- a/src/pages/docs/administration/upgrading/guide/index.md
+++ b/src/pages/docs/administration/upgrading/guide/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Upgrading a modern version of Octopus
description: Everything you need to know about upgrading a modern version of Octopus.
navOrder: 1
@@ -9,7 +9,7 @@ navOrder: 1
A modern version of Octopus Deploy is any version running on SQL Server. When Octopus Deploy was originally introduced, it ran on RavenDB. Octopus Deploy 3.x migrated from RavenDB to Microsoft SQL Server. This section contains guides to covering various use cases you might encounter when upgrading a modern version of Octopus Deploy.
-## Upgrade Scenarios
+## Upgrade scenarios
The default upgrade scenario is an in-place upgrade. Thousands of customers upgrade every month without errors. However, no upgrade process is ever 100% error-free 100% of the time. The typical errors we see are:
@@ -25,7 +25,7 @@ Please choose from one of five common upgrade scenarios:
- [Upgrading from Octopus 3.x to latest version](/docs/administration/upgrading/guide/upgrading-from-octopus-3.x-to-modern)
- [Upgrading host OS or .NET version](/docs/administration/upgrading/guide/upgrade-host-os-or-net)
-## Mitigating Risk
+## Mitigating risk
The best way to mitigate risk is to automate the upgrade and/or creating a test instance. Automation ensures all steps, including backups, are followed for every upgrade. A test instance allows you to test out upgrades and new features without affecting your main instance.
diff --git a/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-3.x-to-modern.mdx b/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-3.x-to-modern.mdx
index e91b97ff8a..dcd86b2127 100644
--- a/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-3.x-to-modern.mdx
+++ b/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-3.x-to-modern.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Upgrading from Octopus 3.x to the latest version
description: Information on how to upgrade from Octopus Deploy 3.x to the latest version
navOrder: 6
@@ -37,7 +37,7 @@ You should be safe doing an in-place upgrade of 3.x to the latest version of Oct
- Raised the [minimum requirements for hosting and using Octopus Server](https://octopus.com/blog/raising-minimum-requirements-for-octopus-server) (both Windows and SQL Server).
- Execution containers running on docker on workers were introduced.
-## Prep Work
+## Prep work
Before starting the upgrade, it is critical to back up the master key and license key. If anything goes wrong, you might need these keys to do a restore. It is better to have the backup and not need it than need the backup and not have it. The master key doesn't change, while your license key changes, at most, once a year. Back them up once to a secure location and move onto the next steps.
diff --git a/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-4.x-2018.x-to-modern.mdx b/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-4.x-2018.x-to-modern.mdx
index f6edd2b904..613e4a386e 100644
--- a/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-4.x-2018.x-to-modern.mdx
+++ b/src/pages/docs/administration/upgrading/guide/upgrading-from-octopus-4.x-2018.x-to-modern.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Upgrading from Octopus 4.x / 2018.x to latest version
description: Information on how to upgrade from Octopus Deploy 4.x or 2018.x to the latest version
navOrder: 5
@@ -34,7 +34,7 @@ It is generally safe to do an in-place upgrade from Octopus Deploy 4.x/2018.x to
The upgrade should work without error, but there are integration concerns to consider. This guide will step through the steps to mitigate those concerns.
-## Prep Work
+## Prep work
Before starting the upgrade, it is critical to back up the master key and license key. If anything goes wrong, you might need these keys to do a restore. It is better to have the backup and not need it than need the backup and not have it. The master key doesn't change, while your license key changes, at most, once a year. Back them up once to a secure location and move onto the next steps.
@@ -160,7 +160,7 @@ Creating a clone of an existing instance involves:
-## Rollback Failed Upgrade
+## Rollback failed upgrade
While unlikely, an upgrade may fail. It could fail on a database upgrade script, SQL Server version is no longer supported, license check validation, or plain old bad luck. Depending on what failed, you have a decision to make. If the cloned instance upgrade failed, it might make sense to start all over again. Or, it might make sense to roll back to a previous version. In either case, if you decide to roll back the process will be:
diff --git a/src/pages/docs/administration/upgrading/guide/upgrading-major-releases.mdx b/src/pages/docs/administration/upgrading/guide/upgrading-major-releases.mdx
index d027c12d8f..f259a8670b 100644
--- a/src/pages/docs/administration/upgrading/guide/upgrading-major-releases.mdx
+++ b/src/pages/docs/administration/upgrading/guide/upgrading-major-releases.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Upgrading major releases of Octopus Deploy
description: Information on how to upgrade major releases of Octopus Deploy.
navOrder: 3
@@ -36,7 +36,7 @@ In general, the process looks like this:
Learn more about [creating a test instance](/docs/administration/upgrading/guide/creating-test-instance).
-## Prep Work
+## Prep work
Before starting the upgrade, it is critical to back up the master key and license key. If anything goes wrong, you might need these keys to do a restore. It is better to have the backup and not need it than need the backup and not have it. The master key doesn't change, while your license key changes, at most, once a year. Back them up once to a secure location and move onto the standard upgrade process.
diff --git a/src/pages/docs/administration/upgrading/index.mdx b/src/pages/docs/administration/upgrading/index.mdx
index 038f2c0668..f9df15e6c8 100644
--- a/src/pages/docs/administration/upgrading/index.mdx
+++ b/src/pages/docs/administration/upgrading/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-07-10
+modDate: 2023-10-04
title: Upgrading Octopus
description: Everything you need to know about upgrading Octopus to a newer version.
navOrder: 40
@@ -22,7 +22,7 @@ Octopus Deploy connects to a SQL Server database, and can be hosted:
- As a Windows Service, installed via an MSI.
- In a [Linux](/docs/installation/octopus-server-linux-container) container.
-### Upgrade Process
+### Upgrade process
When running on Windows, the typical (manual) upgrade process is:
- Run the MSI to install the latest binaries.
@@ -107,7 +107,7 @@ Please pick from one of these upgrade scenarios. Any version 3.x or higher is c
Since Octopus Deploy 3.x, the backing database is SQL Server. Prior to Octopus Deploy 3.x, the backing database was RavenDB. That is why we consider any version released before 3.x a legacy upgrade.
:::
-## Mitigating Risk
+## Mitigating risk
The best way to mitigate risk is to automate the upgrade and/or create a test instance. Automation ensures all steps, including backups, are followed for every upgrade. A test instance allows you to test out upgrades and new features without affecting your main instance.
diff --git a/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/manual-upgrade.md b/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/manual-upgrade.md
index 15b5aa972f..a429b03366 100644
--- a/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/manual-upgrade.md
+++ b/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/manual-upgrade.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Manual upgrade
description: Information on how to manually upgrade to Octopus 2018.10 LTS from Octopus 2.6.5.
navOrder: 1
@@ -22,7 +22,7 @@ You can upgrade from **Octopus 2.6.5** to **Octopus 2018.10 LTS** by downloading
To perform an in-place upgrade, follow these steps:
-### 1. Back up Your Octopus 2.6.5 database and Master Key {#Manualupgrade-1.BackupyourOctopus2.6databaseandmasterkey}
+### 1. Back up your Octopus 2.6.5 database and Master Key {#Manualupgrade-1.BackupyourOctopus2.6databaseandmasterkey}
See the [Backup and restore](/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/backup-2.6/)[ page for instructions on backing up your database.](/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/backup-2.6)
diff --git a/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/upgrade-with-a-new-server-instance.mdx b/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/upgrade-with-a-new-server-instance.mdx
index 38351941cc..fc1983edc0 100644
--- a/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/upgrade-with-a-new-server-instance.mdx
+++ b/src/pages/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts/upgrade-with-a-new-server-instance.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Upgrade with a new server instance
description: Information on how to upgrade from Octopus 2.6.5 to a new Octopus instance.
navOrder: 2
@@ -12,7 +12,7 @@ This is the recommended way of performing an upgrade for larger installations. I
Be sure to read the [Upgrading from Octopus 2.6.5 to 2018.10 LTS](/docs/administration/upgrading/legacy/upgrading-from-octopus-2.6.5-2018.10lts) documentation page. You must have a working **Octopus 2.6.5** installation for the data migration.
-## Step by Step \{#Upgradewithanew3.0serverinstance-Stepbystep}
+## Step by step \{#Upgradewithanew3.0serverinstance-Stepbystep}
To upgrade to a modern version of Octopus Server, follow these steps:
diff --git a/src/pages/docs/approvals/jira-service-management/index.md b/src/pages/docs/approvals/jira-service-management/index.md
index 1e5f8de3eb..012d6fa542 100644
--- a/src/pages/docs/approvals/jira-service-management/index.md
+++ b/src/pages/docs/approvals/jira-service-management/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Jira Service Management Integration
description: Octopus Deploy can integrate with your Jira Service Management instance for deployment control using Change Requests/Issues
navOrder: 10
@@ -129,7 +129,7 @@ To enable a project to enforce a requirement for an approved CR:
![JSM Integration Project settings](/docs/approvals/jira-service-management/images/jsm-project-settings.png)
:::
-### Default Behavior
+### Default behavior
Deployments resulting in a CR creation will produce an issue with a Request Type of **Request a
change**
@@ -195,7 +195,7 @@ e.g `Octopus: Deploy "Web Site" version 1.0.1-hotfix-001 to "Dev"`
The title must match the format **exactly**, including the double-quotes.
:::
-### Respecting Change Windows
+### Respecting change windows
In addition to a change request being approved, a change must also be in its schedule change
window in order for the deployment to execute. The change window is controlled by the `Planned
@@ -212,7 +212,7 @@ The following list assumes the linked change is in an **approved** state.
**If at any time a `Planned end` is exceeded and the linked change request is not approved, the deployment will be terminated.**
-## Known Issues and limitations
+## Known issues and limitations
- Once an Issue is deemed to be related to a deployment, then only this Issue will be evaluated for
the deployment to proceed. If the Issue is incorrect, you will need to cancel the deployment,
diff --git a/src/pages/docs/approvals/servicenow/index.md b/src/pages/docs/approvals/servicenow/index.md
index 9c9ccb87dc..fd0e1ab60f 100644
--- a/src/pages/docs/approvals/servicenow/index.md
+++ b/src/pages/docs/approvals/servicenow/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: ServiceNow Integration
description: Octopus Deploy can integrate with your ServiceNow instance for deployment control using Change Request approvals
navOrder: 10
@@ -210,7 +210,7 @@ e.g `Octopus: Deploy "Web Site" version 1.0.1-hotfix-001 to "Dev"`
The title must match the format **exactly**, including the double-quotes.
:::
-### Respecting Change Windows
+### Respecting change windows
:::div{.warning}
This feature is only available for version 2022.3.3026 and later
diff --git a/src/pages/docs/deployments/azure/deploying-a-package-to-an-azure-web-app/using-deployment-slots-with-azure-web-apps.md b/src/pages/docs/deployments/azure/deploying-a-package-to-an-azure-web-app/using-deployment-slots-with-azure-web-apps.md
index 9b4c9a9964..d600ea0a92 100644
--- a/src/pages/docs/deployments/azure/deploying-a-package-to-an-azure-web-app/using-deployment-slots-with-azure-web-apps.md
+++ b/src/pages/docs/deployments/azure/deploying-a-package-to-an-azure-web-app/using-deployment-slots-with-azure-web-apps.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Using Deployment Slots with Azure Web Apps
description: Deploying Slots provide a nice way to implement Blue-Green deployments for Azure Web Apps.
---
@@ -27,7 +27,7 @@ The scripts below assume you have a variable named 'WebSite' that contains the n
Follow the steps for [Azure Web App targets](/docs/infrastructure/deployment-targets/azure/web-app-targets).
-### Step 2: Create Staging Slot {#UsingDeploymentSlotswithAzureWebApps-Step1-CreateStagingSlot}
+### Step 2: Create a staging slot {#UsingDeploymentSlotswithAzureWebApps-Step1-CreateStagingSlot}
Create a [Run an Azure PowerShell Script](/docs/deployments/azure/running-azure-powershell) step.
@@ -67,7 +67,7 @@ So your step should look like:
![](/docs/deployments/azure/deploying-a-package-to-an-azure-web-app/azure-remove-staging-slot-script.png)
:::
-### Step 3: Deploy Your Package {#UsingDeploymentSlotswithAzureWebApps-Step2-DeployyourPackage}
+### Step 3: Deploy your package {#UsingDeploymentSlotswithAzureWebApps-Step2-DeployyourPackage}
The next step is to deploy your package to the Staging slot. We do this by creating a [Deploy an Azure Web App](/docs/deployments/azure/deploying-a-package-to-an-azure-web-app) step.
@@ -94,7 +94,7 @@ As shown below:
You can choose to specify the slot directly on the deployment target, or directly on the step (if you wish to deploy to multiple different slots on the same Web App Service, for example), however, the slot on the target will take priority.
:::
-### Step 4: Swap the Staging and Production Slots {#UsingDeploymentSlotswithAzureWebApps-Step3-SwaptheStagingandProductionSlots}
+### Step 4: Swap the Staging and Production slots {#UsingDeploymentSlotswithAzureWebApps-Step3-SwaptheStagingandProductionSlots}
The final step is to create another Azure PowerShell step to swap the Staging and Production slots.
diff --git a/src/pages/docs/deployments/java/index.md b/src/pages/docs/deployments/java/index.md
index 4f223a3d00..dab9ae9dc3 100644
--- a/src/pages/docs/deployments/java/index.md
+++ b/src/pages/docs/deployments/java/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Java applications
description: Deploy to WildFly, Red Hat JBoss EAP and Tomcat using Octopus Deploy
navOrder: 70
@@ -46,7 +46,7 @@ See the section [Building SemVer Compatible Artifacts](#building_semver_compatib
Valid packages can then be added to the library using the [web based interface, or using the CLI tool](/docs/packaging-applications/package-repositories/built-in-repository/#pushing-packages-to-the-built-in-repository).
-#### Building SemVer Compatible Artifacts
+#### Building SemVer Compatible Artifacts {#building_semver_compatible_artifacts}
The most common incompatibility between Maven and SemVer formatting comes from the use of a dash to separate the package name from the version.
For example, by default Maven will build artifacts with names like `myapplication-1.0.0-SNAPSHOT.war`. To be managed by the built in Octopus library, this filename needs to be in the format `myapplication.1.0.0-SNAPSHOT.war`.
@@ -89,7 +89,7 @@ The target machine must have Java 1.8 installed, and the `java` executable must
The `Deploy to Tomcat via Manager` step takes advantage of the [Manager application](https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html) shipped with Tomcat to deploy Java applications. The following steps describe the process of deploying a web application (a WAR package) to Tomcat through Octopus Deploy.
-### 1. Configure Tomcat
+### 1. Configure Tomcat {#configure_tomcat}
Tomcat needs to be configured with a user that Octopus can use to log into the Manager API.
@@ -176,7 +176,7 @@ The `Deploy to WildFly or Red Hat JBoss EAP` step is used to deploy a package fr
* If you are deploying to a domain controller, the server groups that will have the deployment enabled must be specified in the `Enabled Server Groups` field. Likewise the server groups that will have the deployment disabled must be specified in the `Disabled Server Groups`. Multiple server groups can be specified separated by a comma. These fields has no effect when deploying to a standalone server.
-#### Defining Context Paths
+#### Defining context paths
There are multiple ways that the context of an application deployed to WildFly and JBoss EAP is defined.
diff --git a/src/pages/docs/deployments/patterns/elastic-and-transient-environments/cleaning-up-environments.md b/src/pages/docs/deployments/patterns/elastic-and-transient-environments/cleaning-up-environments.md
index 831568fb8f..d86e091a45 100644
--- a/src/pages/docs/deployments/patterns/elastic-and-transient-environments/cleaning-up-environments.md
+++ b/src/pages/docs/deployments/patterns/elastic-and-transient-environments/cleaning-up-environments.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Cleaning up Environments
description: Octopus can automatically remove unwanted machines from environments based on their health status.
navOrder: 3
@@ -9,13 +9,13 @@ navOrder: 3
Octopus can automatically remove unwanted machines from environments based on their health status. This is useful when an environment is scaled down and orphaned deployment targets remain in Octopus. Automatic environment clean up can be configured through machine policies.
-## Machine Policies {#Cleaningupenvironments-Machinepolicies}
+## Machine policies {#Cleaningupenvironments-Machinepolicies}
Machine policies are machine related settings that can be applied per-machine. They can be accessed at **Infrastructure ➜ Machine policies**.
In this example we will create a machine policy to automatically delete machines when they become unavailable.
-## Creating a Machine Policy for Environment Cleanup {#Cleaningupenvironments-Creatingamachinepolicyforenvironmentcleanup}
+## Creating a machine policy for environment cleanup {#Cleaningupenvironments-Creatingamachinepolicyforenvironmentcleanup}
1. Navigate to the *Machine policies* screen.
2. Create a new machine policy by selecting **Add machine policy**:
@@ -48,7 +48,7 @@ Machine deletion happens as part of health checks.
Read more about [machine policies](/docs/infrastructure/deployment-targets/machine-policies)
:::
-## Troubleshooting Automatic Environment Clean Up {#Cleaningupenvironments-Troubleshootingautomaticenvironmentcleanup}
+## Troubleshooting automatic environment clean up {#Cleaningupenvironments-Troubleshootingautomaticenvironmentcleanup}
Machine clean up is part of health checks and machine clean up logs are not stored. Machine clean up logging is written to the log of the health check task that performed the deletion. Audit events recording the automatic clean up of machines can be accessed via the **Configuration ➜ Diagnostics** page by selecting **Machine clean up events**, which redirects to the audit log of automatic machine removals.
diff --git a/src/pages/docs/deployments/patterns/elastic-and-transient-environments/deploying-to-transient-targets.md b/src/pages/docs/deployments/patterns/elastic-and-transient-environments/deploying-to-transient-targets.md
index 51d7e42629..6c127de942 100644
--- a/src/pages/docs/deployments/patterns/elastic-and-transient-environments/deploying-to-transient-targets.md
+++ b/src/pages/docs/deployments/patterns/elastic-and-transient-environments/deploying-to-transient-targets.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Deploying to Transient Targets
description: Transient deployment targets are targets that are intermittently available for a deployment.
navOrder: 0
@@ -15,7 +15,7 @@ Transient deployment targets are targets that are intermittently available for a
A typical Octopus deployment requires that all deployment targets are available when the deployment starts and will remain available while the deployment is in progress. Elastic Environments provides mechanisms for deploying to targets that may become unavailable while a deployment is in progress. You can also run a [health check](/docs/projects/built-in-step-templates/health-check) during a deployment, and based on those results opt to add or remove machines from the deployment.
-## Deploying to Targets That Become Unavailable During a Deployment {#Deployingtotransienttargets-Deployingtotargetsthatbecomeunavailableduringadeployment}
+## Deploying to Targets that become unavailable during a deployment {#Deployingtotransienttargets-Deployingtotargetsthatbecomeunavailableduringadeployment}
This example uses the OctoFX project that does a deployment to two roles: **RateServer** and **TradingWebServer**. We have decided to auto-scale the machines in the **TradingWebServer** role and want to continue deploying the web site to the available machines, ignoring any machines that are no longer available, perhaps due to being scaled down.
@@ -28,7 +28,7 @@ This example uses the OctoFX project that does a deployment to two roles: **Rate
To ensure that a machine which has been skipped is kept up to date, consider [keeping deployment targets up to date](/docs/deployments/patterns/elastic-and-transient-environments/keeping-deployment-targets-up-to-date).
:::
-## Including and Excluding Targets During a Deployment {#Deployingtotransienttargets-Includingandexcludingtargetsduringadeployment}
+## Including and excluding targets during a deployment {#Deployingtotransienttargets-Includingandexcludingtargetsduringadeployment}
In this example, OctoFX will deploy to **RateServer** and then run a Health Check step before it deploys to **TradingWebServer**, ensuring that only currently available targets are involved in the deployment.
diff --git a/src/pages/docs/deployments/patterns/elastic-and-transient-environments/immutable-infrastructure.md b/src/pages/docs/deployments/patterns/elastic-and-transient-environments/immutable-infrastructure.md
index 9e2b64807a..7330e74c5d 100644
--- a/src/pages/docs/deployments/patterns/elastic-and-transient-environments/immutable-infrastructure.md
+++ b/src/pages/docs/deployments/patterns/elastic-and-transient-environments/immutable-infrastructure.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Immutable Infrastructure
description: This guide covers deploying to immutable infrastructure where a new version of the infrastructure is provisioned and the old infrastructure is terminated.
navOrder: 4
@@ -17,18 +17,18 @@ The features in [Elastic and Transient Environments](/docs/deployments/patterns/
In this example we will create an infrastructure project and an application project. The infrastructure project will provision new Tentacles and terminate the old ones. The application project gets deployed to the Tentacles. We will then automate deploying our application to brand new infrastructure with each release.
-## Machine Policy {#ImmutableInfrastructure-Machinepolicy}
+## Machine policy {#ImmutableInfrastructure-Machinepolicy}
The Tentacles provisioned in this guide belong to the **Immutable Infrastructure** machine policy. For now, create a new machine policy called **Immutable Infrastructure** and leave all of the settings at their default value.
-## Application Project {#ImmutableInfrastructure-Applicationproject}
+## Application project {#ImmutableInfrastructure-Applicationproject}
For this demonstration, let's create a project called **Hello World** that will run a script echoing "Hello World" to each of our Tentacles. In practice, this would be the project that deploys your application to the Tentacles.
1. Create a project called **Hello World**.
2. Add a script step that outputs "Hello World" on each Tentacle:
-## Infrastructure Project {#ImmutableInfrastructure-Infrastructureproject}
+## Infrastructure project {#ImmutableInfrastructure-Infrastructureproject}
The infrastructure project runs a script that provisions two new Tentacles and removes any old Tentacles in the environment we are deploying to. In practice this project would create your new infrastructure, add it to your load balancer and terminate your old infrastructure.
@@ -49,11 +49,11 @@ At this stage you should be able to provision new Tentacles by creating a releas
You could also create and deploy a release of the **Hello World** project to your shiny new Tentacles, but it requires a lot of button clicking.
-## Automating All the Things {#ImmutableInfrastructure-Automatingallthethings}
+## Automating *all the things* {#ImmutableInfrastructure-Automatingallthethings}
Imagine a developer makes a change to Hello World and would like to deploy it. At this stage, they would need to create and deploy a release of the Hello World Infrastructure project, wait for the new infrastructure to become available and then create and deploy a release of Hello World. It is possible but clunky. Also, someone would be required to remove all of the orphaned deployment targets left in Octopus when new Tentacles are provisioned.
-### Cleaning Machines {#ImmutableInfrastructure-Cleaningmachines}
+### Cleaning machines {#ImmutableInfrastructure-Cleaningmachines}
Cleaning up old Tentacles can be accomplished through the use of machine policies. The **Immutable Infrastructure** machine policy that we created earlier can be edited so that it performs health checks more frequently, doesn't mind if machines are unavailable during that health check and automatically removes unavailable machines after a period of time. This is perfect for ensuring the Tentacles that we terminate are automatically cleaned up in a timely manner.
@@ -67,7 +67,7 @@ Cleaning up old Tentacles can be accomplished through the use of machine policie
![](/docs/deployments/patterns/elastic-and-transient-environments/images/5865677.png)
:::
-### Automatically Deploying {#ImmutableInfrastructure-Automaticallydeploying}
+### Automatically deploying {#ImmutableInfrastructure-Automaticallydeploying}
The **Hello World** project can be configured to automatically deploy when a new deployment target becomes available. Once this has been configured, any Tentacles created when **Hello World Infrastructure** is deployed will automatically receive the current successful deployment of the **Hello World** project.
@@ -84,7 +84,7 @@ Create and deploy a new release of **Hello World Infrastructure**. You should n
We are almost there! Next we need to bump the version of **Hello World** and automatically deploy it.
-### Automatically Deploying a New Release {#ImmutableInfrastructure-Automaticallydeployinganewrelease}
+### Automatically deploying a new release {#ImmutableInfrastructure-Automaticallydeployinganewrelease}
Octopus will automatically deploy the current successful deployment for a project. That means if you deploy release 1.0.0 and then create release 1.0.1, the version 1.0.0 will continue to be deployed until 1.0.1 has been manually deployed. This is not ideal for immutable infrastructure, because we do not want to deploy 1.0.1 to our old infrastructure, so we have no way to indicate to Octopus that it should start deploying release 1.0.1. Enter auto deploy overrides. By creating both a new release and an auto deploy override when our infrastructure is provisioned, we can indicate to Octopus that the new release should be deployed to the new infrastructure.
diff --git a/src/pages/docs/deployments/patterns/rollbacks/dotnet-windows-rollbacks/index.mdx b/src/pages/docs/deployments/patterns/rollbacks/dotnet-windows-rollbacks/index.mdx
index 0a023d42f7..8241b148dc 100644
--- a/src/pages/docs/deployments/patterns/rollbacks/dotnet-windows-rollbacks/index.mdx
+++ b/src/pages/docs/deployments/patterns/rollbacks/dotnet-windows-rollbacks/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Rollback .NET Application on Windows Server
description: A guide on how to rollback a .NET application hosted on Windows Servers.
navOrder: 5
@@ -19,7 +19,7 @@ This guide will walk through rolling back .NET Windows Services and .NET Web App
Rolling back a database is out of the scope of this guide. As stated in this [article](https://octopus.com/blog/database-rollbacks-pitfalls), rolling back a database schema change could result in wrong or deleted data. This guide focuses on scenarios where there were no database changes or the database changes are backward compatible. Because the database changes are out of scope for rollbacks, the database packages will be "skipped" during the rollback process.
-## Existing Deployment Process
+## Existing deployment process
For this guide, we will start with the following deployment process for the OctoFX application:
@@ -38,11 +38,11 @@ For this guide, we will start with the following deployment process for the Octo
View the deployment process on our [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/01-octofx-original/deployments/process). Please login as a guest.
:::
-## Zero Configuration Rollback
+## Zero configuration rollback
-## Simple Rollback Process
+## Simple rollback process
The typical rollback strategy is to skip specific steps and run additional ones during a rollback. In this example, the database steps will be skipped with another step to [prevent that release from progressing](/docs/releases/prevent-release-progression) will run during a rollback.
@@ -65,11 +65,11 @@ The updated deployment process will be:
View the deployment process on our [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/02-octofx-simple-rollback/deployments/process). Please login as a guest.
:::
-### Calculate Deployment Mode
+### Calculate deployment mode
-### Skip Database Deployment Steps
+### Skip database deployment steps
The two steps related to database deployments, Run Database Creation Runbook and Deploy OctoFX Database, should be skipped during a rollback. Unlike code, databases cannot easily be rolled back without risking data loss. For most rollbacks, you won't have database changes. However, a rollback could accidentally be triggered with a database change. For example, rolling back a change in **Test** to unblock the QA team. Skipping these steps during the rollback reduces the chance of accidental data loss.
@@ -85,11 +85,11 @@ We also recommend adding or updating the notes field to indicate it will only ru
![windows updating notes field](/docs/deployments/patterns/rollbacks/dotnet-windows-rollbacks/images/windows-updating-notes-field.png)
:::
-### Prevent Release Progression
+### Prevent release progression
-## Complex Rollback Process
+## Complex rollback process
As mentioned earlier, re-deploying the website and windows service involves re-extracting the package, running configuration transforms, and any embedded scripts. Generally, those steps will finish within 60 seconds. However, re-deploying those packages carries a small amount of risk because variable snapshots can be updated. Or, the embedded scripts are complex and take time to finish.
@@ -123,7 +123,7 @@ The resulting process will be:
View that deployment process on [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/03-octofx-complex-rollback/deployments/process). Please login as a guest.
:::
-### Comparison to Simple Rollback Process
+### Comparison to simple rollback process
The complex rollback process and simple rollback process have some overlap. Please refer to the earlier section on how to configure these steps.
@@ -134,7 +134,7 @@ The complex rollback process and simple rollback process have some overlap. Ple
The primary difference between the simple and complex rollback process is the complex rollback process reuses the pre-existing extracted application.
-### Add System Variable to Skip Package Deployment
+### Add system variable to skip package deployment
Adding the system variable `Octopus.Action.Package.SkipIfAlreadyInstalled` will skip already installed packages. That makes a lot of sense for rollbacks but less sense for regular deployments. To _only_ skip package installation for rollbacks, set the variable value to be:
@@ -146,7 +146,7 @@ Adding the system variable `Octopus.Action.Package.SkipIfAlreadyInstalled` will
![windows skip if already installed](/docs/deployments/patterns/rollbacks/dotnet-windows-rollbacks/images/windows-skip-if-already-installed.png)
:::
-### Windows Service Rollback
+### Windows Service rollback
Updating the existing Windows Service to point to an earlier version of the application involves two steps.
@@ -165,7 +165,7 @@ Set the run condition for this step to:
#{Octopus.Action[Calculate Deployment Mode].Output.RunOnRollback}
```
-### Website Rollback
+### Website rollback
In modern versions of IIS, updating the physical path is an instantaneous action. All traffic is routed to that new path. To do that, use the [IIS Website - Update Property](https://library.octopus.com/step-templates/34118a0e-f872-435a-8522-d3c7f8515cb8/actiontemplate-iis-website-update-property) step template.
@@ -184,6 +184,6 @@ Set the run condition for this step to:
If you are using application pools instead of websites, use [IIS AppPool - Update Property](https://library.octopus.com/step-templates/183c1676-cb8e-44e8-a348-bbcb2b77536e/actiontemplate-iis-apppool-update-property) step template.
:::
-## Simple or Complex Rollback Process
+## Simple or complex rollback process
We recommend starting with the simple rollback process first. That requires the least amount of changes while at the same time gives you the rollback functionality. Only move to the complex rollback process if you determine the simple rollback process isn't meeting a specific need.
\ No newline at end of file
diff --git a/src/pages/docs/deployments/patterns/rollbacks/index.md b/src/pages/docs/deployments/patterns/rollbacks/index.md
index d0328ec00b..3aa5c0705a 100644
--- a/src/pages/docs/deployments/patterns/rollbacks/index.md
+++ b/src/pages/docs/deployments/patterns/rollbacks/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Rollbacks
description: Rolling back to a previous version of code is entirely possible, but there is quite a bit to consider. This guide will walk you through the patterns and pitfalls for a successful rollback.
navOrder: 10
@@ -10,7 +10,7 @@ hideInThisSectionHeader: false
Being able to roll back to a known good state of code is often just as important as deploying software. In our experience, rolling back to a previous release is rarely as simple as "re-deploying the last successful deployment." This section will walk you through the patterns and pitfalls you'll encounter when configuring a rollback process.
-## Built-In Rollback Support
+## Built-in rollback support
Octopus Deploy supports rollbacks out of the box. It always keeps the two most successful releases in any given environment, making it easy to roll back to the previous version. In addition, you can configure [retention policies](/docs/administration/retention-policies) to keep more releases on your target machines.
@@ -20,7 +20,7 @@ For example, Imagine you just deployed `1.1.21` to your **QA** servers. For wha
Doing that will re-run the previous deployment process as it existed at release creation. It will re-extract any packages, re-run all the configuration transforms, re-run any manual intervention steps, etc. If it took an hour before, it would most likely retake an hour on re-deployment.
:::
-## Ideal Rollback Scenarios
+## Ideal rollback scenarios
It would be impossible to list every scenario in which a rollback will be successful, as each application is different. That being said, we have found rollbacks are most likely to succeed when one or more of the following is true.
@@ -32,7 +32,7 @@ It would be impossible to list every scenario in which a rollback will be succes
Rollbacks are much more complicated (if not impossible) when you have tightly coupled database and code changes, are doing a once-a-quarter release with 100s of changes, or the changes are tightly coupled with other applications. In those scenarios, we recommend **rolling forward**.
-## Designing a Rollback Process
+## Designing a rollback process
Having the ability to roll back, even if rarely used, is a valuable option. What you don't want is to make up your rollback process in the middle of an emergency. If you want to have the ability to roll back, start thinking about what that process should look like now. Below are some questions to help get you started.
@@ -62,7 +62,7 @@ Re-running that deployment process as-is for a rollback could lead to data loss
1. Pause deployment for manual verification of application.
1. Notify stakeholders of deployment.
-### Calculating Deployment Mode
+### Calculating deployment mode
When a release is deployed to an environment, there are three possible "Deployment Mode" scenarios.
@@ -78,7 +78,7 @@ Calculating deployment mode is done by comparing the system variable `Octopus.Re
We have created the step template [Calculate Deployment Mode](https://library.octopus.com/step-templates/d166457a-1421-4731-b143-dd6766fb95d5/actiontemplate-calculate-deployment-mode) to do that for you.
-### Enabling and Disabling Steps based on Deployment Mode
+### Enabling and disabling steps based on deployment mode
Once you know the deployment mode, you can enable or disable steps using [output variables](/docs/projects/variables/output-variables) and [variable run conditions](/docs/projects/steps/conditions/#variable-expressions). You can have steps run only on **Rollback**, only on **Deploy**, only on **Deploy** or **Redeployment**, or any other combination.
@@ -108,13 +108,13 @@ The usage will be:
#{Octopus.Action[Calculate Deployment Mode].Output.RunOnRollback}
```
-## Automatic Trigger of Rollbacks
+## Automatic trigger of rollbacks
Using the [Octopus CLI](/docs/octopus-rest-api/octopus-cli/deploy-release), or [one of our step templates](https://library.octopus.com/step-templates/0dac2fe6-91d5-4c05-bdfb-1b97adf1e12e/actiontemplate-deploy-child-octopus-deploy-project) it is possible to automatically trigger a rollback process.
While it is possible to automatically trigger a rollback, this is not something we recommend unless you have a robust testing suite and you've tested your rollback process multiple times. We recommend first manually triggering the rollback. Once you are confident in your rollback process, look into updating your process to be automatically triggered.
-## Rollback Considerations
+## Rollback considerations
Once a rollback process is in place, you'll need to decide when to use it. Specifically, when an issue occurs, you must decide to roll forward or rollback. When making that decision, here are a few questions to ask.
@@ -123,13 +123,13 @@ Once a rollback process is in place, you'll need to decide when to use it. Spec
- Are there any external components/applications depending on this deployment?
- How long have the changes "been live" for users to use? Will they notice if a rollback were to occur?
-### Large Changeset
+### Large changeset
Rolling back a large changeset is much, much harder than rolling back a small changeset. When you roll back, you cannot pick a specific change in a specific application's binaries to roll back. Everything goes, or none of it goes. If you have made dozens and dozens of changes, attempting to untangle the web of what to roll back could take just as long as rolling forward.
If it has been a month or more since the last release to **Production**, we recommend **rolling forward**. If it has been a few hours since the last release, for example, deploying to a **Test** or **QA** environment, then a **rollback** is suitable.
-### Database Rollbacks
+### Database rollbacks
Rolling back code is much easier than rolling back a database **without data loss**. It becomes nearly impossible to roll back a database schema change once users start manipulating data.
@@ -144,7 +144,7 @@ Restoring a backup will also result in data loss; any data changed by users sinc
In the event you have a schema change in your database, we recommend **rolling forward**.
-### Dependent Applications
+### Dependent applications
In a perfect world, every service and project would be loosely coupled. While great in theory, the real world is often messy, and coupling exists. Services and their clients have an implied or explicit data contract and can be tightly coupled together. If either the service or the client violates that contract, a failure will occur.
@@ -160,7 +160,7 @@ That is due to user perception. If a release with a new feature and several bug
Generally, unless a showstopping bug is found, limit rollbacks to outage windows. Once the userbase starts using the new release, we recommend **rolling forward**.
-## Staging Your Deployments
+## Staging your deployments
In our experience, deployments (and rollbacks) have the highest chance of success when deployed to the target environment in a "staging" area on your production servers. The deployment is then verified, and assuming verification passes, the "staging" area becomes live. If there is a problem, the deployment is aborted, and all the pre-existing configuration remains untouched.
diff --git a/src/pages/docs/deployments/patterns/rollbacks/kubernetes/index.mdx b/src/pages/docs/deployments/patterns/rollbacks/kubernetes/index.mdx
index 3b2937a201..b6ed44af73 100644
--- a/src/pages/docs/deployments/patterns/rollbacks/kubernetes/index.mdx
+++ b/src/pages/docs/deployments/patterns/rollbacks/kubernetes/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Rollback Kubernetes deployment
description: A guide on how to rollback a Kubernetes deployment
navOrder: 5
@@ -37,11 +37,11 @@ For this guide, we'll start with an existing deployment process for deploying Pe
View that deployment process on [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/01-kubernetes-original/deployments/process). Please login as a guest.
:::
-## Zero Configuration Rollback
+## Zero-configuration Rollback
-## Simple Rollback Process
+## Simple rollback process
The most common reason for a rollback is something is wrong with the release. In these cases, you'll want to block the bad release from [moving forward](/docs/releases/prevent-release-progression).
@@ -63,7 +63,7 @@ The updated deployment process for a simple rollback would look like this:
View that deployment process on [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/02-kubernetes-simple-rollback/deployments/process). Please login as a guest.
:::
-### Calculate Deployment Mode
+### Calculate deployment mode
@@ -81,11 +81,11 @@ To ensure that both of those steps are not run during a rollback, use the follow
When viewing the deployment process at a glance, it is not readily apparent that a step has a run condition associated with it. Octopus Deploy provides a `Notes` field for each step where you can add information such as in which conditions the step will run as a way of self-documentation.
:::
-### Block Release Progression
+### Block release Progression
-## Complex Rollback Process
+## Complex rollback process
A feature of Kubernetes is the revision history of the cluster components. The command `kubectl rollout history deployment.v1.apps/` lists all deployment revisions.
@@ -188,7 +188,7 @@ else
Write-Error "Version $rollbackVersion not found in the cluster revision history."
}
```
-### Block Release Progression
+### Block release progression
The `Rollback Reason` step captures the reason for the rollback. We can pass the text entered in this step to the `Reason` field of this step by using the following output variable.
diff --git a/src/pages/docs/deployments/patterns/rollbacks/nginx/index.mdx b/src/pages/docs/deployments/patterns/rollbacks/nginx/index.mdx
index 9b03c92284..e5e94e04d3 100644
--- a/src/pages/docs/deployments/patterns/rollbacks/nginx/index.mdx
+++ b/src/pages/docs/deployments/patterns/rollbacks/nginx/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Rolling back an NGINX deployment
description: A guide on how to rollback a Node.js application hosted on NGINX
navOrder: 15
@@ -22,7 +22,7 @@ Rolling back the database is out of scope for this guide. This [article](https:
While this guide is for Node.js, the same process can be used for any framework, language or platform NGINX supports.
:::
-## Existing Deployment Process
+## Existing deployment process
The existing deployment process is:
@@ -39,11 +39,11 @@ The existing deployment process is:
View the deployment process on our [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/01-octofx-original/deployments/process). Please login as a guest.
:::
-## Zero Configuration Rollback
+## Zero-configuration rollback
-## Rollback Process
+## Rollback process
For most rollbacks, the typical strategy is to skip the database step while re-deploying the Node.js application website. In addition, a rollback indicates something is wrong with a release, so we'd want to [prevent that release from progressing](/docs/releases/prevent-release-progression).
@@ -64,11 +64,11 @@ The updated deployment process will be:
View the deployment process on our [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/bestbags-rollback/deployments/process). Please login as a guest.
:::
-### Calculate Deployment Mode
+### calculate deployment mode
-### Skip Database Deployment Step
+### Skip database deployment step
The database deployment step should be skipped during a rollback. Unlike code, databases cannot easily be rolled back without risking data loss. For most rollbacks, you won't have database changes. However, a rollback could accidentally be triggered with a database change. For example, rolling back a change in **Test** to unblock the QA team. Skipping these steps during the rollback reduces the chance of accidental data loss.
@@ -84,6 +84,6 @@ We also recommend adding or updating the notes field to indicate it will only ru
![windows updating notes field](/docs/deployments/patterns/rollbacks/nginx/images/rollback-nginx-notes-field.png)
:::
-### Block Release Progression
+### Block release progression
\ No newline at end of file
diff --git a/src/pages/docs/deployments/patterns/rollbacks/tomcat/index.mdx b/src/pages/docs/deployments/patterns/rollbacks/tomcat/index.mdx
index 25fe46bf02..18a5c06325 100644
--- a/src/pages/docs/deployments/patterns/rollbacks/tomcat/index.mdx
+++ b/src/pages/docs/deployments/patterns/rollbacks/tomcat/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Rolling back a Tomcat deployment
description: This guide covers the topic of rolling back an application deployed to a Tomcat Java application server.
navOrder: 10
@@ -44,11 +44,11 @@ For this guide, we'll start with an existing deployment process for deploying th
View the deployment process on our [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/01-petclinic-original/deployments/process). Please login as a guest.
:::
-## Zero Configuration Rollback
+## Zero-configuration rollback
-## Simple Rollback Process
+## Simple rollback process
While doing a rollback can be an operational exercise, the most typical reason for a rollback is something is wrong with the release, and you need to back out the changes. A bad release should also be [prevented from moving forward](/docs/releases/prevent-release-progression).
@@ -70,11 +70,11 @@ The updated deployment process for a simple rollback would look like this:
View the deployment process on our [samples instance](https://samples.octopus.app/app#/Spaces-762/projects/02-petclinic-simplerollback/deployments/process). Please login as a guest.
:::
-### Calculate Deployment Mode
+### Calculate deployment mode
-### Skipping Database Steps
+### Skipping database steps
The two database steps, `Create Database If Not Exists` and `Deploy Database Changes` should be skipped for a rollback scenario. Rolling back database changes could result in data loss or interrupt testing operations. To skip these steps, we'll use one of the Variable Run Condition output variables from Calculate Deployment Mode step:
@@ -88,11 +88,11 @@ When looking at the deployment process from the Process tab, there isn't a quick
![](/docs/deployments/patterns/rollbacks/tomcat/octopus-step-notes.png)
:::
-### Block Release Progression
+### Block release progression
-## Complex Rollback Process
+## Complex rollback process
In the simple rollback scenario, the `.war` file is redeployed, extracted, variable replacement is executed, the `.war` is repackaged before finally being sent to the Tomcat server webapps location. In cases where the `.war` is very large, the extraction and repackaging of the `.war` could take quite some time, making the rollback process lengthy. This is where the parallel deployments feature of Tomcat can benefit us as all the processes have already occurred during the initial deployment of that release.
@@ -123,7 +123,7 @@ Next, we'll go through the newly added and altered steps:
The Rollback Reason is a [Manual Intervention](/docs/projects/built-in-step-templates/manual-intervention-and-approvals) step that prompts the user for the reason they are rolling back. The text entered is stored in an output variable which will be used in the Block Release Progression step further down the process.
-### Stop App in Tomcat
+### Stop app in Tomcat
Before we deploy a new version of our application, we first must stop the existing one. The Advanced Options section of the `Start/Stop App in Tomcat` step is where we specify which version of the application we're going to stop. For this guide, the version is identified as the previous release number, which is represented by the following variable.
@@ -163,7 +163,7 @@ For this guide, we only want the Deploy step to occur on a Deployment or a Redep
![](/docs/deployments/patterns/rollbacks/tomcat/octopus-deploy-tomcat-run-condition.png)
:::
-### Start App in Tomcat
+### Start app in Tomcat
When executing the rollback, we'll need to start the previous version.
@@ -173,7 +173,7 @@ This step is only required during a rollback scenario, so you'll need to add the
#{Octopus.Action[Calculate Deployment Mode].Output.RunOnRollback}
```
-### Block Release Progression
+### Block release progression
The `Rollback Reason` step captures the reason for the rollback. We can pass the text entered in this step to the `Reason` field of this step by using the following output variable.
diff --git a/src/pages/docs/deployments/terraform/preparing-your-terraform-environment/index.md b/src/pages/docs/deployments/terraform/preparing-your-terraform-environment/index.md
index 07dd66851e..f6ca5f7e97 100644
--- a/src/pages/docs/deployments/terraform/preparing-your-terraform-environment/index.md
+++ b/src/pages/docs/deployments/terraform/preparing-your-terraform-environment/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Preparing your Terraform environment
description: Configuring remote state, backends, and cloud accounts using Terraform with Octopus
navOrder: 10
@@ -18,7 +18,7 @@ Refer to the [Terraform documentation](https://www.terraform.io/docs/backends/in
Neither Octopus nor Terraform will generate errors if a remote backend is not configured, most attempts to update or delete existing resources will not work as expected without a remote backend. We therefore recommend using a remote backend when using terraform with Octopus. You can learn more about storing state remotely [here](/docs/deployments/terraform/preparing-your-terraform-environment/#remote-state-terraform-cloud) and more general information
regarding backends in the [Terraform documentation](https://www.terraform.io/docs/backends/index.html).
-## Managed Cloud Accounts
+## Managed cloud accounts
You can optionally prepare the environment that Terraform runs in using the details defined in accounts managed by Octopus. If an account is selected then those credentials do not need to be included in the Terraform template. Using credentials managed by Octopus is optional. These credentials can be saved directly into the Terraform template if that approach is preferable. Credentials defined in the Terraform template take precedence over any credentials defined in the step. The following pages provide instruction on creating cloud accounts:
diff --git a/src/pages/docs/getting-started/best-practices/environments-and-deployment-targets-and-roles.md b/src/pages/docs/getting-started/best-practices/environments-and-deployment-targets-and-roles.md
index f57467e9c3..e4f1a153de 100644
--- a/src/pages/docs/getting-started/best-practices/environments-and-deployment-targets-and-roles.md
+++ b/src/pages/docs/getting-started/best-practices/environments-and-deployment-targets-and-roles.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Environments, Deployment Targets, and Roles
description: Guidelines and recommendations for configuring environments, deployment targets, and lifecycles in Octopus Deploy.
navOrder: 30
@@ -10,7 +10,7 @@ hideInThisSection: true
[Deployment targets](/docs/infrastructure/deployment-targets/) are what Octopus Deploy deploys to. They can be Windows servers, Linux servers, Kubernetes (K8s) clusters, Azure Web Apps, and more. Please refer to the [Deployment targets](/docs/infrastructure/deployment-targets/) for an up to date list on deployment targets. [Environments](/docs/infrastructure/environments) are how you organize your deployment targets into groups that represent different stages of your deployment pipeline. These stages are typically given names such as **development**, **test**, and **production**. Target roles, or tags, are a filter to select specific deployment targets in an environment.
-## Deployment Target Environment and Role Relationship
+## Deployment Target, Environment, and Role relationship
Environments are how you group deployment targets in a stage in your deployment pipeline. Target roles, or tags, are how you identify which deployment targets you wish to deploy to in that specific stage.
When you register a deployment target, you must provide at least one environment and one target role.
@@ -48,7 +48,7 @@ For the software developers you can rewrite that sentence as:
Using the example from above, Octopus would select all three servers.
:::
-## Environment and Role Usage Differences
+## Environment and Role usage differences
Environments are designed as a macro grouping of deployment targets meant for use across multiple projects, library sets, and more. Below is a list of items where environments are used:
diff --git a/src/pages/docs/getting-started/best-practices/installation-guidelines.mdx b/src/pages/docs/getting-started/best-practices/installation-guidelines.mdx
index 34a20cb937..9039e78193 100644
--- a/src/pages/docs/getting-started/best-practices/installation-guidelines.mdx
+++ b/src/pages/docs/getting-started/best-practices/installation-guidelines.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Installation Guidelines
description: Guidelines and recommendations for installing Octopus Deploy on your infrastructure.
navOrder: 10
@@ -54,7 +54,7 @@ Here are some items to consider when installing Octopus Deploy:
- Configuring high availability mode provides multiple benefits, the most important being removing a single point of failure.
- It is trivial to add additional high availability nodes after the initial configuration.
-## Calculating Concurrent Tasks
+## Calculating concurrent Tasks
Except in extreme cases, you will be processing between 5-10 concurrent tasks for quite some time. There might be one or two times when you go over that limit, but those tasks will queue for a few minutes before being processed. In our experience, most deployments take between 20-30 minutes. With a task cap of 5 to 10, that enables:
@@ -102,7 +102,7 @@ Below is the default configuration for Octopus Cloud. We've found this provides
We are currently working with our existing customers on what best practices look like to self-host the Octopus Server Linux Container. If you'd like further recommendations please [contact us](https://octopus.com/support).
-## Small-Medium Scale Configuration
+## Small-medium scale configuration
Our recommendation is to configure Octopus Deploy to run in [high availability mode](/docs/administration/high-availability/configure) from the start, even if you only plan on running one node.
@@ -189,7 +189,7 @@ The kind of file storage will depend on where you are hosting Octopus Deploy.
You can use the same `/api/octopusservernodes/ping` to monitor service uptime. Any monitoring tool that allows you to make HTTP calls to test health will work. Internally we use the tool [Better Uptime](https://betteruptime.com) to track Octopus Deploy status and alert us when it is down.
-## Large-Scale Configuration
+## Large-Scale configuration
The above recommendation is designed for people working in small to medium-sized companies or people working in large companies getting started with Octopus, perhaps during an initial pilot of 4-7 teams. The recommendation below is for a large Octopus Deploy configuration designed to handle close to 1000 deployments a day. If you follow the advice in the small-medium scale configuration section, it will be easy to scale up to this as all the necessary infrastructure; load balancer, file storage, and SQL Server, will be in place.
@@ -274,7 +274,7 @@ If you are hosting Octopus Deploy on a Windows server, you will need to install
3. Restart the server and wait for it to come back online.
4. Remove the drain mode from the node.
-## Create a single Production instance
+## Create a single production instance
One question we get asked a lot is "should we have a single instance to deploy to all environments or have an Octopus Deploy instance per environment?" Unless there is a business requirement, our recommendation is to have a single instance to deploy to all environments and use Octopus Deploy's RBAC controls to manage permissions. We recommend this to avoid the maintenance overhead involved with having an instance per environment.
diff --git a/src/pages/docs/getting-started/best-practices/lifecycles-and-environments.md b/src/pages/docs/getting-started/best-practices/lifecycles-and-environments.md
index 0111762227..1ff87d5b54 100644
--- a/src/pages/docs/getting-started/best-practices/lifecycles-and-environments.md
+++ b/src/pages/docs/getting-started/best-practices/lifecycles-and-environments.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-05-03
+modDate: 2023-10-04
title: Lifecycles and Environments
description: Guidelines and recommendations for configuring your lifecycles to control the flow to your environments
navOrder: 35
@@ -14,7 +14,7 @@ Octopus Deploy shares Lifecycles across an entire space. A project references l
Lifecycles contain 1 to N phases, representing a stage in your deployment lifecycle. A phase can have 0 to N environments; for example, you could have a test phase that contains both **development** and **test** environments. Or, you could have a development phase for your **development** environment and a test phase for your **test** environment.
-## Manually set your Phases
+## Manually set your phases
A lifecycle with no phases will result in Octopus calculating the phases automatically for you containing all environments. The order of the phases is dependent on the order of the environments on the environment page.
@@ -45,7 +45,7 @@ We **_never_** recommend having a lifecycle with only **production**. Any deplo
A lifecycle with a single phase is an anti-pattern. Typically we see this when users strictly adhere to the [gitflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) branching strategy. If you create a new build, that build should be deployed to at least one environment to ensure it will work in **production**.
:::
-## Production Approval
+## Production approval
Do not use the [manual intervention](/docs/projects/built-in-step-templates/manual-intervention-and-approvals) for business owner approvals, CAB (change approval board) approvals, or other Production approvals unless there is no other option. There are multiple reasons for this.
diff --git a/src/pages/docs/getting-started/best-practices/partition-octopus-with-spaces.md b/src/pages/docs/getting-started/best-practices/partition-octopus-with-spaces.md
index 2134d47147..bec92e8340 100644
--- a/src/pages/docs/getting-started/best-practices/partition-octopus-with-spaces.md
+++ b/src/pages/docs/getting-started/best-practices/partition-octopus-with-spaces.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-05-03
+modDate: 2023-10-04
title: Partition Octopus with Spaces
description: Guidelines and recommendations for configuring spaces in Octopus Deploy.
navOrder: 20
@@ -34,7 +34,7 @@ Internally we have opted for a space per application suite.
- Integrations Space (build servers, issue trackers, etc.)
- And so on
-## Anti-Patterns
+## Anti-patterns
We've also found several anti-patterns with the Spaces feature you should avoid.
@@ -44,7 +44,7 @@ We've also found several anti-patterns with the Spaces feature you should avoid.
- A space per application component. You would need to track a single application across multiple spaces.
- Sharing deployment targets across spaces. It is possible to register the same Tentacle, Azure Web App, or K8s cluster across spaces, but that indicates a space is too fine-grained. Sharing deployment targets across spaces only lead to confusion as deployments in one space will appear "locked" because of deployment in another space.
-## Prevent Sharing of Deployment Targets
+## Prevent sharing of Deployment Targets
A tentacle trusts the entire Octopus Server, not a specific space. It is not possible to prevent a tentacle from being shared across multiple spaces. Polling tentacles are harder to configure, but possible.
@@ -59,7 +59,7 @@ There are some considerations when sharing workers.
- The Tentacle agent could be running on an EC2 instance with a specific IAM role attached.
- When workers download packages, they require a mutex; no other task can be running on that worker. 99% of the time, this isn't noticed. However, if a worker runs a 10-hour integration test, you run the risk of getting stuck behind that test waiting for the mutex to be created. Have a separate set of workers to run these long-running tasks.
-## Moving Projects Between Spaces
+## Moving Projects between Spaces
Don't worry if you don't get your space configuration right the first time. It is a high bar to expect perfection the first time.
diff --git a/src/pages/docs/getting-started/best-practices/project-and-project-groups.md b/src/pages/docs/getting-started/best-practices/project-and-project-groups.md
index 60e5a20682..dc0351ce07 100644
--- a/src/pages/docs/getting-started/best-practices/project-and-project-groups.md
+++ b/src/pages/docs/getting-started/best-practices/project-and-project-groups.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-05-03
+modDate: 2023-10-04
title: Projects and Project Groups Structure
description: Guidelines and recommendations for configuring projects and project groups in Octopus Deploy.
navOrder: 50
@@ -10,7 +10,7 @@ hideInThisSection: true
[Projects](/docs/projects) store the deployment configuration for an application. For each project, you can define a deployment process and runbooks to manage your infrastructure, variables, the environments where the software is deployed, and your software releases. Project groups allow you to group like projects together.
-## Project Structure
+## Project structure
We recommend thinking of projects and project groups this way:
@@ -40,7 +40,7 @@ A project should deploy all the coupled components of an application (WebUI, Web
- A project per application, per environment, such as `OctoPetShop_Dev`, `OctoPetShop_Test`, and so on. That is impossible to maintain and track versions.
- A project per customer or physical location, such as `OctoPetShop_AustinEast`, `OctoPetShop_AustinWest`, and so on. This is impossible to maintain, you'd need a syncing process for all projects. Use [multi-tenancy](/docs/tenants) instead.
-## Cumulative Changes
+## Cumulative changes
Octopus Deploy expects any application component it deploys to contain everything that the component needs. If you are deploying a web application, the deployment should include all the JavaScript, CSS, binaries, HTML files, etc., needed to run that web application. It shouldn't just be a delta change of a few HTML files or binaries. Octopus Deploy expects that for a variety of reasons.
diff --git a/src/pages/docs/getting-started/best-practices/users-roles-and-teams.md b/src/pages/docs/getting-started/best-practices/users-roles-and-teams.md
index 05da510517..38177ea5d6 100644
--- a/src/pages/docs/getting-started/best-practices/users-roles-and-teams.md
+++ b/src/pages/docs/getting-started/best-practices/users-roles-and-teams.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Users, Roles, and Teams
description: Guidelines and recommendations for managing RBAC in Octopus Deploy.
navOrder: 80
@@ -16,11 +16,11 @@ There are two kinds of users in Octopus Deploy:
- User Account: allowed to log in to both the Octopus Web Portal and Octopus API. Can be authenticated with external auth providers, username and password, or an Octopus API Key.
- [Service Accounts](/docs/security/users-and-teams/service-accounts) are API-only accounts used for automated services that integrate with Octopus Deploy. It can only be authenticated with an Octopus API Key.
-## User Accounts
+## User accounts
Our recommendation is each user has their own account in Octopus Deploy. Every action a person performs is audited. When sharing accounts, the audit log is unusable as it is impossible to know what action each person performed.
-## Service Accounts
+## Service accounts
Our recommendation is only to use service accounts when external tools, such as build servers, JIRA, ServiceNow, etc., need to communicate with Octopus Deploy. This is preferred over user accounts for a few reasons:
@@ -29,7 +29,7 @@ Our recommendation is only to use service accounts when external tools, such as
We also recommend creating a unique service account per integration. For example, if you had two build servers, such as GitHub Actions and TeamCity, then at the very least, you should have two service accounts. You should also have individual service accounts per space per integration. Going back to the GitHub Actions example, if you had GitHub Actions pushing to three spaces, then you should have three service accounts. Limit the permissions of each service account. If the API key is ever compromised then that user is isolated to a single space for a set of projects.
-## API Keys
+## API keys
[API Keys](/docs/octopus-rest-api/how-to-create-an-api-key/) allow you, or the service account, to access the [Octopus Deploy REST API](/docs/octopus-rest-api). API keys for users should be kept to a minimum, if a key was ever shared, then anyone can impersonate that user. Only use API keys for service accounts for any external integrations.
@@ -73,7 +73,7 @@ By default, no one has any permissions outside of members of Octopus Administrat
Teams can either be a system team, meaning it can be used across all spaces, or a space team, meaning a specific space can only access it. We recommend creating space-specific teams whenever possible. That will allow you to manage the membership and permissions on a smaller scale.
-## Common RBAC Scenarios
+## Common RBAC scenarios
Here are some of the more common scenarios we get asked about, along with the associated user roles and scope. For this example, our instance has four environments, **development**, **test**, **staging**, and **production**.
diff --git a/src/pages/docs/getting-started/best-practices/variables.md b/src/pages/docs/getting-started/best-practices/variables.md
index 8a14dcfbc0..2f03df8376 100644
--- a/src/pages/docs/getting-started/best-practices/variables.md
+++ b/src/pages/docs/getting-started/best-practices/variables.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-05-03
+modDate: 2023-10-04
title: Variable Recommendations
description: Guidelines and recommendations for configuring variables in Octopus Deploy.
navOrder: 60
@@ -33,7 +33,7 @@ In addition to having the above levels of variables, there are also two categori
1. Variables used in configuration file replacement (connection strings, version number, etc.)
2. Variables specific to the deployment or runbook run (output variables, messages, accounts, etc.)
-## Variable Naming
+## Variable naming
Without established naming conventions, variable name collisions are possible. A common example is when a project and a library variable set have the same variable name scoped to the same environment. When a name collision occurs, Octopus Deploy will do its best to pick the ["right one" using an algorithm](/docs/projects/variables/#Scopingvariables-Scopespecificity). But sometimes, the variables are scoped equally. If this occurs, Octopus will choose project-defined variables ahead of library-defined ones.
@@ -46,7 +46,7 @@ The recommendation is to avoid name collisions in the first place by following t
These naming conventions only apply to variables used for a deployment or runbook run. Variables used for configuration file replacement have a specific naming convention to follow. The above naming convention makes it easier to distinguish between the two.
-## Configuration File Replacement Variables
+## Configuration file replacement variables
One of Octopus Deploy's most used features is environmental variable scoping. And with good reason, having the same process, only needing a specific value such as a connection string or domain name changed, ensures consistency during deployment.
diff --git a/src/pages/docs/getting-started/best-practices/worker-configuration.md b/src/pages/docs/getting-started/best-practices/worker-configuration.md
index b4b4805ee7..b481505066 100644
--- a/src/pages/docs/getting-started/best-practices/worker-configuration.md
+++ b/src/pages/docs/getting-started/best-practices/worker-configuration.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Offload Work to Workers
description: Guidelines and recommendations for configuring workers in Octopus Deploy.
navOrder: 40
@@ -45,7 +45,7 @@ The built-in worker and [dynamic workers](/docs/infrastructure/workers/dynamic-w
- Dynamic workers are assigned to an entire instance, not just a space. We have seen cases where a deployment blocks on one space, blocking a deployment on another space because they both used the same dynamic worker.
- There is only one dynamic worker per pool. Workers have some blocking tasks (install Calamari and downloading a package). If a process needs to acquire a mutex for that blocking task, it has to wait until other tasks are done.
-## Workers for Octopus at Scale
+## Workers for Octopus at scale
If you plan on using Octopus Deploy at scale, [disable the built-in worker](/docs/infrastructure/workers/built-in-worker/#switching-off-the-built-in-worker) for self-hosted or stop using the dynamic workers and host your own workers and worker pools.
@@ -56,7 +56,7 @@ If you plan on using Octopus Deploy at scale, [disable the built-in worker](/doc
- For redundancy, have at least two workers per pool.
- Whenever possible, leverage [execution container for workers](/docs/projects/steps/execution-containers-for-workers) to limit the amount of software to install and maintain on the workers.
-## Compute Resources Required
+## Compute resources required
Workers don't need a lot of compute resources. Our recommendations are:
diff --git a/src/pages/docs/getting-started/glossary.md b/src/pages/docs/getting-started/glossary.md
index 0767847521..edeccf0edf 100644
--- a/src/pages/docs/getting-started/glossary.md
+++ b/src/pages/docs/getting-started/glossary.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Glossary
description: A page containing the definitions of terms used in Octopus Deploy.
navOrder: 60
@@ -17,7 +17,7 @@ We do our best to make Octopus Deploy as user friendly as possible. However, it
As you proceed through each phase you will need to learn new terms and concepts. This page breaks down those terms and concepts into each phase we think it is useful to learn.
-## POC Phase Terms
+## POC phase terms
When first setting up a POC or Hello World project you will become familiar with the following terms and concepts.
@@ -44,7 +44,7 @@ When first setting up a POC or Hello World project you will become familiar with
- **Task Log**: The raw log formatted so it is easier to read on a web page.
- **Task History**: The audit history of the deployment. Includes who and when a deployment was triggered, who and when a manual intervention was approved, and more.
-## Pilot Phase Terms
+## Pilot phase terms
As you move on from the POC phase to the Pilot phase you should familiarize yourself with these terms and concepts.
@@ -67,7 +67,7 @@ As you move on from the POC phase to the Pilot phase you should familiarize your
- [**Deployment Notes**](/docs/releases/deployment-notes): The summarization of all the releases rolled up and included since the previous deployment to the deployment environment.
- [**Artifacts**](/docs/projects/deployment-process/artifacts): Files collected from remote machines during the deployment which can be downloaded from the Octopus Web Portal for review.
-## General Adoption Phase Terms
+## General adoption phase terms
After the pilot phase is successful it is time to start bringing other projects on board. As you do that you should familiarize yourself with these terms and concepts.
diff --git a/src/pages/docs/getting-started/index.md b/src/pages/docs/getting-started/index.md
index 5acc44bb3d..aec607f719 100644
--- a/src/pages/docs/getting-started/index.md
+++ b/src/pages/docs/getting-started/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Getting started
subtitle: An overview of Octopus Deploy concepts
navTitle: Overview
@@ -15,7 +15,7 @@ This section provides an overview of Octopus Deploy concepts and links to the re
Start a Trial
-## Consistent Releases
+## Consistent releases
Octopus Deploy simplifies complex deployments.
@@ -59,7 +59,7 @@ Organizing your infrastructure into environments lets you define your deployment
Learn more about managing your [infrastructure](/docs/infrastructure).
-## Packaging Applications
+## Packaging applications
Before you can deploy software with Octopus Deploy, you need to bundle all the files required for the software to run in a supported package. The package must be versioned and stored in a repository. Octopus Deploy includes a built-in repository. You can configure your build server to push packages automatically to Octopus's built-in repository or to your existing [package repository](/docs/packaging-applications/package-repositories).
@@ -75,7 +75,7 @@ For each project, you can define a deployment process, runbooks to manage your i
Learn more about [projects](/docs/projects).
-## Deploying Applications
+## Deploying applications
Octopus Deploy is designed to work with teams following modern DevOps methodologies, that is, continuously deploying software, getting feedback, making changes, and redeploying.
diff --git a/src/pages/docs/infrastructure/accounts/username-and-password.md b/src/pages/docs/infrastructure/accounts/username-and-password.md
index dcadfa1754..46f0931e9a 100644
--- a/src/pages/docs/infrastructure/accounts/username-and-password.md
+++ b/src/pages/docs/infrastructure/accounts/username-and-password.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Username and password accounts
description: Username and Password Accounts allow you securely authenticate with different services.
navOrder: 60
@@ -9,7 +9,7 @@ navOrder: 60
A username/password account can be used to connect [SSH deployment targets](/docs/infrastructure/deployment-targets/linux/ssh-target/) and services like Google Cloud Platform if you are using the [Kubernetes](/docs/deployments/kubernetes) functionality in Octopus.
-## Enabling username & password authentication on Linux {#UsernameandPassword-EnablingUsername&PasswordAuthentication}
+## Enabling username and password authentication on Linux {#UsernameandPassword-EnablingUsername&PasswordAuthentication}
Depending on your SSH target machine's distribution you may need to enable password authentication.
diff --git a/src/pages/docs/infrastructure/deployment-targets/amazon-ecs-cluster-target.md b/src/pages/docs/infrastructure/deployment-targets/amazon-ecs-cluster-target.md
index 6672902921..51b13d3e81 100644
--- a/src/pages/docs/infrastructure/deployment-targets/amazon-ecs-cluster-target.md
+++ b/src/pages/docs/infrastructure/deployment-targets/amazon-ecs-cluster-target.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Amazon ECS cluster
description: How to configure an Amazon ECS cluster target in Octopus Deploy
navOrder: 30
@@ -56,7 +56,7 @@ See [cloud target discovery](/docs/infrastructure/deployment-targets/cloud-targe
There are multiple authentication options supported for ECS clusters.
-#### Worker Credentials
+#### Worker credentials
Authentication can be configured to use credentials from the worker on which a deployment or cluster health check runs. AWS supports sourcing these credentials in several different ways, including environment variables and EC2 instance roles. See [Setting credentials in node.js](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html) for more information on the different ways credentials can be provided.
diff --git a/src/pages/docs/infrastructure/deployment-targets/kubernetes-target/openshift/index.md b/src/pages/docs/infrastructure/deployment-targets/kubernetes-target/openshift/index.md
index 1f39146423..45dbd46470 100644
--- a/src/pages/docs/infrastructure/deployment-targets/kubernetes-target/openshift/index.md
+++ b/src/pages/docs/infrastructure/deployment-targets/kubernetes-target/openshift/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: OpenShift Kubernetes cluster
description: How to configure an OpenShift Kubernetes cluster as a deployment target in Octopus.
navOrder: 40
@@ -17,15 +17,15 @@ To connect your OpenShift K8s cluster to Octopus Deploy, you must first create a
Service Accounts in OpenShift are project specific. You will need to create a Service Account per project (namespace) for Octopus Deploy in OpenShift.
:::
-### Create Service Account
+### Create service account
-Each project within OpenShift has a section where you can define Service Accounts. After your project has been created:
+Each project within OpenShift has a section where you can define service accounts. After your project has been created:
- Expand **User Management**.
- Click **Service Accounts**.
- Click **Create Service Account**.
-### Create Role Binding
+### Create role binding
The Service Account will need to have a role so it can create resources on the cluster.
diff --git a/src/pages/docs/infrastructure/deployment-targets/machine-policies.mdx b/src/pages/docs/infrastructure/deployment-targets/machine-policies.mdx
index adb0342b72..b335e2dc4d 100644
--- a/src/pages/docs/infrastructure/deployment-targets/machine-policies.mdx
+++ b/src/pages/docs/infrastructure/deployment-targets/machine-policies.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Machine policies
description: Machine Policies allow you to customize the behavior of Tentacle and SSH endpoints like health check settings, machine connectivity, updates and more.
navOrder: 110
@@ -168,7 +168,7 @@ Using this setting with a Tentacle that runs on ephemeral storage (e.g., running
It is recommended to run Tentacle on a persistent file system.
:::
-### Retry Durations
+### Retry durations
There are two configurable durations for setting the maximum amount of time allowed to re-attempt failed communication with a Tentacle:
- **Deployment or Runbook Run**
@@ -178,7 +178,7 @@ There are two configurable durations for setting the maximum amount of time allo
![](/docs/infrastructure/deployment-targets/images/recover-from-communication-errors-with-tentacle-durations.png "width=500")
:::
-### Step Retries and Execution Timeouts
+### Step Retries and execution timeouts
If you would like to retry a particular step within the deployment process for other types of temporary or transient errors, that can be [configured separately](/docs/projects/steps/conditions/#retries-and-execution-timeouts).
## Automatically delete machines \{#MachinePolicies-Automaticallydeletemachines}
diff --git a/src/pages/docs/infrastructure/deployment-targets/tentacle/windows/azure-virtual-machines/diagnosing-issues.mdx b/src/pages/docs/infrastructure/deployment-targets/tentacle/windows/azure-virtual-machines/diagnosing-issues.mdx
index cc139c7a98..a8af411668 100644
--- a/src/pages/docs/infrastructure/deployment-targets/tentacle/windows/azure-virtual-machines/diagnosing-issues.mdx
+++ b/src/pages/docs/infrastructure/deployment-targets/tentacle/windows/azure-virtual-machines/diagnosing-issues.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Diagnosing Tentacle VM extension issues
description: How to diagnose and resolve installation issues with the Tentacle VM Extension
navOrder: 8
@@ -10,7 +10,7 @@ import AzureVMExtensionDeprecated from 'src/shared-content/deprecated-items/azur
-## Diagnosing Issues \{#AzureVirtualMachines-Diagnosingissues}
+## Diagnosing issues \{#AzureVirtualMachines-Diagnosingissues}
If, for some reason, the machine fails to register after 20 minutes, you can access logs on the VM to determine what went wrong.
diff --git a/src/pages/docs/infrastructure/index.mdx b/src/pages/docs/infrastructure/index.mdx
index dd1ca419dd..1961ac90bc 100644
--- a/src/pages/docs/infrastructure/index.mdx
+++ b/src/pages/docs/infrastructure/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Infrastructure
navTitle: Overview
navSection: Infrastructure
@@ -17,7 +17,7 @@ With Octopus Deploy the machines and services you deploy your software to are ma
![The infrastructure tab of Octopus Deploy](/docs/infrastructure/images/infrastructure.png "width=500")
:::
-## Deployment targets
+## Deployment Targets
diff --git a/src/pages/docs/insights/api.md b/src/pages/docs/insights/api.md
index 83ceb769b0..6bd15f8d8a 100644
--- a/src/pages/docs/insights/api.md
+++ b/src/pages/docs/insights/api.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: API
description: The Insights API
navOrder: 160
@@ -304,7 +304,7 @@ The request body is in JSON format.
| EnvironmentGroups | Optional | An array of the environment groups to be included in this report. |
| TimeZone | Optional | The timezone to be used in the report. Must be either a Windows or IANA (Tzdb) timezone. |
-### Delete an Insights report
+### Delete an insights report
DELETE: `/api/{spaceId}/insights/reports/{reportId}`
Deletes an existing Insights report.
diff --git a/src/pages/docs/insights/index.md b/src/pages/docs/insights/index.md
index b4091cb9ee..60dc6bef54 100644
--- a/src/pages/docs/insights/index.md
+++ b/src/pages/docs/insights/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Insights
navTitle: Overview
navSection: Insights
@@ -22,11 +22,11 @@ Two levels are available for DevOps Insights:
## What are DORA metrics?
-[DORA](https://www.devops-research.com/) (DevOps Research and Assessment) is the team behind the Accelerate State of DevOps Report 2, a survey of more than 32,000 professionals from around the world. Their research has linked the technical and cultural capabilities that drive software delivery and organizational performance.
+[DORA](https://dora.dev/) (DevOps Research and Assessment) is the team behind the Accelerate State of DevOps Report 2, a survey of more than 32,000 professionals from around the world. Their research has linked the technical and cultural capabilities that drive software delivery and organizational performance.
DORA recommends an approach to measuring software delivery that relies on five metrics:
-_Tempo_
+_Throughput_
- Lead time for changes (LT)
- Deployment frequency (DF)
@@ -36,13 +36,13 @@ _Stability_
- Change failure rate (CFR)
- Mean time to recovery (MTTR)
-_Operation_
+_Operations_
- Reliability
Throughput metrics measure the health of your deployment pipeline, while the stability indicators help you understand the quality of your software and delivery pipeline. In addition to the four classic DORA metrics that measure software delivery performance, DORA added a new measure in 2021 for operational performance.
-## Octopus built-in DORA metrics with DevOps Insights
+## Octopus built-in DORA metrics with Insights
Octopus **2022.3** adds out-of-the-box support for the following DevOps metrics:
@@ -74,7 +74,7 @@ Together these metrics help you qualify the results of your DevOps performance,
- Help introduce change with data and collaboration to make a business case
- Share successes and learn from failures to continuously improve
-## Understand performance of your projects with Project level Insights
+## Understand performance of your projects with project-level Insights
Project level insights are available as a new tab in every project so you can understand the performance of your projects across Channels, Environments, and Tenants. Each metric can be seen at a summary level, and insights can also be filtered to time frames, including last month, quarter, year, channels, and environments, as well as being exported into CSV.
diff --git a/src/pages/docs/insights/space-level-insights.md b/src/pages/docs/insights/space-level-insights.md
index af481d55ff..b92cef764d 100644
--- a/src/pages/docs/insights/space-level-insights.md
+++ b/src/pages/docs/insights/space-level-insights.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Space Level Insights
description: Space level insights
navOrder: 140
@@ -24,12 +24,12 @@ If there are many unrelated projects and environments in a report, it will be ha
## Settings
-### Time Zone
+### Time zone
The time zone of a report affects which day's data is counted when aggregating. The time zone should be chosen to reflect the most
common understanding of what constitutes "midnight" for the team.
-### Release Selection
+### Release selection
The releases that contribute to the report are determined via the channel that they belong to. The channel is used instead of the project itself to avoid pre-release and prior-version channels from skewing the data for the main release.
diff --git a/src/pages/docs/installation/octopus-server-linux-container/index.mdx b/src/pages/docs/installation/octopus-server-linux-container/index.mdx
index 797b7eb19e..a8da641f2f 100644
--- a/src/pages/docs/installation/octopus-server-linux-container/index.mdx
+++ b/src/pages/docs/installation/octopus-server-linux-container/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Octopus Server Linux Container
description: Running the Octopus Server in the official Docker Linux container
navOrder: 8
@@ -68,7 +68,7 @@ Master keys must be a 128 bit string that is then base 64 encoded. You can gener
openssl rand 16 | base64
```
-### Environment Variables
+### Environment variables
Read the Docker [docs](https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e---env---env-file) about setting environment variables.
@@ -82,7 +82,7 @@ Read the Docker [docs](https://docs.docker.com/engine/reference/commandline/run/
|**ADMIN_EMAIL**|The email associated with the admin user account|
|**DISABLE_DIND**|The Linux image will by default attempt to run Docker-in-Docker to support [execution containers for workers](/docs/projects/steps/execution-containers-for-workers). This requires the image be launched with [privileged permissions](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities). Setting `DISABLE_DIND` to `Y` prevents Docker-in-Docker from being run when the container is booted.|
-### Exposed Container Ports
+### Exposed container ports
Read Docker [docs](https://docs.docker.com/engine/reference/commandline/run/#publish-or-expose-port--p---expose) about exposing ports.
@@ -93,7 +93,7 @@ Read Docker [docs](https://docs.docker.com/engine/reference/commandline/run/#pub
|**10943**|Port for Polling Tentacles to contact the server|
-### Volume Mounts
+### Volume mounts
Read the Docker [docs](https://docs.docker.com/engine/reference/commandline/run/#mount-volume--v---read-only) about mounting volumes.
diff --git a/src/pages/docs/installation/octopus-server-linux-container/octopus-in-kubernetes.mdx b/src/pages/docs/installation/octopus-server-linux-container/octopus-in-kubernetes.mdx
index 83e285528f..2ee09149a0 100644
--- a/src/pages/docs/installation/octopus-server-linux-container/octopus-in-kubernetes.mdx
+++ b/src/pages/docs/installation/octopus-server-linux-container/octopus-in-kubernetes.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Octopus Server in Kubernetes
description: Octopus can be installed into a Kubernetes cluster running the Octopus Server Linux container, optionally leveraging High Availability (HA).
navOrder: 40
@@ -637,7 +637,7 @@ You can then mount the folder for the server logs, with each Octopus Server Node
The `preStop` hook is used to drain an Octopus Server node before it is stopped. This gives the node time to complete any running tasks and prevents it from starting new tasks. The `postStart` start hook does the reverse and disables drain mode when the Octopus Server node is up and running.
-### Readiness, Start up and Liveness probes \{#container-probes}
+### Readiness, start up, and liveness probes \{#container-probes}
The `readinessProbe` is used to ensure the Octopus Server node is responding to network traffic before the pod is marked as ready. The `startupProbe` is used to delay the livenessProbe until such time as the node is started, and the `livenessProbe` runs continuously to ensure the Octopus Server node is functioning correctly.
diff --git a/src/pages/docs/octopus-cloud/disaster-recovery.md b/src/pages/docs/octopus-cloud/disaster-recovery.md
index defd480f31..4ed88cdc1a 100644
--- a/src/pages/docs/octopus-cloud/disaster-recovery.md
+++ b/src/pages/docs/octopus-cloud/disaster-recovery.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Disaster recovery
navOrder: 40
description: How to work with your data and disaster recovery in an Octopus Cloud instance.
@@ -39,7 +39,7 @@ Note: The portal is hosted in a separate Azure region from customer instances an
For further information, customers should refer to [Microsoft's disaster recovery](https://docs.microsoft.com/en-us/azure/azure-sql/database/business-continuity-high-availability-disaster-recover-hadr-overview?view=azuresql#recover-a-database-to-the-existing-server) documentation.
-### Azure Region Failure
+### Azure region failure
In the case of an Azure region wide disaster the time to restore services will vary depending on the nature of the disaster. For short duration outages the best strategy may be to wait for Microsoft to restore services within the region. In the case of region wide disasters affecting customer instances, for longer duration disasters restoration of services will entail provisioning a new customer instance in a new Azure region (in the same PII jurisdiction) and restoring the customer's database from the geo-redundant backup. For customer instances and the Octopus Cloud portal the time to restore operations is estimated to be 24 hrs once a new region is made available by Microsoft. The RPO in is 1 hr or to the customer specified restore point, as applicable. Note that there is not a geo-redundant copy of the Octopus Cloud File store, and the customer will need to re-build, upload, and/or regenerate any required packages and artifacts, as required by their deployments.
diff --git a/src/pages/docs/octopus-cloud/migrations.md b/src/pages/docs/octopus-cloud/migrations.md
index cd31d006dd..ce72b6e213 100644
--- a/src/pages/docs/octopus-cloud/migrations.md
+++ b/src/pages/docs/octopus-cloud/migrations.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Migrating from Octopus Server to Octopus Cloud
navOrder: 30
description: Migrating from Octopus Server to Octopus Cloud.
@@ -113,7 +113,7 @@ If you use an external package repository, such as a self-hosted Artifactory ins
Set up a couple of sample projects to deploy to your servers. That will be a final "plugs-out" test to ensure you are ready to start your migration.
-### User Migration
+### User migration
The project export/import feature does not include users. All users must be created from scratch. If you are using an external authentication provider, such as Azure AD, or Okta, you can turn on "auto-create users" feature.
@@ -140,7 +140,7 @@ We recommend choosing an "off-cycle" or "slow time" whenever possible to keep an
Following this approach, you will have a time period with both an Octopus Server instance and an Octopus Cloud instance.
:::
-### Export / Import the project
+### Export / import the project
Follow the instructions on [exporting and importing page](/docs/projects/export-import) to export and import a project. Make a note of what is _not_ exported. Releases and deployments are exported, but only "shells" (not the full deployment) to ensure any pre-existing releases can be promoted.
@@ -201,7 +201,7 @@ At this point, we recommend deleting all the tentacle instances still pointing t
In our experience, most people turn off their Octopus Server in about three to six months. When you decide to turn off your Octopus server, first take a full backup of the database and delete all the appropriate resources.
-## No Longer Offered or Supported
+## No longer offered or supported
Before the **Export/Import Projects** feature, we offered a manual migration process. With the release of that feature, we no longer offer manual migrations from a self-hosted Octopus Server to Octopus Cloud and vice-versa.
diff --git a/src/pages/docs/octopus-rest-api/index.mdx b/src/pages/docs/octopus-rest-api/index.mdx
index 489428be2c..fdd2d33cb4 100644
--- a/src/pages/docs/octopus-rest-api/index.mdx
+++ b/src/pages/docs/octopus-rest-api/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Octopus REST API
navTitle: Overview
navSection: Octopus REST API
@@ -19,7 +19,7 @@ The Octopus REST API is designed:
3. To be comprehensive - 100% of the actions that you perform via the Octopus UI can be performed via the API.
4. To provide a great developer experience through [API clients](#api-clients) and [detailed examples](/docs/octopus-rest-api/examples).
-## API Clients
+## API clients
Octopus provides API clients for popular programming languages and runtime environments. The source code for these clients is hosted on GitHub:
@@ -30,7 +30,7 @@ Octopus provides API clients for popular programming languages and runtime envir
Code snippets using these clients for various operations in the Octopus REST API are available in our [API examples](/docs/octopus-rest-api/examples) documentation.
-## REST API Authentication \{#authentication}
+## REST API authentication \{#authentication}
The Octopus Deploy API is available at:
@@ -51,7 +51,7 @@ Once you have a key, you can provide it to the API in the following ways:
Learn more about [how to create an API key](/docs/octopus-rest-api/how-to-create-an-api-key).
:::
-## REST API Swagger Documentation \{#api-swagger-docs}
+## REST API Swagger documentation \{#api-swagger-docs}
Octopus includes the default Swagger UI for displaying the API documentation in a nice human readable way. To browse that UI just open your browser and go to `https:///swaggerui/`. The original Non-Swagger API page is still available and can always be accessed via `https:///api/`.
@@ -61,7 +61,7 @@ Octopus includes the default Swagger UI for displaying the API documentation in
You can view the API through the Octopus Demo server at [demo.octopus.app/swaggerui/index.html](https://demo.octopus.app/swaggerui/index.html).
-## REST API Links \{#api-links}
+## REST API links \{#api-links}
All resources returned by the REST API contain links to other resources. The idea is that instead of memorizing or hard-coding URL's when using the API, you should start with the root API resource and use links to navigate.
@@ -99,7 +99,7 @@ You can follow the links in the result to navigate around the API; for example,
Since the format and structure of links may change, it's essential that clients avoid hardcoding URL's to resources, and instead rely on starting at `/api` and navigating from there.
-### URI Templates
+### URI templates
Some links (mainly to collections) use URI templates as defined in [RFC 6570](http://tools.ietf.org/html/rfc6570). If in doubt, a client should assume that any link is a URI template.
diff --git a/src/pages/docs/octopus-rest-api/octopus-cli/create-release.md b/src/pages/docs/octopus-rest-api/octopus-cli/create-release.md
index 97d7096053..85944f7f05 100644
--- a/src/pages/docs/octopus-rest-api/octopus-cli/create-release.md
+++ b/src/pages/docs/octopus-rest-api/octopus-cli/create-release.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Create release
description: Using the Octopus CLI to create releases.
navOrder: 100
@@ -264,7 +264,7 @@ This creates a release for a project with multiple packages, by taking the versi
octo create-release --project HelloWorld --version 1.0.3 --packagesFolder packages --server http://octopus/ --apiKey API-ABCDEF123456
```
-## Deploying a Release After Creating It {#Creatingreleases-Deployingareleaseaftercreatingit}
+## Deploying a release after creating it {#Creatingreleases-Deployingareleaseaftercreatingit}
To create a release **and** deploy it to an environment named Production:
@@ -277,7 +277,7 @@ octo create-release --project HelloWorld --deployto Production --server http://o
If the `--deployTo` parameter is specified and the [lifecycle](/docs/releases/lifecycles) of the project you are deploying to is set to *Deploy automatically* when a release is created, it's possible multiple deployments to the same environment will be triggered.
:::
-## Release Notes Supported Syntax
+## Release notes supported syntax
We use [showdownjs](https://github.com/showdownjs/showdown) to render release notes on the dashboard.
Showdownjs supports the common markdown syntax as well as a rich set of extras such as tables and task lists. For the full list see https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax.
diff --git a/src/pages/docs/octopus-rest-api/octopus-cli/index.mdx b/src/pages/docs/octopus-rest-api/octopus-cli/index.mdx
index 17680ae2f9..ddc5916f15 100644
--- a/src/pages/docs/octopus-rest-api/octopus-cli/index.mdx
+++ b/src/pages/docs/octopus-rest-api/octopus-cli/index.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-07-16
+modDate: 2023-10-04
title: The Octopus Command Line (CLI)
description: The Octopus CLI (octo) is the Octopus command line tool that builds on top of the Octopus REST API.
navOrder: 30
@@ -54,7 +54,7 @@ import OctoAutocompleteTabCompletion from 'src/shared-content/octopus-cli/octo-a
- **[run-runbook](/docs/octopus-rest-api/octopus-cli/run-runbook)**: Runs a Runbook.
- **[version](/docs/octopus-rest-api/octopus-cli/version)**: Outputs Octopus CLI version.
-## General Usage \{#OctopusCLI-GeneralUsage}
+## General usage \{#OctopusCLI-GeneralUsage}
All commands take the form of:
diff --git a/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/index.md b/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/index.md
index 40c70b9789..9b02e2256f 100644
--- a/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/index.md
+++ b/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Tentacle.exe command line
description: Tentacle.exe is the command line executable that runs the Octopus Tentacle instance.
navOrder: 60
@@ -38,7 +38,7 @@ hideInThisSection: true
- **[version](/docs/octopus-rest-api/tentacle.exe-command-line/version)**: Show the Tentacle version information.
- **[watchdog](/docs/octopus-rest-api/tentacle.exe-command-line/watchdog)**: Configure a scheduled task to monitor the Tentacle service(s).
-## General Usage {#Tentacle.exeCommandLine-Generalusage}
+## General usage {#Tentacle.exeCommandLine-Generalusage}
All commands take the form of:
diff --git a/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/update-trust.md b/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/update-trust.md
index 4ffd0fa67f..c3f750fcb8 100644
--- a/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/update-trust.md
+++ b/src/pages/docs/octopus-rest-api/tentacle.exe-command-line/update-trust.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Update trust
description: Replaces the trusted Octopus Server thumbprint of any matching polling or listening registrations with a new thumbprint to trust
---
@@ -34,7 +34,7 @@ This example replaces the trusted thumbprint value `3FAFA8E1EE6A1133701190306E2C
Tentacle update-trust --oldThumbprint="3FAFA8E1EE6A1133701190306E2CBAFA39C30C8D" --newThumbprint="5FAEA8E1EE6A4535701190536E2CBAFA39C30C8F"
```
-## Automated Update Of Trust
+## Automated update of trust
This example will query the Octopus Server endpoint and pull the certificate. If the endpoint's certificate thumbprint is different than the Tentacle it will find the matching Tentacles installed and update them.
diff --git a/src/pages/docs/projects/variables/worker-pool-variables.md b/src/pages/docs/projects/variables/worker-pool-variables.md
index a9d8804c2d..f9a789304b 100644
--- a/src/pages/docs/projects/variables/worker-pool-variables.md
+++ b/src/pages/docs/projects/variables/worker-pool-variables.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Worker Pool variables
description: Create a worker pool variable and use it in deployment steps
navOrder: 60
@@ -66,7 +66,7 @@ The most common would be to use environment-specific worker pools to separate th
![addworkerpoolvariable](/docs/projects/variables/images/workerpoolvariable-environments.png)
:::
-### Performance & Role separation
+### Performance and role separation
Worker pool variables enable different worker pools for different steps, for example, you could use a separate worker pool for application deployments and a different worker pool for database deployments.
@@ -86,7 +86,7 @@ Licensing requirements of software installed on workers may mean that the softwa
![Worker pool variable network isolation](/docs/projects/variables/images/workerpoolvariable-networkisolation.png)
:::
-### Multi-Cloud and Multi-Region workers
+### Multi-cloud and multi-region workers
[Multi-cloud](https://en.wikipedia.org/wiki/Multicloud) and Multi-Region strategies are commonplace. It's common to have workloads spread over multiple clouds and locations such as:
diff --git a/src/pages/docs/projects/version-control/config-as-code-reference.md b/src/pages/docs/projects/version-control/config-as-code-reference.md
index 924c8655e7..3b847c856f 100644
--- a/src/pages/docs/projects/version-control/config-as-code-reference.md
+++ b/src/pages/docs/projects/version-control/config-as-code-reference.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Configuration as Code reference
description: Details about the configuration as code feature.
navOrder: 20
@@ -52,7 +52,7 @@ Currently, the Project level resources saved to SQL Server when version control
Runbooks and Sensitive Variables are planned for future releases of config-as-code.
:::
-### Resources NOT version controlled by config-as-code
+### Resources **not** version controlled by config-as-code
The config-as-code feature manages project-level resources. However, it is worth explicitly mentioning some things that are **not included**:
@@ -92,11 +92,11 @@ Currently, there are no plans to include these resources in the config-as-code f
Resources managed by the Octopus Terraform Provider will have their state managed by Terraform. Resources managed by the Octopus config-as-code feature will have the state managed by Octopus Deploy. The two are not the same and shouldn't be treated as such.
:::
-## Git Configuration Options
+## Git configuration options
Project version control settings can be accessed by clicking on the **Settings ➜ Version Control** link on the project navigation menu.
-### Git Repository
+### Git repository
The _Git Repository_ field should contain the URL for the repository you wish the Octopus configuration to be persisted to. e.g. `https://github.com/OctopusSamples/OctoFX.git`
@@ -125,14 +125,14 @@ Git providers allow you to create an access token in different ways. The recomme
Some VCS providers require that you use only a username and personal access token for authentication, not an email address (i.e. BitBucket).
:::
-#### BitBucket Repository Access Tokens
+#### BitBucket repository access tokens
BitBucket's repository access tokens allow you to create repository-specific access tokens. For these to work with your Git repositories in Octopus, you must set the username to `x-token-auth`, and the password to the token.
:::figure
![Screenshot of Octopus Version Control Settings page with Authentication section expanded. Username/password auth method is selected, the Username input field is highlighted with a bold red box, and contains the value x-token-auth](/docs/projects/version-control/octopus-bitbucket-repository-access-tokens.png)
:::
-### File Storage
+### File storage
_Git File Storage Directory_ specifies the path within the repository where the Octopus configuration will be stored. The default directory is `.octopus`, but that can be changed. If only a single Octopus project will be stored in the repo, we recommend putting the configuration directly under the `.octopus` directory.
@@ -142,9 +142,9 @@ If multiple projects will be persisted to the repository, adding the project nam
We recommend storing projects alongside the application code. While it is possible to store all your deployment projects in a single central repository with folders for each project, it will be challenging to manage as you add more projects. For example, if you have multiple component projects, one for Web UI, another for Web API, etc., but the source code is in one repository, then store all the component projects in that repository. If you move the application code later, you can also [move the deployment configuration](/docs/projects/version-control/moving-version-control) to keep it with the application.
-### Branch Settings
+### Branch settings
-#### Default Branch Name
+#### Default branch name
The _Default Branch Name_ is the branch on which the Octopus configuration will be written. It is also the default branch that will be used in various situations, for example:
@@ -158,19 +158,19 @@ For existing initialized repositories, the default branch must exist. If the rep
When snapshotting a Runbook in a Git project, the variables will always be taken from the default branch.
:::
-#### Initial Commit Branch
+#### Initial commit branch
If the default branch is protected in your repository, select the *Is the default branch protected?* checkbox. This will allow you to use a different _Initial Commit Branch_. If this branch does not exist, Octopus will create the branch automatically.
The Octopus configurations will be written to the initial commit branch instead of the default branch. You will need to merge the changes from this branch into the default branch outside of Octopus.
-#### Protected Branches Pattern
+#### Protected branches pattern
You can also nominate protected branches for your Project. This will prevent users from making direct commits to the nominated branches from the Octopus UI and encourage them to create a new branch instead. To nominate protected branches, type in the name or a wildcard pattern in the Protected Branches Pattern field under Branch Settings. This will apply to all existing and future branches.
-## OCL Files
+## OCL files
After successfully configuring a project to be version controlled, the specified Git repository will be populated with a set of Octopus Configuration Language (OCL) files. These files are created in the directory you define during setup. E.g. `./octopus/acme`
diff --git a/src/pages/docs/projects/version-control/creating-and-deploying-releases-version-controlled-project.mdx b/src/pages/docs/projects/version-control/creating-and-deploying-releases-version-controlled-project.mdx
index 6fad4e49b3..d8a8c94425 100644
--- a/src/pages/docs/projects/version-control/creating-and-deploying-releases-version-controlled-project.mdx
+++ b/src/pages/docs/projects/version-control/creating-and-deploying-releases-version-controlled-project.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Creating and deploying releases on a version-controlled project
description: What to expect when creating and deploying releases on a version-controlled project using the Configuration as Code feature in Octopus Deploy.
navOrder: 40
@@ -10,7 +10,7 @@ import BuildServerPluginVersionControlFields from 'src/shared-content/projects/v
There are slight differences when creating and deploying a release with a version-controlled project using the Configuration as Code feature in Octopus Deploy. This page will walk through those differences.
-## Creating a Release
+## Creating a release
When you create a release with a version-controlled Octopus Project, you will have the ability to select the branch and specify a release number and package versions. Like before, a snapshot will be created using the deployment process, variables, and packages.
diff --git a/src/pages/docs/projects/version-control/creating-release-from-a-build-server-plug-in.mdx b/src/pages/docs/projects/version-control/creating-release-from-a-build-server-plug-in.mdx
index 251edbdade..f91141d7a7 100644
--- a/src/pages/docs/projects/version-control/creating-release-from-a-build-server-plug-in.mdx
+++ b/src/pages/docs/projects/version-control/creating-release-from-a-build-server-plug-in.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Creating releases from a build server plugin on a version-controlled project
description: Examples of how to ensure that the right branch is used to create the release when using a build server plugin.
navOrder: 45
@@ -50,7 +50,7 @@ ${{ github.event.push.after || github.event.pull_request.head.sha }}
TeamCity provides different data based on if the build is triggered by a branch push versus via a Pull Request (PR). There is no easy way to automate selecting the right one. Based on your process, we suggest using one of the following options.
-### Git Reference
+### Git reference
If the build is triggered by a branch push, use
```
@@ -62,7 +62,7 @@ If the build is triggered via a PR, use
```
-### Git Commit
+### Git commit
This is the same for both scenarios.
```
diff --git a/src/pages/docs/projects/version-control/editing-a-project-with-version-control-enabled.md b/src/pages/docs/projects/version-control/editing-a-project-with-version-control-enabled.md
index e7d7b1af03..1942054e32 100644
--- a/src/pages/docs/projects/version-control/editing-a-project-with-version-control-enabled.md
+++ b/src/pages/docs/projects/version-control/editing-a-project-with-version-control-enabled.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Editing a project with version control enabled
description: What to expect when using the Configuration as Code feature in Octopus Deploy
navOrder: 30
@@ -13,7 +13,7 @@ Once an Octopus Project is configured to be version-controlled, your experience
Editing via the Octopus Deploy UI works the same whether you are saving to a git repository or to SQL Server. You can add steps, update processes, remove steps, just like before. When you enable version control on a project, you get additional functionality.
-### Branch Switcher
+### Branch switcher
The first difference is the addition of a branch-switcher. When editing the deployment process via the Octopus UI, the branch is selected in the branch-switcher in the left-hand navigation.
@@ -37,7 +37,7 @@ Before enabling version control on the project, clicking save updated a record i
![committing a change to version control](/docs/projects/version-control/commit-process.png)
:::
-### Commits to Protected branches
+### Commits to protected branches
If you are making changes on a protected branch, the quick save option will be disabled. When you click the **Commit** button, you will always be asked to Commit to a new branch. The option to commit to this branch will be disabled.
@@ -45,7 +45,7 @@ If you are making changes on a protected branch, the quick save option will be d
![committing a change on a protected branch](/docs/projects/version-control/commit-process-protected.png)
:::
-### Viewing and Editing OCL
+### Viewing and editing OCL
Enabling version control also enables you to edit the OCL (Octopus Configuration Language) file directly. We suggest using your favorite text editor or IDE to make changes, commit and push them just as you would any other code change.
@@ -64,11 +64,11 @@ Octopus will periodically fetch from the remote, so you might have to wait a sho
The Octopus Deploy Web Portal will only add non-default properties to the OCL files. For example, if a step isn't scoped to run for a specific environment(s), that property will not show up when you view the deployment process there.
:::
-### OCL vs. Octopus Terraform Provider
+### OCL versus Octopus Terraform Provider
While OCL is similar to HCL, it is not the exact same. In addition, there is not a 1:1 match between the resources generated for OCL and the resources for the [Octopus Terraform Provider](https://registry.terraform.io/providers/OctopusDeployLabs/octopusdeploy/latest/docs). That means you cannot copy resources between OCL files and TF files.
-## Version Control features
+## Version control features
Storing the deployment process in the same repository as your source code has many benefits. But don't forget to take advantage of all the version control features, including:
diff --git a/src/pages/docs/projects/version-control/unsupported-config-as-code-scenarios.md b/src/pages/docs/projects/version-control/unsupported-config-as-code-scenarios.md
index 2dbae4d69f..8b45e610b6 100644
--- a/src/pages/docs/projects/version-control/unsupported-config-as-code-scenarios.md
+++ b/src/pages/docs/projects/version-control/unsupported-config-as-code-scenarios.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Unsupported Configuration as Code Scenarios
description: Unsupported scenarios for the Configuration as Code feature in Octopus Deploy.
navOrder: 50
@@ -9,7 +9,7 @@ navOrder: 50
The Configuration as Code feature is designed to give you the benefits of source control, branching, reverting, and pull requests while being able to use your tool of choice to manage your processes (and eventually) variables. While it has many benefits, there are some unsuitable use cases and scenarios. This document will describe each one as well as provide alternatives.
-## Core Design Decision
+## Core design decision
The core design decision is each project in each space has a unique folder in a git repository. A git repository can store several projects across several spaces or store a single project in a single space. But, each project must have a unique folder in a git repository because of all the scaffolding data referenced by a project.
@@ -28,7 +28,7 @@ That data is not stored in source control because it is shared across multiple p
An error will occur when Octopus Deploy attempts to load a process from source control with one or more of those items missing. You'll be unable to create releases until those errors are resolved.
:::
-## Syncing Multiple Instances
+## Syncing multiple instances
The configuration as code feature is not designed to allow two or more projects on different instances to point to the same folder. We've seen our users attempt to use Configuration as Code to keep the deployment processes in sync across multiple instances. That scenario is unsupported.
@@ -50,7 +50,7 @@ You will still need a process to keep step templates in sync.
The downside to this approach is you'll be unable to use the Octopus Deploy UI to manage your deployment processes. In addition, you'll need to convert your existing deployment process into Terraform manually. The files generated by Configuration as Code has a similar syntax as the Terraform provider, but it is not a 1:1 match.
-### Separate Folders for each instance
+### Separate folders for each instance
Another alternative is each instance points to a unique folder in the same GitHub repo. For example, if you had a Developer instance and a Production instance.
@@ -65,7 +65,7 @@ You will still need a process to keep step templates in sync.
The downside to this approach is it is a manual process and prone to error.
-## Project Templating
+## Project templating
The configuration as code feature is not designed to allow two or more projects on the same space to point to the same folder. We've seen our users attempt to use Configuration as Code as project templating. This scenario is unsupported.
diff --git a/src/pages/docs/releases/issue-tracking/azure-devops.md b/src/pages/docs/releases/issue-tracking/azure-devops.md
index 528f657648..906fb58236 100644
--- a/src/pages/docs/releases/issue-tracking/azure-devops.md
+++ b/src/pages/docs/releases/issue-tracking/azure-devops.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Azure DevOps work item tracking integration
description: Configure Azure DevOps work item tracking with Octopus.
navOrder: 40
@@ -52,7 +52,7 @@ The ability to push the build information to Octopus, which is required for Azur
The Azure DevOps integration does **not support** the ability to have Octopus release and deployment information displayed within Azure DevOps work items.
-## Configuring Azure DevOps Integration
+## Configuring Azure DevOps integration
The following steps explain how to integrate Octopus with Azure DevOps:
diff --git a/src/pages/docs/releases/issue-tracking/jira.md b/src/pages/docs/releases/issue-tracking/jira.md
index c3bcd21919..bc633de500 100644
--- a/src/pages/docs/releases/issue-tracking/jira.md
+++ b/src/pages/docs/releases/issue-tracking/jira.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Jira issue tracking
description: Configure Jira Cloud and Jira Server issue tracking with Octopus.
navOrder: 20
@@ -209,7 +209,7 @@ If your deployments aren't being displayed in Jira, this likely means you will n
Navigate to **Infrastructure ➜ Environments**, and next to each environment click on the overflow menu (`...`) and click **Edit**. From here, you can map each Octopus environment to your corresponding Jira environment.
-### Ensure casing on Issue/Work Item IDs match {#troubleshooting-check-case-on-ids}
+### Ensure casing on issue/work item IDs match {#troubleshooting-check-case-on-ids}
The commits that are pushed to Octopus as build information need to have the exact same case as the issue/work item found in Jira. For example, if the work item in Jira is `OBJ-123`, but your commit message includes the work item as `obj-123` (notice the lower-case value) you will need to remediate the case in your commits. This will allow the deployment status update to appear in Jira successfully.
diff --git a/src/pages/docs/releases/release-versioning.md b/src/pages/docs/releases/release-versioning.md
index a4a46330b8..e16f594091 100644
--- a/src/pages/docs/releases/release-versioning.md
+++ b/src/pages/docs/releases/release-versioning.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Release versioning
description: Select how the next release number is generated when creating a release.
navOrder: 125
@@ -63,7 +63,7 @@ Octopus.Date.(Day|Month|Year|DayOfYear)
Octopus.Time.(Hour|Minute|Second)
```
-## Complex Expressions
+## Complex expressions
The full power of the [Octopus variable syntax](/docs/projects/variables/variable-substitutions/#complex-syntax) (powered by [Octostache](https://github.com/OctopusDeploy/Octostache)) is available in version templates. In particular, [conditional expressions](/docs/projects/variables/variable-substitutions/#VariableSubstitutionSyntax-Conditionalsconditionals) can be used to model some complex scenarios.
diff --git a/src/pages/docs/runbooks/runbook-examples/databases/backup-mssql-database.md b/src/pages/docs/runbooks/runbook-examples/databases/backup-mssql-database.md
index 2c36c3738f..b3141f05b1 100644
--- a/src/pages/docs/runbooks/runbook-examples/databases/backup-mssql-database.md
+++ b/src/pages/docs/runbooks/runbook-examples/databases/backup-mssql-database.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Backup SQL database
description: With Octopus Deploy you can backup a MSSQL database with a Runbook.
navOrder: 10
@@ -17,7 +17,7 @@ In this example, you will be backing up a Microsoft SQL Server database using a
In this example, we'll use SQL Authentication and provide both a SQL username and password. It's important to check that you have the correct permissions to perform the backup. You can find more information on this [here](/docs/deployments/databases/sql-server/permissions).
-## Create the Runbook
+## Create the runbook
1. To create a runbook, navigate to **Project ➜ Operations ➜ Runbooks ➜ Add Runbook**.
2. Give the Runbook a name and click **SAVE**.
diff --git a/src/pages/docs/runbooks/runbook-examples/databases/backup-rds-mssql-s3-database.md b/src/pages/docs/runbooks/runbook-examples/databases/backup-rds-mssql-s3-database.md
index 0265f8d316..ccc59559f3 100644
--- a/src/pages/docs/runbooks/runbook-examples/databases/backup-rds-mssql-s3-database.md
+++ b/src/pages/docs/runbooks/runbook-examples/databases/backup-rds-mssql-s3-database.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Backup RDS SQL database to S3
description: This section shows you how to perform a native SQL backup for an RDS SQL database and store in an S3 bucket.
navOrder: 90
@@ -11,7 +11,7 @@ You can perform native backups of Amazon Relational Database instances running S
In the following example, we'll use the [AWS RDS SQL Server - Backup to S3 Bucket](https://library.octopus.com/step-templates/3dd60fea-b98a-4760-8867-cbd049f7aa31/actiontemplate-aws-rds-sql-server-backup-to-s3-bucket) community step template.
-## AWS Prerequisites
+## AWS prerequisites
* An AWS RDS SQL Server instance.
* An Amazon S3 Bucket.
diff --git a/src/pages/docs/runbooks/runbook-examples/databases/create-mysql-database.md b/src/pages/docs/runbooks/runbook-examples/databases/create-mysql-database.md
index 6d15f77f7a..2b0b677e4d 100644
--- a/src/pages/docs/runbooks/runbook-examples/databases/create-mysql-database.md
+++ b/src/pages/docs/runbooks/runbook-examples/databases/create-mysql-database.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Create MySQL database
description: With Octopus Deploy you can create a MySQL database with a Runbook.
navOrder: 40
@@ -11,7 +11,7 @@ The ability to create a database in MySQL requires that the user account have el
In the following example, we'll use the [MySQL - Create Database If Not Exists](https://library.octopus.com/step-templates/4a222ac3-ff4b-4328-8778-1c44eebdedde/actiontemplate-mysql-create-database-if-not-exists) community step template.
-## Create the Runbook
+## Create the runbook
1. To create a runbook, navigate to **Project ➜ Operations ➜ Runbooks ➜ Add Runbook**.
2. Give the Runbook a name and click **SAVE**.
diff --git a/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database-to-environment.md b/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database-to-environment.md
index 36bfb9a4ac..b624c1354c 100644
--- a/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database-to-environment.md
+++ b/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database-to-environment.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Restore SQL database to another environment
description: With Octopus Deploy you can restore a MSSQL database to another environment with a runbook.
navOrder: 30
@@ -13,7 +13,7 @@ This section shows you how to restore a database to a different environment, for
Using the runbook means developers don't need any extra permissions to the database server itself, eliminating the time normal spent filling out a support ticket or tracking down a DBA to perform the restore.
-## Create the Runbook
+## Create the runbook
1. To create a runbook, navigate to **Project ➜ Operations ➜ Runbooks ➜ Add Runbook**.
2. Give the runbook a name and click **SAVE**.
@@ -53,7 +53,7 @@ You can also add additional steps to add security to your runbooks, such as a [m
We have a [Target - Windows](https://oc.to/TargetWindowsSamplesSpace) Space on our Samples instance of Octopus. You can sign in as `Guest` to take a look at this example and more runbooks in the `OctoFX` project.
-## Learn More
+## Learn more
- [SQL Backup - Community Step template](https://library.octopus.com/step-templates/34b4fa10-329f-4c50-ab7c-d6b047264b83/actiontemplate-sql-backup-database)
- [SQL Fix Orphaned User - Community Step Template](https://library.octopus.com/step-templates/e56e9b28-1cf2-4646-af70-93e31bcdb86b/actiontemplate-sql-fix-orphaned-user)
diff --git a/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database.md b/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database.md
index 2584d80694..151f155a1e 100644
--- a/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database.md
+++ b/src/pages/docs/runbooks/runbook-examples/databases/restore-mssql-database.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Restore SQL database
description: With Octopus Deploy you can restore a MSSQL database with a runbook.
navOrder: 20
@@ -17,7 +17,7 @@ In this example, you will restore a Microsoft SQL Server database using a step t
In this example, we'll use SQL authentication and provide both a SQL username and password. It's important to check that you have the correct permissions to perform the backup. You can find more information about this in the [permissions documentation](/docs/deployments/databases/sql-server/permissions).
-## Create the Runbook
+## Create the runbook
1. To create a runbook, navigate to **Project ➜ Operations ➜ Runbooks ➜ Add Runbook**.
2. Give the Runbook a name and click **SAVE**.
@@ -48,6 +48,6 @@ After adding all of the required parameters, click **Save**, and you have a basi
We have a [Target - Windows](https://oc.to/TargetWindowsSamplesSpace) Space on our Samples instance of Octopus. You can sign in as `Guest` to take a look at this example and more runbooks in the `OctoFX` project.
-## Learn More
+## Learn more
- [SQL Backup - Community Step template](https://library.octopus.com/step-templates/34b4fa10-329f-4c50-ab7c-d6b047264b83/actiontemplate-sql-backup-database)
diff --git a/src/pages/docs/runbooks/runbook-examples/databases/restore-rds-mssql-s3-database.md b/src/pages/docs/runbooks/runbook-examples/databases/restore-rds-mssql-s3-database.md
index 9968cbc829..4ee4129122 100644
--- a/src/pages/docs/runbooks/runbook-examples/databases/restore-rds-mssql-s3-database.md
+++ b/src/pages/docs/runbooks/runbook-examples/databases/restore-rds-mssql-s3-database.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Restore RDS SQL database from S3
description: An example that demonstrates restoring a database backup file from an S3 bucket.
navOrder: 100
@@ -11,7 +11,7 @@ You can perform native restores of Amazon Relational Database instances running
In the following example, we'll use the [AWS RDS SQL Server - Restore from S3 Bucket](https://library.octopus.com/step-templates/55848421-44b9-403c-b1f0-ba8a84b1f177/actiontemplate-aws-rds-sql-server-restore-from-s3-bucket) community step template.
-## AWS Prerequisites
+## AWS prerequisites
* An AWS RDS SQL Server instance.
* A SQL backup stored in an S3 bucket.
diff --git a/src/pages/docs/runbooks/runbooks-vs-deployments/index.md b/src/pages/docs/runbooks/runbooks-vs-deployments/index.md
index d32578a94b..0abc9037c0 100644
--- a/src/pages/docs/runbooks/runbooks-vs-deployments/index.md
+++ b/src/pages/docs/runbooks/runbooks-vs-deployments/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Runbooks vs Deployments
description: Describing the differences between a deployment and a runbook.
navOrder: 10
@@ -65,7 +65,7 @@ The retention policy is applied **per environment**. For example, if you had thr
In Octopus 2020.2 and earlier, the runbook retention policy could not be set. Instead, Octopus would keep the last 1000 runs.
:::
-## Snapshots vs Releases
+## Snapshots versus Releases
Runbooks are similar to deployments in that they also take a copy of the process to be used with execution. For a runbook this is referred to as a [snapshot](/docs/runbooks/runbook-publishing/#snapshots) versus a [release](/docs/releases) for a deployment. Runbooks can have two different types of snapshots:
- Draft
diff --git a/src/pages/docs/security/authentication/active-directory/index.md b/src/pages/docs/security/authentication/active-directory/index.md
index 697cce39bb..00d3911289 100644
--- a/src/pages/docs/security/authentication/active-directory/index.md
+++ b/src/pages/docs/security/authentication/active-directory/index.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Active Directory authentication
description: Octopus Deploy can use Windows credentials to identify users.
navOrder: 5
@@ -17,13 +17,13 @@ Octopus Deploy can authenticate users using Windows credentials. Windows AD auth
**Domain user required during setup**
When setting AD Authentication, either via the Octopus setup wizard or running the commands outlined below to switch to AD authentication mode, make sure you are signed in to Windows as a domain user. If you are signed in as a local user account on the machine (a non-domain user) you won't be able to query Active Directory, so setup will fail.
-## Active Directory Sign-In options {#ActiveDirectoryauthentication-ActiveDirectorysigninoptions}
+## Active Directory sign-in options {#ActiveDirectoryauthentication-ActiveDirectorysigninoptions}
If you are using Active Directory Authentication with Octopus, there are two ways to sign in.
1. Integrated authentication
2. Forms-based
-## Authentication Schemes
+## Authentication schemes
By default, Active Directory Authentication will use NTLM as the Authentication Scheme. In many circumstances, you can also configure Octopus to use Kerberos for authentication.
If you would like to use Kerberos for authentication, you should consider if you require User Mode authentication. User Mode is required for Kerberos authentication when Octopus is in a [High Availability](/docs/administration/high-availability) configuration. By default, Kerberos authentication for Octopus Deploy runs in Kernel Mode. The mode is dictated by the web server running Octopus Deploy, which can be configured using the `configure` command. Select HTTP.sys for Kernel Mode, or Kestrel for User Mode:
@@ -71,7 +71,7 @@ When the link is clicked, it redirects to a page which is configured to tell HTT
:::
-### Kerberos vs NTLM security for AD Authentication {#ActiveDirectoryAuthentication-NTLMvKerberos}
+### Kerberos vs NTLM security for AD authentication {#ActiveDirectoryAuthentication-NTLMvKerberos}
It is possible to use explicitly select either `NTLM`, `Negotiate` or `IntegratedWindowsAuthentication` authentication for Active Directory authentication. Using `Negotiate` or `IntegratedWindowsAuthentication` will use Kerberos authentication. In some cases this may result in `NTLM` connections based on the nature of the connecting client.
@@ -85,9 +85,9 @@ This table describes the options you can choose in Octopus, and the protocols th
Without some additional configuration, AD authentication, whether forms-based or integrated, will usually fail to negotiate the use of `kerberos` authentication and instead choose `NTLM`.
-### Supported Setups for Active Directory Authentication {#ActiveDirectoryAuthentication-SupportedAuthentication}
+### Supported setups for Active Directory authentication {#ActiveDirectoryAuthentication-SupportedAuthentication}
-Octopus Deploy supports various options for Active Directory Authentication.
+Octopus Deploy supports various options for Active Directory authentication.
:::div{.hint}
Not all high availability and Active Directory configurations are supported. There are limitations on the use of Kerberos in high availability scenarios. This is due to a requirement to [use a machine level SPN in order to allow Kerberos to work](#ActiveDirectoryAuthentication-ConfiguringKerberos) with our web server.
@@ -104,7 +104,7 @@ Not all high availability and Active Directory configurations are supported. The
From Octopus version 2020.1.0 and above, an upgrade to .Net Core 3.1 and usage of the HTTP.sys library, the Octopus Deploy Service running with Domain Service Account credentials, does not have the ability to read the HttpContext.User.Identity.Name property which is used for Kerberos authentication. There is a requirement to run the Octopus Deploy Service as Local System in order to allow for Kerberos to successfully Authenticate. You can read more about this here: https://github.com/OctopusDeploy/Issues/issues/6602
:::
-### Configuring Kerberos Authentication for Active Directory {#ActiveDirectoryAuthentication-ConfiguringKerberos}
+### Configuring Kerberos authentication for Active Directory {#ActiveDirectoryAuthentication-ConfiguringKerberos}
Here's a simple checklist to help you on your way to allowing Kerberos Authentication.
@@ -192,7 +192,7 @@ To set trusted sites via GPO:
1. Click **OK** then **Apply** and **OK**.
-### Allowing Auto Logon via Group Policy Object {#ActiveDirectoryAuthentication-AllowingAutoLogon}
+### Allowing auto logon via Group Policy Object {#ActiveDirectoryAuthentication-AllowingAutoLogon}
1. Open the **Group Policy Management Editor**.
1. Go to **User Configuration ➜ Policies ➜ Administrative Templates ➜ Windows Components ➜ Internet Explorer ➜ Internet Control Panel ➜ Security Page**.
diff --git a/src/pages/docs/security/authentication/active-directory/troubleshooting-active-directory-integration.md b/src/pages/docs/security/authentication/active-directory/troubleshooting-active-directory-integration.md
index cfbe3bc437..6af969680b 100644
--- a/src/pages/docs/security/authentication/active-directory/troubleshooting-active-directory-integration.md
+++ b/src/pages/docs/security/authentication/active-directory/troubleshooting-active-directory-integration.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Troubleshooting Active Directory integration
description: Information on troubleshooting common Active Directory integration issues.
navOrder: 30
@@ -29,7 +29,7 @@ Octopus integrates with Active Directory to authenticate users as well as author
Whilst you might have a team that you would think maps to a Distribution Group, this does not mean that [subscriptions](/docs/administration/managing-infrastructure/subscriptions) will send emails to the DG email address configured in Active Directory. Teams in Octopus are more synonymous with Security Groups and are used to determine accessibility. To send subscription emails to a Distribution Group, email address will require setting up a user with that email address and assigning them to the appropriate Octopus team.
:::
-## How Active Directory Authentication Works
+## How Active Directory authentication works
Before troubleshooting Active Directory within Octopus Deploy, it is critical to understand how that integration works.
@@ -170,7 +170,7 @@ The diagnostic logs can be viewed in the Event Viewer.
Remember to reset the registry values once you're finished troubleshooting.
:::
-## Read-Only domain controllers are not supported {#TroubleshootingActiveDirectoryintegration-Read-OnlyDomainControllersarenotsupported}
+## Read-only domain controllers are not supported {#TroubleshootingActiveDirectoryintegration-Read-OnlyDomainControllersarenotsupported}
Read-only Domain Controllers are not currently supported by Octopus. The .NET API we're using ignores read-only DCs.
diff --git a/src/pages/docs/security/cve/shattered-and-octopus-deploy.md b/src/pages/docs/security/cve/shattered-and-octopus-deploy.md
index 48779c470b..a7d43426fc 100644
--- a/src/pages/docs/security/cve/shattered-and-octopus-deploy.md
+++ b/src/pages/docs/security/cve/shattered-and-octopus-deploy.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: SHA1 "Shattered" collision and Octopus Deploy
description: How the SHA1 "Shattered" Collision impacts Octopus Deploy
navOrder: 1
@@ -37,7 +37,7 @@ You'll want to check whether SHA1 is being used in other places. Common examples
- Certificates used for authenticating with third party services, like Azure management certificates.
- Certificates used to provide HTTPS for web sites that you deploy.
-## Detecting SHA1 Certificates With PowerShell
+## Detecting SHA1 certificates with PowerShell
Given an `X509Certificate2` object, here's a PowerShell function that checks whether it uses SHA1:
diff --git a/src/pages/docs/security/hardening-octopus.mdx b/src/pages/docs/security/hardening-octopus.mdx
index 97bb067b9c..c38381f973 100644
--- a/src/pages/docs/security/hardening-octopus.mdx
+++ b/src/pages/docs/security/hardening-octopus.mdx
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Hardening Octopus
description: If you are hosting Octopus Deploy yourself, this guide will help you harden your network, host operating system, and Octopus Server itself. This includes things such as configuring malware protection (anti-virus), and utilizing allow lists.
navOrder: 10
@@ -24,7 +24,7 @@ Reading this guide carefully before you begin will help you prepare all the secu
Depending on your scenario you may want to relax or ignore these recommendations.
-### Familiarize yourself With Octopus Server
+### Familiarize yourself with Octopus Server
If you consider networking, the host operating system, Microsoft SQL Server, and Octopus Server: it is very likely Octopus Server is the new kid on the block. You should consider downloading a free trial of Octopus Server and setting it up on your local machine so you are familiar with how it works. This will eliminate some potential surprises as you progress through the security hardening.
diff --git a/src/pages/docs/tenants/tenant-deployment-faq.md b/src/pages/docs/tenants/tenant-deployment-faq.md
index f75ed3912f..bcd0fe20e4 100644
--- a/src/pages/docs/tenants/tenant-deployment-faq.md
+++ b/src/pages/docs/tenants/tenant-deployment-faq.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Multi-tenant deployments FAQ
description: Questions we are often asked relating to multi-tenant deployments.
navOrder: 90
@@ -76,11 +76,11 @@ Yes! Each project can control its interaction with tenants. By default the multi
![](/docs/tenants/images/multi-tenant-project-settings.png)
:::
-## What is an "Untenanted Deployment"? Don't I Have to Choose a Tenant When Deploying my Project? {#Multi-tenantdeploymentsFAQ-Whatisanun-tenanteddeploymentDontIhavetochooseatenantwhendeployingmyproject?}
+## What is an "untenanted deployment"? Don't I have to choose a Tenant when deploying my project? {#Multi-tenantdeploymentsFAQ-Whatisanun-tenanteddeploymentDontIhavetochooseatenantwhendeployingmyproject?}
When you first enable multi-tenant deployments you won't have any tenants, and we don't want that to stop you from deploying your existing projects. Perhaps you are using an environment-per-tenant model and will migrate to tenants over a period of time, so some deployments will start to have a tenant whilst others do not. Essentially an "untenanted deployment" is the same kind of deployment Octopus always performed: *there is no tenant for this deployment*. When you deploy using a tenant Octopus includes variables from the tenant, and the selected tenant can impact which steps are run, which variable values are used, and which deployment targets are included, at your discretion. For more information refer to our [tenated deployments](/docs/tenants/tenant-creation/tenanted-deployments) section.
-## Can I prevent "Untenanted Deployments" of a project? {#Multi-tenantdeploymentsFAQ-CanIpreventun-tenanteddeploymentsofaproject?}
+## Can I prevent "untenanted deployments" of a project? {#Multi-tenantdeploymentsFAQ-CanIpreventun-tenanteddeploymentsofaproject?}
Yes. Choose the **Require a tenant for all deployments** option in the Project settings. For more information refer to our [tenated deployments](/docs/tenants/tenant-creation/tenanted-deployments) section.
diff --git a/src/pages/docs/tenants/tenant-infrastructure.md b/src/pages/docs/tenants/tenant-infrastructure.md
index 1069784a3d..c75f161b4b 100644
--- a/src/pages/docs/tenants/tenant-infrastructure.md
+++ b/src/pages/docs/tenants/tenant-infrastructure.md
@@ -1,7 +1,7 @@
---
layout: src/layouts/Default.astro
pubDate: 2023-01-01
-modDate: 2023-01-01
+modDate: 2023-10-04
title: Tenant Infrastructure
description: Tenant infrastructure can be modeled in both a dedicated or shared way in Octopus using environments, deployment targets, and tenant tags.
navOrder: 50
@@ -79,7 +79,7 @@ Shared hosting allows you to host the applications of multiple tenants on the sa
This is very similar to the dedicated hosting scenario. Instead of choosing a single-tenant, you use a tenant tag to indicate these servers will be hosting applications for multiple tenants.
-### Step 1: Create a Hosting tag set {#shared-hosting-create-tagset}
+### Step 1: Create a hosting tag set {#shared-hosting-create-tagset}
Firstly let's create a tag set to identify which tenants should be hosted on which shared server farms:
diff --git a/src/shared-content/installation/migrate-from-windows-to-linux-container.include.md b/src/shared-content/installation/migrate-from-windows-to-linux-container.include.md
index 9596937b35..8ce1c488a5 100644
--- a/src/shared-content/installation/migrate-from-windows-to-linux-container.include.md
+++ b/src/shared-content/installation/migrate-from-windows-to-linux-container.include.md
@@ -135,7 +135,7 @@ Linux:
/opt/octopus/tentacle/Tentacle poll-server --server=httpa://your.octopus.server --apikey=API-MyApiKey --server-comms-port=10943
```
-## Folder Paths
+## Folder paths
The Dockerfile runs the Octopus Server installer each time the Octopus Server Windows Container or Octopus Server Linux Container starts up. The installer runs a series of commands to configure Octopus Deploy. The installer will run the [path](/docs/octopus-rest-api/octopus.server.exe-command-line/path) command to update the paths to leverage the different folder structure.
@@ -163,15 +163,15 @@ If you are running Octopus Server on Kubernetes, you will want to configure [per
Due to how paths are stored, you cannot run an Octopus Server Windows Container and Octopus Server Linux Container simultaneously. It has to be all Windows or all Linux.
:::
-## Database Connection String and Master Key
+## Database connection string and master key
Just as it is with Octopus Server running on Windows (VM or Container), you will need to provide the database connection string and master key to the Octopus Server Linux Container. The underlying database technology Octopus Deploy relies upon, SQL Server, has not changed. The connection string format is the same, so you shouldn't need to change anything.
-## Server Thumbprint
+## Server thumbprint
The certificate backing the server thumbprint is stored in the database. Any tentacles that trust your existing server thumbprint will continue to work as-is when you move to the Octopus Server Linux Container.
-## Outage Window
+## Outage window
Migrating to the Octopus Server Linux Container will require an outage window. The steps to perform during the outage window are:
diff --git a/src/shared-content/octopus-recommendations/configure-project/project-configure.include.md b/src/shared-content/octopus-recommendations/configure-project/project-configure.include.md
index 7bdc700d28..cfcf1932d1 100644
--- a/src/shared-content/octopus-recommendations/configure-project/project-configure.include.md
+++ b/src/shared-content/octopus-recommendations/configure-project/project-configure.include.md
@@ -1,5 +1,5 @@
-## Setting Up the Project
+## Setting Up the project
Let's configure a project using our recommended principles. We are going to be deploying a sample application called **OctoFX**. It's a small ASP.NET application with a database and a user interface. When we've completed this setup, we will have three projects:
@@ -27,7 +27,7 @@ That group looks a little empty. Let's add in the three projects we discussed e
Adding an image to your project is a useful way to set them apart from other projects visually. In addition to supporting .jpg and .png files, we also support .gif files; this means you can have an animated icon to add a little flair to your Octopus Deploy instance!
:::
-### Sharing Variables Between Projects
+### Sharing variables between projects
We have the three projects set up, but we need to share some common variables between them. The SQL Server that we are deploying to, the database name and the application name are variables that come to mind. To accomplish this, we are going to create a library set for this specific application.
@@ -45,7 +45,7 @@ It's also good to have a couple of other library variable sets to handle some no
![]/docs/shared-content/octopus-recommendations/configure-project/images/projectconfiguration-globalvariables.png)
:::
-### OctoFX-Database Project
+### OctoFX-Database project
The first project we are going to configure is the **OctoFX-Database** project. If we follow the recommendations from earlier in this guide, we will assume that the SQL Server is running, but this database and the required user do not exist. We will add steps to check to see if the database and the user for the environment exist. If they don't, then we'll need to create them. Also, we want to build some trust in the process; we can do this by having a manual intervention for a DBA to approve.
@@ -107,7 +107,7 @@ Finally, the database deployment process is complete. The process is relatively
Don't spend too much time on the actual steps in the process. The major takeaways from this are that the database project is responsible for everything required to create, configure, and deploy a database. You might be using a different tool (like Redgate or RoundhousE) to do your deployments, which include some additional features.
-### OctoFX-WebUI Project
+### OctoFX-WebUI project
Now it's time to move onto deploying the UI. Unlike the previous section, we won't walk through all the necessary steps you need to configure your project. We will follow the same rules as before; the project will do all the work required to deploy the web application as if it were for the first time.
@@ -141,7 +141,7 @@ Take a look at our documentation on how to [configure a rolling deployment](/doc
Just like with the database project, don't worry about the individual steps used. This is just an example to show you how we would configure a simple IIS web application deployment. The most important thing to take away from this section is the **WebUI** project is only concerned with deploying the **WebUI**, and it will work if it's being deployed for the first time, or the 100th time.
-### OctoFX-TrafficCop Project
+### OctoFX-TrafficCop project
The traffic cop project is the coordinator. It knows the order to deploy the **OctoFX-Database** and **OctoFX-WebUI** projects. This project is useful for times when the entire **OctoFX** application needs to be deployed. This way, you can still have a single project to schedule and deploy later.
diff --git a/src/shared-content/octopus-recommendations/project-recommendations.include.md b/src/shared-content/octopus-recommendations/project-recommendations.include.md
index b1cf8f0595..b355fc55a4 100644
--- a/src/shared-content/octopus-recommendations/project-recommendations.include.md
+++ b/src/shared-content/octopus-recommendations/project-recommendations.include.md
@@ -15,7 +15,7 @@ We previously recommended creating a project for each component. We have found
Like any recommendation, we have seen the extreme end of the spectrum, projects with 200+ steps deploying 80+ packages that take over an hour to deploy. That might be a good candidate to split up into smaller projects. However, you should ensure components are decoupled before making changes to the deployment process. Don't change how you deploy the application when components need to be deployed in a specific order, and failure to do so will cause showstopping bugs. First, focus on decoupling the components, then change how you deploy them.
-## Leverage the Project Per Component pattern with decoupled components
+## Leverage the project per component pattern with decoupled components
We recommend the project per component pattern when those components are decoupled from one another. Returning to the previous web application example, adding a column to the database can still require changing the back-end and front-end. However, the back-end and front-end have the appropriate code to continue processing without errors when the column is not present. And the column isn't required to be populated in the database.
diff --git a/src/shared-content/structured-configuration-variables.include.md b/src/shared-content/structured-configuration-variables.include.md
index 9feef198c8..7d05f6099b 100644
--- a/src/shared-content/structured-configuration-variables.include.md
+++ b/src/shared-content/structured-configuration-variables.include.md
@@ -1,6 +1,7 @@
:::div{.info}
This Configuration Feature was previously called JSON Configuration Variables. In version **2020.4.0**, we added support for YAML, XML, and Properties configuration file replacements and renamed the feature Structured Configuration Variables.
+
:::
With the **Structured Configuration Variables** feature you can define [variables](/docs/projects/variables) in Octopus for use in JSON, YAML, XML, and Properties configuration files of your applications. This lets you define different values based on the scope of the deployment. Settings are located using a structure-matching syntax, so you can update values nested inside structures such as JSON objects and arrays, YAML mappings and sequences, and XML elements and attributes. XPath is used for XML files, and similar expressions are used for the other formats.
@@ -63,7 +64,7 @@ If the file doesn't parse as JSON, Octopus refers to its file extension. If it i
If the file extension is not recognized (for example, a file with a `config` file extension), Octopus will try to parse the files using each of the supported formats until a matching format is found.
-### Variable Replacement {#StructuredConfigurationVariablesFeature-VariableReplacement}
+### Variable replacement {#StructuredConfigurationVariablesFeature-VariableReplacement}
Octopus uses variable names to identify the structures that should be replaced within the target files. If a structure within a target file has a hierarchical location that matches a variable name, its content will be replaced with the variable's value. The hierarchical location is identified differently depending on the type of target file:
@@ -377,7 +378,7 @@ Another option is to match and replace individual text nodes. A variable named `
just <text>mixed content
```
-### Replacing Attributes
+### Replacing attributes
Matching and replacing attribute values is supported with XPath. For example, assume the target file contains the following:
@@ -434,7 +435,7 @@ CDATA sections can be replaced just like any other node by selecting them with t
```
-### Processing Instructions
+### Processing instructions
Processing instructions can be replaced using the XPath processing instruction selector like so: `/document/processing-instruction('xml-stylesheet')`. When replacing a processing instruction, it's not possible to replace the individual attributes. The whole processing instruction gets replaced with the supplied value. Take the following example:
@@ -479,7 +480,7 @@ Given the following xml:
```
If you wanted to replace the value `localhost`, you could use the XPath expression of: `/*:server/*:properties/*:property[@name='host.name']/@value`
-## Java Properties
+## Java properties
Given this example of a target properties file:
diff --git a/src/shared-content/upgrade/upgrade-disable-targets-cloned-instance.include.md b/src/shared-content/upgrade/upgrade-disable-targets-cloned-instance.include.md
index 112594db1b..4097dcc619 100644
--- a/src/shared-content/upgrade/upgrade-disable-targets-cloned-instance.include.md
+++ b/src/shared-content/upgrade/upgrade-disable-targets-cloned-instance.include.md
@@ -1,4 +1,4 @@
-### Disabling All Targets/Workers/Triggers/Subscriptions - Optional
+### Disabling all Targets/Workers/Triggers/Subscriptions - optional
Cloning an instance includes cloning all certificates. Assuming you are not using polling Tentacles, all the deployments will "just work." That is by design if the VM hosting Octopus Deploy is lost and you have to restore Octopus Deploy from a backup.
diff --git a/src/shared-content/upgrade/upgrade-export-import-test-projects.include.md b/src/shared-content/upgrade/upgrade-export-import-test-projects.include.md
index a0b5d967b8..de316b5f48 100644
--- a/src/shared-content/upgrade/upgrade-export-import-test-projects.include.md
+++ b/src/shared-content/upgrade/upgrade-export-import-test-projects.include.md
@@ -1,4 +1,4 @@
-### Export/Import subset of projects using Export/Import Projects feature
+### Export/import subset of projects using export/import projects feature
The Export/Import Projects feature added in **Octopus Deploy 2021.1** can be used to export/import projects to a test instance. Please see the up to date [documentation](/docs/projects/export-import) to see what is included.
diff --git a/src/shared-content/upgrade/upgrade-inplace-upgrade.include.md b/src/shared-content/upgrade/upgrade-inplace-upgrade.include.md
index abdcfdc738..8a8470cd9c 100644
--- a/src/shared-content/upgrade/upgrade-inplace-upgrade.include.md
+++ b/src/shared-content/upgrade/upgrade-inplace-upgrade.include.md
@@ -16,7 +16,7 @@ The Windows Service is split across multiple folders to make upgrading easy and
Installing a newer version of Octopus Deploy is as simple as running MSI and following the wizard. The MSI will copy all the binaries to the install location. Once the MSI is complete, it will automatically launch the `Octopus Manager`.
-### Validation Checks
+### Validation checks
Octopus Deploy will perform validation checks before upgrading the database. These validation checks include (but are not limited to):
@@ -25,6 +25,6 @@ Octopus Deploy will perform validation checks before upgrading the database. Th
If the validation checks fail, don't worry, install the [previously installed version of Octopus Deploy](https://octopus.com/downloads/previous), and you will be back up and running quickly.
-### Database Upgrades
+### Database upgrades
Each release of Octopus Deploy contains 0 to N database scripts to upgrade the database. The scripts are run in a transaction; when an error occurs, the transaction is rolled back. If a rollback does happen, gather the logs and send them to [support@octopus.com](mailto:support@octopus.com) for troubleshooting. You can install the previous version to get your CI/CD pipeline back up and running.
\ No newline at end of file
diff --git a/src/shared-content/upgrade/upgrade-octopus-backup-database.include.md b/src/shared-content/upgrade/upgrade-octopus-backup-database.include.md
index e8e03fdc81..b9905dfa8f 100644
--- a/src/shared-content/upgrade/upgrade-octopus-backup-database.include.md
+++ b/src/shared-content/upgrade/upgrade-octopus-backup-database.include.md
@@ -1,4 +1,4 @@
-### Maintenance Mode
+### Maintenance mode
Maintenance mode prevents non-Octopus Administrators from doing deployments or making changes. To enable maintenance mode go to **Configuration ➜ Maintenance** and click the button `Enable Maintenance Mode`. To disable maintenance mode, go back to the same page and click on `Disable Maintenance Mode`.
diff --git a/src/shared-content/upgrade/upgrade-restore-backup.include.md b/src/shared-content/upgrade/upgrade-restore-backup.include.md
index f96741a2c0..eb313898cd 100644
--- a/src/shared-content/upgrade/upgrade-restore-backup.include.md
+++ b/src/shared-content/upgrade/upgrade-restore-backup.include.md
@@ -1,3 +1,3 @@
-### Restore Backup of database
+### Restore backup of database
Use SQL Server Management Studio's (SSMS) built-in restore backup functionality. SSMS provides a wizard to make this process as pain-free as possible. Be sure to consult a DBA or read up on [Microsoft's Documentation](https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-database-to-a-new-location-sql-server?view=sql-server-ver15).
\ No newline at end of file
diff --git a/src/shared-content/upgrade/upgrade-rollback-folders.include.md b/src/shared-content/upgrade/upgrade-rollback-folders.include.md
index 3dc14d7d64..f605109b04 100644
--- a/src/shared-content/upgrade/upgrade-rollback-folders.include.md
+++ b/src/shared-content/upgrade/upgrade-rollback-folders.include.md
@@ -1,4 +1,4 @@
-### Restore Octopus Folders
+### Restore Octopus folders
Octopus Deploy expects the artifacts, packages, tasklog, and event export folders to be in a specific format. The best chance of success is to: