You can manage Environments with Apollo by selecting Edit settings manually from the Environment's Settings tab. This allows you to view and edit the settings for the Environment and its managed Entities.
In addition to setting the Environment's default Release Channel, Environment editors can create overrides for the Release Channels of specific Entities. To do so, add a release-channel
field below the entity-locator
block for the Entity. An example is shown below.
release-channel: RELEASE
managed-helm-charts:
- entity-locator:
name: wordpress
k8s-namespace: namespace2
product: com.bitnami.repos:wordpress
- entity-locator:
name: keycloak
k8s-namespace: customer-namespace
product: com.bitnami.repos:keycloak
release-channel: DEV
In the above example the default Release Channel for the Environment is set to RELEASE
. The wordpress
Entity will use this default, while keycloak
has an Entity-level override that subscribes it to the DEV
Release Channel.
Environment and Entity maintenance windows (MW) are scheduled recurring time ranges during which Apollo can perform maintenance actions such as upgrading services, applying config changes, and installing new Entities within the scope of a specific Environment.
You can create temporary maintenance window overrides for Environments and Entities to create a non-recurring maintenance window.
Environment editors can specify the Environment maintenance window in the Environment’s settings file under the global-maintenance-windows
field.
Environment editors can also create overrides for specific Entities’ maintenance windows in the Environment settings file like below, by populating the maintenance-windows
field below the entity-locator
block for that Entity. Environment editors can also specify whether to override all Product maintenance windows for all Entities on the stack with the field override-product-maintenance-windows: false
.
global-maintenance-windows:
downtime: all-time
no-downtime: all-time
maintenance-windows:
schedule-a:
time-intervals:
- WEDNESDAY/00:00-SUNDAY/23:59
time-zone-name: US/Pacific
schedule-b:
time-intervals:
- WEDNESDAY/19:00-WEDNESDAY/19:30
time-zone-name: US/Pacific
managed-helm-charts:
- entity-locator:
name: wordpress
k8s-namespace: namespace2
product: com.bitnami.repos:wordpress
maintenance-windows:
downtime: schedule-a
no-downtime: schedule-b
- entity-locator:
name: keycloak
k8s-namespace: customer-namespace
product: com.bitnami.repos:keycloak
release-channel: DEV
maintenance-windows:
downtime: all-time
no-downtime: schedule-b
An Entity resolved maintenance window is the window which will be used for maintenance window constraint evaluation. Apollo will calculate the resolved maintenance window for each Entity in an Environment based on the Entity's declared maintenance window and the Product's maintenance window.
There are two types of maintenance windows: downtime maintenance windows, which allow for changes where all the nodes on that Entity may go offline, and no-downtime maintenance windows, for changes that can be done in a manner that would not cause any visible downtime for end users. Changes that do not require downtime can still be performed during downtime maintenance windows, but not vice versa; changes that require downtime cannot be performed outside of downtime maintenance windows.
Optional flag to disable Product maintenance windows. Defaults to false. Example:
override-product-maintenance-windows: true
Apollo’s default behavior is to roll off recalled Releases that do not require downtime outside of maintenance windows.
Optional flag to opt out all Products on a Environment from Apollo’s default recall behavior. Defaults to false. Example:
require-maintenance-windows-for-no-downtime-recalled-release-roll-offs: true
It is strongly recommended that this flag is not overridden to ensure there are no delays to recalls of problematic releases. This flag should only be overridden to true in cases when there are strong reason for it.
Environment editors can override Product dependency constraints for an Entity by adding ignored dependencies. To do so, add an ignored-depencies
field below the entity-locator
block for the Entity. You can list multiple Products in this field. An example is shown below.
managed-helm-charts:
- entity-locator:
name: wordpress
k8s-namespace: namespace2
product: com.bitnami.repos:wordpress
ignored-dependencies:
- com.bitnami.repos:nginx
- com.bitnami.repos:mariadb