Search documentation
karat

+

K

Configuring Environment settings

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.

The Edit settings manually button is highlighted.

Setting default Release Channel

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

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.

Defining maintenance windows

Environment editors can specify the Environment maintenance window in the Environment’s settings file under the global-maintenance-windows field.

Creating a new maintenance window

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

Entity resolved maintenance window

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.

Maintenance windows: No-downtime vs. downtime

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) Override Product maintenance windows

Optional flag to disable Product maintenance windows. Defaults to false. Example:

override-product-maintenance-windows: true

(Optional) Require maintenance windows for no-downtime recalled Release roll-offs

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.

Ignored dependencies

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