Usage

Below is a simple example of the module configuration:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    logLevel: Debug
    bundle: Minimal
    releaseChannel: EarlyAccess

You can also configure additional parameters.

Setting up the update mode

Deckhouse will update as soon as a new release will be created if update windows are not set and the update mode is Auto.

Patch versions (e.g. updates from 1.26.1 to 1.26.2) are installed without confirmation and without taking into account update windows.

You can also configure node disruption update window in custom resource NodeGroup (the disruptions.automatic.windows parameter).

Update windows configuration

You can configure the time when Deckhouse will install updates by using the update.windows module configuration parameter.

An example of setting up two daily update windows — from 8 a.m. to 10 a.m. and from 8 p.m. to 10 p.m. (UTC):

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    releaseChannel: EarlyAccess
    update:
      windows: 
        - from: "8:00"
          to: "10:00"
        - from: "20:00"
          to: "22:00"

You can also set up updates on certain days, for example, on Tuesdays and Saturdays from 6 p.m. to 7:30 p.m. (UTC):

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    releaseChannel: Stable
    update:
      windows: 
        - from: "18:00"
          to: "19:30"
          days:
            - Tue
            - Sat

Manual update confirmation

If necessary, it is possible to enable manual confirmation of updates. This can be done as follows:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    releaseChannel: Stable
    update:
      mode: Manual

In this mode, it will be necessary to confirm each minor Deckhouse updates (excluding patch versions).

Manual confirmation of the update to the version v1.43.2:

kubectl patch DeckhouseRelease v1.43.2 --type=merge -p='{"approved": true}'

Manual disruption update confirmation

If necessary, it is possible to enable manual confirmation of disruptive updates (updates that change the default values or behavior). This can be done as follows:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    releaseChannel: Stable
    update:
      disruptionApprovalMode: Manual

In this mode, it will be necessary to confirm each minor disruptive update with the release.deckhouse.io/disruption-approved=true annotation on the DeckhouseRelease resource.

An example of confirmation of a potentially dangerous Deckhouse minor update v1.36.4:

kubectl annotate DeckhouseRelease v1.36.4 release.deckhouse.io/disruption-approved=true

Deckhouse update notification

In the Auto update mode, you can set up a webhook call, to be notified of an upcoming Deckhouse minor version update.

An example:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    update:
      releaseChannel: Stable
      mode: Auto
      notification:
        webhook: https://release-webhook.mydomain.com

After a new Deckhouse minor version appears on the update channel, a POST request will be executed to the webhook’s URL before it is applied in the cluster.

Set the minimalNotificationTime parameter to have enough time to react to a Deckhouse update notification. In this case, the update will happen after the specified time, considering the update windows.

An example:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse
spec:
  version: 1
  settings:
    update:
      releaseChannel: Stable
      mode: Auto
      notification:
        webhook: https://release-webhook.mydomain.com
        minimalNotificationTime: 8h

If you do not specify the address in the update.notification.webhook parameter, but specify the time in the update.notification.minimalNotificationTime parameter, then the release will still be postponed for at least the time specified in the minimalNotificationTime parameter. In this case, the notification of the appearance of a new version can be considered the appearance of a DeckhouseRelease resource with a name corresponding to the new version.

Collect debug info

Read the FAQ to learn more about collecting debug information.