Environment and Product editors can each set maintenance windows as a constraint that Apollo must satisfy before it can perform an action. A Product contact team may not want their team woken up in the middle of the night for failing software and consequently declare a business hours only window in which their Product can be upgraded. Likewise, Environment contact teams may not want services to update during operational hours.
In this task you will set up Product and Environment maintenance windows to produce a resolved Entity maintenance window.
We will configure the following maintenance window for one of your Environments:
To set Environment maintenance windows:
Choose one of your Environments where you have your Helm chart or Nginx installed and open the Environment’s Overview tab.
Note that the Maintenance window block is set to All time
. We will set a maintenance window for non-business hours only for changes that require downtime.
Select Edit settings manually from the Actions dropdown.
Select Edit in the upper right of the Environment settings.
Create a new maintenance window definition on line 5:
Copied!1 2 3 4 5 6 7 8 9
maintenance-windows: my-env-downtime: time-intervals: - MONDAY/22:00-TUESDAY/06:00 - TUESDAY/22:00-WEDNESDAY/06:00 - WEDNESDAY/22:00-THURSDAY/06:00 - THURSDAY/22:00-FRIDAY/06:00 - FRIDAY/22:00-MONDAY/06:00 time-zone-name: America/New_York
Create a new definition inside the maintenance-window
section that prevents changes between 6AM and 10AM M-F:
Copied!1 2 3 4 5 6 7 8
my-env-no-downtime: time-intervals: - MONDAY/10:00-TUESDAY/06:00 - TUESDAY/10:00-WEDNESDAY/06:00 - WEDNESDAY/10:00-THURSDAY/06:00 - THURSDAY/10:00-FRIDAY/06:00 - FRIDAY/10:00-MONDAY/06:00 time-zone-name: America/New_York
Replace the global downtime
and no-downtime
definitions on lines 3 and 4 (currently set to all-time
) with my-env-downtime
and my-env-no-downtime
respectively.
Next you will define your Product (or Nginx) as an Entity that requires downtime in your Environment and must therefore adhere to the my-env-downtime
window:
Find your Product (or Nginx) - entity-locator
block under the managed-helm-charts
section of the Environment config.
Add the following line under the release-channel
entry:
Copied!1 2
maintenance-windows: downtime: my-env-downtime
You are done editing your file, so select Review in the upper right to view a side-by-side comparison of your changes.
Once you are satisfied with the file changes, select Submit.
Recall that you originally set your Environment accreditation to DEV
, which means all changes of this nature are automatically approved. In practice, you can subject configuration changes like this to a standard change management process using the workflows and features outlined in the documentation.
Enter a change request title, such as “Update downtime maintenance window to non-business hours”, and a rationale like “Completing Apollo introduction guide”. Select Submit.
Return to your Environment's Overview tab and note the Maintenance window block has updated to match your configuration change.
Select your Product (or Nginx) in your Environment’s Entities tab. The maintenance window in the right-hand panel (which may need to be opened if it is collapsed) now shows an updated window for this Entity.
I want to prevent Apollo from taking any actions involving my Product between 8PM and 8AM US Eastern Time.
Ctrl+K
(Windows) or Cmd+K
(macOS), entering the Product name, and choosing the correct Product from the list.New York
as the timezone.When evaluating whether to execute any actions on the Nginx Entity in your Environment, Apollo will calculate the resolved maintenance window for each Entity in an Environment based on the declared maintenance windows for the Product and the Environment. The graphic illustrates the resolved maintenance window for Nginx in your Environment.
Next → Next steps