Available in editions: CE, BE, SE, SE+, EE
The module is enabled by default in the following bundles: Default, Managed, Minimal.
Settings
The module is configured using the ModuleConfig custom resource named deckhouse (learn more about setting up Deckhouse…).
Example of the ModuleConfig/deckhouse resource for configuring the module:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse
spec:
version: 1
enabled: true
settings: # <-- Module parameters from the "Parameters" section below.
Parameters
Schema version: 1
- objectsettings
- booleansettings.allowExperimentalModules
Allows the use of experimental modules (modules in the
Experimentallifecycle stage).Experimental modules can be unstable and are not supported under the Deckhouse SLA. Use them with caution.
Example:
allowExperimentalModules: false - stringsettings.bundle
The Deckhouse bundle defines a set of modules enabled by default.
Default— the recommended set of modules for cluster operation: monitoring, authorization control, networking and other needs.Managed— the bundle aimed at clusters managed by cloud providers (e.g., Google Kubernetes Engine).Minimal— the minimum possible bundle option (includes a single module — this one). Note that several basic modules are not included in the set of modulesMinimal(for example, the CNI module). Deckhouse with the set of modulesMinimalwithout the basic modules will be able to work only in an already deployed cluster.
Default:
DefaultAllowed values:
Default,Minimal,ManagedExample:
bundle: Default - booleansettings.highAvailability
Manually enable the high availability mode.
By default, Deckhouse automatically decides whether to enable the HA mode. Click here to learn more about the HA mode for modules.
Example:
highAvailability: true - objectsettings.license
Edition settings of the Deckhouse Kubernetes Platform.
- stringsettings.license.edition
Edition of the Deckhouse Kubernetes Platform:
CE— Community Edition.BE- Basic edition.EE— Enterprise Edition.SE— Standard Edition.SE-plus— Standard Edition+.
Default:
CEExample:
edition: CE
- stringsettings.logLevel
Deckhouse logging level.
Default:
InfoAllowed values:
Debug,Info,ErrorExample:
logLevel: Info - objectsettings.nodeSelector
The same as in the Pods’
spec.nodeSelectorparameter in Kubernetes.If the parameter is omitted or
false,nodeSelectorwill be determined automatically.Caution! Deckhouse will stop working if there is a nonexistent label in
nodeSelector. You need to change the values to the correct ones inModuleConfig/deckhouseanddeployment/deckhouseto get Deckhouse back on track. - objectsettings.registry
Settings for accessing the container registry with Deckhouse images.
This parameter allows you to configure how Deckhouse connects to the container registry to pull its own component images. You can either rely on pre-configured access on cluster nodes (
Unmanagedmode) or provide Deckhouse with direct access credentials (Directmode).Examples:
registry: mode: Unmanagedregistry: mode: Direct direct: imagesRepo: registry.deckhouse.io/deckhouse/ee license: DECKHOUSE_LICENSE_KEY- objectsettings.registry.direct
Parameters for the
Directaccess mode. These parameters are required whenmodeis set toDirect.Examples:
direct: imagesRepo: registry.deckhouse.io/deckhouse/ee license: DECKHOUSE_LICENSE_KEYdirect: imagesRepo: my-private-registry.com/deckhouse username: user password: password scheme: HTTPS ca: | -----BEGIN CERTIFICATE----- MIIC... -----END CERTIFICATE------ stringsettings.registry.direct.ca
The root CA certificate (in PEM format) for validating the container registry’s server certificate. This is necessary if the registry uses a self-signed certificate or a certificate issued by a private Certificate Authority. If not provided, the system’s trusted root CAs will be used.
- stringsettings.registry.direct.imagesRepo
Required value
The address of the container registry repository where Deckhouse images are stored.
In firewalled environments, this might be a private registry address that mirrors the public one.
Pattern:
^[0-9a-zA-Z\.\-]+(\:[0-9]{1,5})?(\/[0-9a-zA-Z\.\-\_\/]+)?$Examples:
imagesRepo: registry.deckhouse.io/deckhouse/eeimagesRepo: private-registry:5000/deckhouse/ce - stringsettings.registry.direct.license
The license key for accessing the Deckhouse container registry. This key is used as a password with the username
license-token. This field is mutually exclusive withusername/password.Example:
license: DECKHOUSE_LICENSE_KEY - stringsettings.registry.direct.password
The password for authenticating with the container registry. This field is required if
licenseis not provided.Example:
password: registry-password - stringsettings.registry.direct.scheme
The protocol to use for connecting to the registry.
Use
HTTPonly for insecure, trusted registries (e.g., in a firewalled environment). Defaults toHTTPSfor secure communication.Default:
HTTPSAllowed values:
HTTP,HTTPSExample:
scheme: HTTPS - stringsettings.registry.direct.username
The username for authenticating with the container registry. This field is required if
licenseis not provided.Example:
username: registry-user
- stringsettings.registry.mode
The mode for accessing the container registry with Deckhouse images.
Unmanaged— the default mode. In this mode, theregistrymodule does not run an internal registry. Access to the registry is configured manually using thechange-registryhelper script. Note: Changing the registry in this mode will cause a full restart of all Deckhouse components.Direct— a mode for direct access to the registry. It uses a “virtual” registry address that is overwritten on the fly to the real registry address. This allows for registry changes without a full component restart.
Default:
DirectAllowed values:
Unmanaged,Direct
- stringsettings.releaseChannel
Desirable Deckhouse release channel (Deckhouse will switch to it when such an opportunity appears).
The order in which the stability of the release channel increases (from less stable to more stable):
Alpha,Beta,EarlyAccess,Stable,RockSolid.Allowed values:
Alpha,Beta,EarlyAccess,Stable,RockSolidExample:
releaseChannel: Stable - array of objectssettings.tolerations
The same as in the Pods’
spec.tolerationsparameter in Kubernetes;If the parameter is omitted or
false,tolerationswill be determined automatically.Caution! Deckhouse will stop working if
tolerationsspecified are incorrect. You need to change the values to the correct ones inModuleConfig/deckhouseanddeployment/deckhouseto get Deckhouse back on track.- stringsettings.tolerations.effect
- stringsettings.tolerations.key
- stringsettings.tolerations.operator
- integersettings.tolerations.tolerationSeconds
- stringsettings.tolerations.value
- objectsettings.update
Settings of the Deckhouse update mode and windows.
Example:
update: windows: - from: '8:00' to: '15:00' days: - Tue - Sat disruptionApprovalMode: Manual notification: webhook: https://release-webhook.mydomain.com minimalNotificationTime: 6h auth: basic: username: user password: password- stringsettings.update.disruptionApprovalModeDeprecated
Update mode for disruptive Deckhouse releases:
Auto— a disruptive release is approved automatically.Manual— requires a manual release confirmation (set therelease.deckhouse.io/disruption-approved=trueannotation on the appropriate DeckhouseRelease resource to apply the update).
Default:
AutoAllowed values:
Auto,Manual - stringsettings.update.mode
Update mode of Deckhouse on the selected release channel.
-
AutoPatch— automatic update mode for patch releases.To change a minor version (for example, from
v1.69.*tov1.70.*), confirmation is required.A patch version update (for example, from
v1.70.1tov1.70.2) is applied taking into account the update windows, if they are set. -
Auto— automatic update mode for all versions.A minor version updates (for example, from
v1.69.*tov1.70.*) and patch version updates (for example, fromv1.70.1tov1.70.2) are applied taking into account the update windows, if they are set. -
Manual— manual update mode for all versions.Confirmation is required for updating both minor and patch versions.
To confirm the version update, it is necessary to set the
approvedfield totruein the corresponding resource DeckhouseRelease.Default:
AutoPatchAllowed values:
AutoPatch,Auto,Manual -
- objectsettings.update.notification
Settings for notifications of scheduled Deckhouse updates.
Has the effect only when the automatic update mode is set.
Example:
notification: webhook: https://release-webhook.mydomain.com minimalNotificationTime: 8h retryMinTime: 2s- objectsettings.update.notification.auth
Authentication settings for the webhook.
If the parameter is omitted, the webhook will be called without authentication.
- objectsettings.update.notification.auth.basic
Basic authentication settings for the webhook.
If the parameter is omitted, the webhook will be called without authentication.
- stringsettings.update.notification.auth.basic.password
Required value
The password for the webhook.
The username and password will be sent in the
Authorizationheader in the formatBasic <base64(username:password)>. - stringsettings.update.notification.auth.basic.username
Required value
The username for the webhook.
The username and password will be sent in the
Authorizationheader in the formatBasic <base64(username:password)>.
- stringsettings.update.notification.auth.bearerToken
The token for the webhook.
The token will be sent in the
Authorizationheader in the formatBearer <token>.
- stringsettings.update.notification.minimalNotificationTime
The minimum time that must pass before updating from the moment a new minor version appears on the release channel used.
It is specified as a string containing the time unit in hours and minutes: 30m, 1h, 2h30m, 24h.
The update mechanism ensures that Deckhouse will not be updated until a specified period of time has passed.
When using update windows, the Deckhouse update will happen at the nearest possible update window but not before the time specified in
minimalNotificationTimeexpires.Pattern:
^([0-9]+h([0-9]+m)?|[0-9]+m)$Example:
minimalNotificationTime: 6h - stringsettings.update.notification.releaseType
Defines the type of version for which the notification will be sent:
Minor— only for updating the minor version.All— for any updates, including updating a patch version.
Default:
MinorAllowed values:
All,MinorExample:
releaseType: All - stringsettings.update.notification.retryMinTime
The minimum time between webhook retry attempts when the webhook request fails.
It is specified as a string containing the time unit in hours, minutes, or seconds: 30s, 1m, 2m30s, 1h, 2h30m.
The retry mechanism uses exponential backoff: each subsequent retry attempt waits twice as long as the previous one. For example, if
retryMinTimeis set to2s, the retry delays will be: 2s, 4s, 8s, 16s, 32s.Default value is 2 seconds if not specified.
Pattern:
^([0-9]+h([0-9]+m)?|[0-9]+m|[0-9]+s)$Example:
retryMinTime: 2s - booleansettings.update.notification.tlsSkipVerify
Skip TLS certificate verification while webhook request.
Default:
false - stringsettings.update.notification.webhook
URL for an external webhook handler.
The POST request will be sent to the webhook URL after a new minor version of Deckhouse appears on the release channel before it is applied to the cluster.
Caution! If you specify an invalid webhook address, Deckhouse update will be blocked.
Use the minimalNotificationTime parameter if necessary to set the minimum time that must pass before updating from the moment a new minor version appears on the release channel used.
Example of the POST request payload (
Content-Type: application/json):{ "subject":"Deckhouse", "version": "1.36.0", "requirements": {"k8s": "1.20.0"}, "changelogLink": "https://github.com/deckhouse/deckhouse/changelog/1.36.md", "applyTime": "2023-01-01T14:30:00Z00:00", "message": "New Deckhouse Release 1.36.0 is available. Release will be applied at: Friday, 01-Jan-23 14:30:00 UTC" }Description of POST request fields:
subject— string, the update event type. Possible values:Deckhouse,Module;moduleName— string, the name of the module. Set only ifsubject: Module.version- string, x.y.z (semantic versioning);requirements- object, version requirements;changelogLink- string, a URL to the minor version changelog;applyTime- string, date and time of the scheduled update (taking into account the configured update windows) in RFC3339 format;message- string, a text message about the availability of the new minor version and the scheduled update time.
Pattern:
^https?://[^\s/$.?#].[^\s]*$Example:
webhook: https://webhook.site/#!/bc8f71ac-c182-4181-9159-6ba6950afffa
- array of objectssettings.update.windows
List of update windows during the day.
- array of stringssettings.update.windows.days
The days of the week on which the update window is applied.
Example:
days: - Mon - Wed- stringElement of the array
Day of the week.
Allowed values:
Mon,Tue,Wed,Thu,Fri,Sat,SunExample:
Mon
- stringsettings.update.windows.from
Required value
Start time of the update window (UTC timezone).
Should be less than the end time of the update window.
Pattern:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$Example:
from: '13:00' - stringsettings.update.windows.to
Required value
End time of the update window (UTC timezone).
Should be more than the start time of the update window.
Pattern:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$Example:
to: '18:30'