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
      array of strings

      Deckhouse disruption keys.

    • spec.requirements
      object

      Deckhouse release requirements.

    • spec.version
      string

      Required value

      Deckhouse version.

      Example:

      version: v1.24.20
      

Module

Scope: Cluster
Version: v1alpha1

The module representation.

  • properties
    object
    • properties.availableSources
      array of strings

      The module available sources.

    • properties.description
      string

      The module description.

    • properties.releaseChannel
      string

      The module release channel.

    • properties.requirements
      object

      The module requirements.

    • properties.source
      string

      The source that the module uses.

    • properties.stage
      string

      The current stage of the module lifecycle.

      Allowed values: Sandbox, Incubating, Graduated, Deprecated

    • properties.updatePolicy
      string

      The module update policy.

    • properties.version
      string

      The module version.

    • properties.weight
      integer

      The 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 a module.

      Example:

      enabled: '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'
      

ModulePullOverride

Scope: Cluster

Defines the configuration.

  • spec
    object

    Required value

    • spec.imageTag
      string

      Required value

      Module container image tag, which will be pulled.

    • 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.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 Deckhouse release.

Deckhouse creates ModuleRelease resources by itself.

  • 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 module.

    • spec.moduleName
      string

      Required value

      Module name.

    • spec.requirements
      object

      Deckhouse release requirements.

    • spec.version
      string

      Required value

      Module version.

      Example:

      version: v1.0.0
      
    • spec.weight
      integer

      Module weight.

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.65.* to v1.66.*), confirmation is required.

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

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

        • Auto — all updates are applied automatically.

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

        • Manual — to change a minor version of modules (for example, from v1.26.* to v1.27.*), manual confirmation is required. Set modules.deckhouse.io/approved="true" annotation on the corresponding ModuleRelease resource, to confirm the update.

        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.65.* to v1.66.*), confirmation is required.

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

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

        • Auto — all updates are applied automatically.

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

        • Manual — to change a minor version of modules (for example, from v1.26.* to v1.27.*), manual confirmation is required. Set modules.deckhouse.io/approved="true" annotation on the corresponding ModuleRelease resource, to confirm the update.

        • 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'