Pivotal Cloud Foundry v1.7

Operating Diego for Windows

Page last updated:

This topic describes how to operate a Diego deployment on Windows. For instructions on setting up a Windows Diego deployment, see the Deploying Diego for Windows topic.

Customize Cells

Pivotal recommends that you keep customization of Windows cells to a minimum. If you do customize your cells, you must apply any software or configuration settings to every cell in your cluster.

The Cloud Foundry team tests against a clean Windows Server 2012 R2 installation, following the standard install instructions. Software and configuration not included in this clean install, such as those applied by Group Policy, can cause complex and unknown interactions with Cloud Foundry.

Reboot Cells

Before rebooting a Windows cell, you must first trigger an evacuation to avoid application downtime.

To trigger an evacuation, execute the following PowerShell script:

Set-Service RepService -startuptype "Disabled"

Invoke-WebRequest -Uri http://localhost:1800/evacuate -Method Post

while ($true) {
    try {
        Get-WebRequest "http://localhost:1800/ping"
    } catch {

Set-Service RepService -startuptype "Automatic"

Retrieve Version Numbers

To retrieve a version number for an executable or MSI, right-click the file and click Properties.

To retrieve the version number for the setup.ps1 script, pass the version flag on the command line:

> powershell .\setup.ps1 -version

Custom CA Certificates

If your applications require custom CA certificates in order to communicate with other components, install the certificates on the Windows cell. Applications running on the cell will trust certificates that the local machine or domain trust.

See the Manage Trusted Root Certificates TechNet article for information.

Upgrade a Cell

Diego retains backwards compatibility with Windows cells, which allows for rolling upgrades. Greenhouse/.NET implements a cell evacuation prior to new releases to support upgrades.

To upgrade a Windows cell, perform the following steps:

  1. Spin up a new cell.
  2. Trigger an evacuation on an old cell using the PowerShell script from the Rebooting Cells section above.
  3. Shut down the old cell when the evacuation completes.
  4. Repeat until all cells are updated.
Create a pull request or raise an issue on the source for this page in GitHub