Available in:  CE, BE, SE, SE+, EE

The module lifecycle stageGeneral Availability
The module has requirements for installation

How to explicitly enable the module…

You may explicitly enable or disable the module in one of the following ways:

  • Via Deckhouse web UI. In the “System” → “System Management” → “Deckhouse” → “Modules” section, open the extended-monitoring module and enable (or disable) the “Module enabled” toggle. Save changes.

    Example:

    Module enable/disable interface
  • Via Deckhouse CLI (d8).

    Use the d8 system module enable command for enabling, or d8 system module disable command for disabling the module (you need Deckhouse CLI (d8), configured to work with the cluster).

    Example of enabling the module:

    d8 system module enable extended-monitoring
  • Using ModuleConfig extended-monitoring.

    Set spec.enabled to true or false in ModuleConfig extended-monitoring (create it if necessary);

    Example of a manifest to enable module extended-monitoring:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: extended-monitoring
    spec:
      enabled: true

How to configure the module…

You can configure the module in one of the following ways:

  • Via Deckhouse web UI.

    In the “System” → “System Management” → “Deckhouse” → “Modules” section, open the extended-monitoring module and enable the “Advanced Settings” switch. Fill in the required fields in the “Configuration” tab or specify the module settings in YAML format on the “YAML” tab, excluding the settings section. Save the changes.

    Example:

    Module Setup Interface

    You can also edit the ModuleConfig object extended-monitoring on the “YAML” tab in the module settings window (“System” → “System Management” → “Deckhouse” → “Modules”, open the module extended-monitoring) by specifying the schema version in the spec.version parameter and the necessary module parameters in the spec.settings section.

  • Via Deckhouse CLI (d8) (requires Deckhouse CLI (d8) configured to work with the cluster).

    Edit the existing ModuleConfig extended-monitoring (for more details on configuring Deckhouse, see the documentation) by executing the following command:

    d8 k edit mc extended-monitoring

    Make the necessary changes in the spec.settings section. If necessary, specify the schema version in the spec.version parameter. Save the changes.

    You can also create a file with manifest for ModuleConfig extended-monitoring using the example below. Fill in the spec.settings section with the required module parameters. If necessary, specify the schema version in the spec.version parameter.

    Apply the manifest using the following command (indicate the manifest file name):

    d8 k apply -f <FILENAME>

    Example of a manifest for ModuleConfig extended-monitoring:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: extended-monitoring
    spec:
      version: 2
      enabled: true
      settings: # Module parameters from the "Parameters" section below.

How to change the module release channel…

To change the module release channel, follow the instruction.

Requirements

To the Deckhouse version: 1.76 and above.

To the versions of other modules:

  • prometheus: any version.

Conversions

The module is configured using the ModuleConfig resource, the schema of which contains a version number. When you apply an old version of the ModuleConfig schema in a cluster, automatic transformations are performed. To manually update the ModuleConfig schema version, the following steps must be completed sequentially for each version:

  • Updates from version 1 to 2:

    If the .imageAvailability.skipRegistryCertVerification field is set to true, add .imageAvailability.registry.tlsConfig.insecureSkipVerify=true. Then, delete the skipRegistryCertVerification field from the object. If the .imageAvailability object becomes empty after this change, delete it.

Parameters

Schema version: 2

  • settings
    object
    • settings.certificates
      object
      Settings for monitoring the certificates in the Kubernetes cluster.

      Default: {}

      • settings.certificates.exporterEnabled
        boolean
        Enables x509-certificate-exporter.

        Default: false

    • settings.events
      object
      Settings for monitoring the events in the Kubernetes cluster.

      Default: {}

      • settings.events.exporterEnabled
        boolean
        Enables eventsExporter.

        Default: false

      • settings.events.severityLevel
        string
        Setting for the logging level.

        Default: OnlyWarnings

        Allowed values: All, OnlyWarnings

    • settings.imageAvailability
      object
      Settings for monitoring the availability of images in the cluster.

      Default: {}

      • settings.imageAvailability.awsRegion
        string
        AWS region for ECR authentication.

        Example:

        awsRegion: eu-central-1
        
      • settings.imageAvailability.defaultRegistry
        string
        Default registry to use when an image name is not fully qualified.

        Default: index.docker.io

      • settings.imageAvailability.exporterEnabled
        boolean
        Enables imageAvailabilityExporter.

        Default: true

      • settings.imageAvailability.forceCheckDisabledControllers
        array of strings

        A list of controller kinds for which image is forcibly checked, even when workloads are disabled or suspended.

        Specify All to check all controller kinds.

        Example:

        forceCheckDisabledControllers:
        - Deployment
        - StatefulSet
        
        • settings.imageAvailability.forceCheckDisabledControllers.Element of the array
          string

          Allowed values: Deployment, StatefulSet, DaemonSet, CronJob, All

      • settings.imageAvailability.ignoredImages
        array of strings
        A list of images to ignore when checking the presence in the registry, e.g., alpine:3.12 or quay.io/test/test:v1.1.

        Example:

        ignoredImages:
        - alpine:3.10
        - alpine:3.2
        
      • settings.imageAvailability.imageCheckInterval
        string

        Interval for checking container registries for image availability.

        Supports Go-style duration format (e.g. 10s, 10m, 10h).

        Default: 60s

      • settings.imageAvailability.mirrors
        array of objects
        List of mirrors for container registries.

        Example:

        mirrors:
        - mirror: mirror.gcr.io
          original: docker.io
        - mirror: mirror.internal-registry.com
          original: internal-registry.com
        
        • settings.imageAvailability.mirrors.mirror
          string
          Hostname of the mirror container registry used instead of original, for example mirror.gcr.io.
        • settings.imageAvailability.mirrors.original
          string
          Hostname of the source container registry to replace with a mirror, for example docker.io.
      • settings.imageAvailability.registry
        object
        Connection settings for container registry.

        Default: {}

        • settings.imageAvailability.registry.scheme
          string
          Container registry access scheme.

          Default: HTTPS

          Allowed values: HTTP, HTTPS

        • settings.imageAvailability.registry.tlsConfig
          object
          TLS settings for connecting to the container registry.

          Default: {}

          • settings.imageAvailability.registry.tlsConfig.ca
            string
            Root CA certificate to validate the container registry’s HTTPS certificate (if self-signed certificates are used).
          • settings.imageAvailability.registry.tlsConfig.insecureSkipVerify
            boolean
            Whether to skip the verification of the container registry certificate.

            Default: false

    • settings.nodeSelector
      object

      The same as in the pods’ spec.nodeSelector parameter in Kubernetes.

      If the parameter is omitted or false, it will be determined by advanced scheduling.

    • settings.tolerations
      array of objects

      The same as in the pods’ spec.tolerations parameter in Kubernetes.

      If the parameter is omitted or false, it will be determined by advanced scheduling.

      • settings.tolerations.effect
        string

        Taint effect to match. An empty value matches all effects.

        Might be:

        • NoSchedule: Do not schedule new pods onto the node unless they tolerate the taint.
        • PreferNoSchedule: Prefer not to schedule new pods onto the node, but do not forbid it.
        • NoExecute: Evict pods that do not tolerate the taint; pods that tolerate it may stay.
      • settings.tolerations.key
        string

        Taint key that the toleration applies to. An empty value matches all taint keys.

        If key is empty, operator must be Exists.

      • settings.tolerations.operator
        string

        How key relates to value. Defaults to Equal.

        Might be:

        • Equal: Match both key and value.
        • Exists: Match by key only; value must be empty.
      • settings.tolerations.tolerationSeconds
        integer

        How long (in seconds) the pod can stay on a node after a matching NoExecute taint is added.

        Used only with effect: NoExecute. If omitted, the taint is tolerated forever. Zero or negative values mean immediate eviction.

      • settings.tolerations.value
        string

        Taint value to match.

        Must be empty when operator is Exists.