DeckhouseRelease

Scope: Cluster
Version: v1alpha1

Defines the configuration for Deckhouse release.

  • approved
    boolean

    Allows or disables manual updates.

    Ignored if the module’s update mode is set to Auto (update.mode: Auto).

    Default: false

  • spec
    object

    Required value

    • spec.applyAfter
      string

      Marks release as a part of canary release. This release will be delayed until this time.

    • spec.changelog
      object

      Release’s changelog for enabled modules.

    • string

      Link to site with full changelog for this release.

    • spec.disruptions
      Deprecated
      array of strings

      Disruptive changes in the release.

    • spec.requirements
      object

      Deckhouse release requirements.

    • spec.version
      string

      Required value

      Deckhouse version.

      Example:

      version: v1.24.20
      

Module

Scope: Cluster
Version: v1alpha1

Describes the module’s status in the cluster. The Module object is created automatically after configuring the ModuleSource and successfully completing synchronization.

  • properties
    object
    • properties.availableSources
      array of strings

      Available sources for downloading the module.

    • properties.disableOptions
      object

      Parameters of module disable protection.

      • properties.disableOptions.confirmation
        boolean
      • properties.disableOptions.message
        string
    • properties.exclusiveGroup
      string

      Indicates the group where only one module can be active at a time.

    • properties.namespace
      string

      Module namespace.

    • properties.releaseChannel
      string

      Module release channel.

    • properties.requirements
      object

      Module dependencies, a set of requirements that must be met for Deckhouse Kubernetes Platform (DKP) to run the module.

      • properties.requirements.bootstrapped
        string

        Required cluster installation status (for built-in DKP modules only).

      • properties.requirements.deckhouse
        string

        Required Deckhouse version.

      • properties.requirements.kubernetes
        string

        Required Kubernetes version.

      • properties.requirements.modules
        object

        A list of other enabled modules required for the module.

    • properties.source
      string

      Source the module was downloaded from (otherwise will be blank).

    • properties.stage
      string

      Current stage of the module lifecycle.

    • properties.subsystems
      array of strings

      Module subsystems.

    • properties.updatePolicy
      string

      Module update policy.

    • properties.version
      string

      Module version.

    • properties.weight
      integer

      Module weight (priority).

ModuleConfig

Scope: Cluster
Version: v1alpha1

Defines the configuration of the Deckhouse module. The name of the ModuleConfig resource must match the name of the module (for example, control-plane-manager for the control-plane-manager module).

Example:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: module-1
spec:
  enabled: true
  settings: {}
  version: 1
  • spec
    object

    Required value

    • spec.enabled
      boolean

      Enables or disables the module.

      Example:

      enabled: 'false'
      
    • spec.maintenance
      string

      Defines the module maintenance mode.

      • NoResourceReconciliation: A mode for developing or tweaking the module.

        In this mode:

        • Configuration or hook changes are not reconciled, which prevents resources from being updated automatically.
        • Resource monitoring is disabled, which prevents deleted resources from being restored.
        • All the module’s resources are labeled with maintenance: NoResourceReconciliation.
        • The ModuleIsInMaintenanceMode alert is triggered.

        If Deckhouse restarts, the module reapplies its last known state once and then continues in unmanaged mode.

      Allowed values: NoResourceReconciliation

      Example:

      maintenance: 'false'
      
    • spec.settings
      object

      Module settings.

    • spec.source
      string

      The source of the module it provided by one (otherwise empty).

    • spec.updatePolicy
      string

      Module update policy.

      Example:

      updatePolicy: test-alpha
      
    • spec.version
      number

      Version of settings schema.

      Example:

      version: '1'
      

ModuleDocumentation

Scope: Cluster
Version: v1alpha1

Defines the rendering configuration of the Deckhouse module documentation.

Deckhouse creates ModuleDocumentation resources by itself.

  • spec
    object

    Required value

    • spec.checksum
      string

      Module version checksum.

    • spec.path
      string

      Path to the module version.

    • spec.version
      string

      Required value

      Module version.

      Example:

      version: v1.0.0
      

ModulePullOverride

Scope: Cluster

Defines the configuration.

  • spec
    object

    Required value

    • spec.imageTag
      string

      Required value

      Module container image tag, which will be pulled.

    • spec.rollback
      boolean

      Indicates whether the module release should be rollback after deleting mpo.

      Default: false

    • spec.scanInterval
      string

      Scan interval for checking the image digest. If the digest changes, the module is updated.

      Default: "15s"

Deprecated resource. Support for the resource might be removed in a later release.

Defines the configuration.

  • spec
    object

    Required value

    • spec.imageTag
      string

      Required value

      Module container image tag, which will be pulled.

    • spec.rollback
      boolean

      Indicates whether the module release should be rollback after deleting ModulePullOverride.

      Default: false

    • spec.scanInterval
      string

      Scan interval for checking the image digest. If the digest changes, the module is updated.

      Default: "15s"

    • spec.source
      string

      Required value

      Reference to the ModuleSource with the module.

ModuleRelease

Scope: Cluster
Version: v1alpha1

Defines the configuration for a Deckhouse release.

ModuleRelease resources are created by Deckhouse.

  • spec
    object

    Required value

    • spec.applyAfter
      string

      Time until which the release will be delayed.

    • spec.changelog
      object

      Release’s changelog for the module.

    • spec.moduleName
      string

      Required value

      Module name.

    • spec.requirements
      object

      Release dependencies, a set of requirements that must be met for Deckhouse Kubernetes Platform to run the module release.

      • spec.requirements.deckhouse
        string

        Required Deckhouse version.

      • spec.requirements.kubernetes
        string

        Required Kubernetes version.

      • spec.requirements.modules
        object

        A list of other modules required for the module release. Ensure the modules are enabled.

    • spec.version
      string

      Required value

      Module version.

      Example:

      version: v1.0.0
      
    • spec.weight
      integer

      Module weight (priority).

ModuleSettingsDefinition

Scope: Cluster
Version: v1alpha1

It displays module settings. Defines a list of module settings versions.

  • spec
    object

    Required value

    Specification of the module settings.

    • spec.versions
      array of objects

      List of module settings versions. Each version includes a name and a schema.

      • spec.versions.name
        string

        Required value

        Module settings version.

      • spec.versions.schema
        object

        Settings schema for the given module version.

ModuleSource

Scope: Cluster
Version: v1alpha1

Defines the configuration of a source of Deckhouse modules.

Example:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleSource
metadata:
  name: example
spec:
  registry:
    repo: registry.example.io/modules-source
    dockerCfg: "<base64 encoded credentials>"
  • spec
    object

    Required value

    • spec.registry
      object

      Required value

      • spec.registry.ca
        string

        Root CA certificate (PEM format) to validate the registry’s HTTPS certificate (if self-signed certificates are used).

        Creating a ModuleSource resource with the CA certificate spec will cause the container to restart on all nodes.

      • spec.registry.dockerCfg
        string

        Container registry access token in Base64. If using anonymous access to the container registry, do not fill in this field.

      • spec.registry.repo
        string

        Required value

        URL of the container registry.

        Example:

        repo: registry.example.io/deckhouse/modules
        
      • spec.registry.scheme
        string

        Protocol to access the registry.

        Default: "HTTPS"

        Allowed values: HTTP, HTTPS

    • spec.releaseChannel
      Deprecated
      string

      Desirable default release channel for modules in the current source.

ModuleUpdatePolicy

Scope: Cluster

Defines the update settings for a module’s release.

Example:

apiVersion: deckhouse.io/v1alpha2
kind: ModuleUpdatePolicy
metadata:
  name: example-update-policy
spec:
  releaseChannel: Alpha
  update:
    mode: Auto
    windows:
    - days:
      - Mon
      - Wed
      from: '13:30'
      to: '14:00'
  • spec
    object

    Required value

    • spec.releaseChannel
      string

      Desirable module release channel.

      The order in which the stability of the release channel increases (from less stable to more stable): Alpha, Beta, EarlyAccess, Stable, RockSolid.

      Default: "Stable"

      Allowed values: Alpha, Beta, EarlyAccess, Stable, RockSolid

    • spec.update
      object

      Required value

      Update settings for target modules.

      • spec.update.mode
        string

        Modules version update mode (release change).

        • AutoPatch — automatic update mode for patch releases.

          To change a minor version (for example, from v1.15.* to v1.16.*), confirmation is required.

          A patch version update (for example, from v1.16.1 to v1.16.2) is applied according to the update windows, if they are set.

        • Auto — all updates are applied automatically.

          Modules minor version updates (for example, from v1.15.* to v1.16.*) and patch version updates (for example, from v1.16.1 to v1.16.2) are applied according to the update windows or (if no update windows are set) as they appear on the corresponding release channel;

        • Manual — confirmation is required for updating both minor and patch versions.

        To confirm the update, add the modules.deckhouse.io/approved="true" annotation to the corresponding ModuleRelease resource.

        Default: "Auto"

        Allowed values: Auto, Manual, AutoPatch

      • spec.update.windows
        array of objects

        Modules update timetable.

        • spec.update.windows.days
          array of strings

          The days of the week on which the update window is applied.

          Examples:

          days: Mon
          
          days: Wed
          
          • Element of the array
            string

            Day of the week.

            Allowed values: Mon, Tue, Wed, Thu, Fri, Sat, Sun

            Example:

            Mon
            
        • spec.update.windows.from
          string

          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'
          
        • spec.update.windows.to
          string

          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'
          

Deprecated resource. Support for the resource might be removed in a later release.

Defines the update settings for a module’s release.

Example:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleUpdatePolicy
metadata:
  name: example-update-policy
spec:
  moduleReleaseSelector:
    labelSelector:
      matchLabels:
        source: example
        module: module-1
  releaseChannel: Alpha
  update:
    mode: Auto
    windows:
    - days:
      - Mon
      - Wed
      from: '13:30'
      to: '14:00'
  • spec
    object

    Required value

    • spec.moduleReleaseSelector
      object

      Required value

      Selects target modules to apply update settings to.

      • spec.moduleReleaseSelector.labelSelector
        object

        Required value

        Label-selector-based filter to match target modules.

        If both matchExpressions and matchLabels parameters are set, their requirements are ANDed together — they must all be satisfied in order to match. If multiple matchExpression conditions are provided, they all must be satisfied in order to match.

        • spec.moduleReleaseSelector.labelSelector.matchExpressions
          array of objects

          An array of set-based expressions.

          • spec.moduleReleaseSelector.labelSelector.matchExpressions.key
            string

            Required value

            A label name.

          • spec.moduleReleaseSelector.labelSelector.matchExpressions.operator
            string

            Required value

            A comparison operator.

            Allowed values: In, NotIn, Exists, DoesNotExist

          • spec.moduleReleaseSelector.labelSelector.matchExpressions.values
            array of strings

            A label value.

        • spec.moduleReleaseSelector.labelSelector.matchLabels
          object

          A number of equality-based label filters.

          Example:

          matchLabels:
            source: deckhouse
            module: deckhouse-admin
          
    • spec.releaseChannel
      string

      Desirable module release channel.

      The order in which the stability of the release channel increases (from less stable to more stable): Alpha, Beta, EarlyAccess, Stable, RockSolid.

      Default: "Stable"

      Allowed values: Alpha, Beta, EarlyAccess, Stable, RockSolid

    • spec.update
      object

      Required value

      Update settings for target modules.

      • spec.update.mode
        string

        Modules version update mode (release change).

        • AutoPatch — automatic update mode for patch releases.

          To change a minor version (for example, from v1.15.* to v1.16.*), confirmation is required.

          A patch version update (for example, from v1.16.1 to v1.16.2) is applied according to the update windows, if they are set.

        • Auto — all updates are applied automatically.

          Modules minor version updates (for example, from v1.15.* to v1.16.*) and patch version updates (for example, from v1.16.1 to v1.16.2) are applied according to the update windows or (if no update windows are set) as they appear on the corresponding release channel;

        • Manual — confirmation is required for updating both minor and patch versions.

        To confirm the update, add the modules.deckhouse.io/approved="true" annotation to the corresponding ModuleRelease resource.

        • Ignore — updates are ignored.

        Default: "AutoPatch"

        Allowed values: Auto, Manual, Ignore, AutoPatch

      • spec.update.windows
        array of objects

        Modules update timetable.

        • spec.update.windows.days
          array of strings

          The days of the week on which the update window is applied.

          Examples:

          days: Mon
          
          days: Wed
          
          • Element of the array
            string

            Day of the week.

            Allowed values: Mon, Tue, Wed, Thu, Fri, Sat, Sun

            Example:

            Mon
            
        • spec.update.windows.from
          string

          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'
          
        • spec.update.windows.to
          string

          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'