dmt

module
v0.1.31 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2025 License: Apache-2.0

README

dmt

Coverage

Deckhouse Module Tool - the swiss knife for your Deckhouse modules

How to use

Lint

You can run linter checks for a module:

dmt lint /some/path/<your-module>

or some pack of modules

dmt lint /some/path/

where /some/path/ looks like this:

ls -l /some/path/
drwxrwxr-x 1 deckhouse deckhouse  4096 Nov 10 21:46 001-module-one
drwxrwxr-x 1 deckhouse deckhouse  4096 Nov 12 21:45 002-module-two
drwxrwxr-x 1 deckhouse deckhouse  4096 Nov 10 21:46 003-module-three

You can also run linter checks for multiple directories at once:

dmt lint /path/to/module1 /path/to/module2 /path/to/module3

Each directory is processed as a separate execution, and results are displayed for each directory individually.

Gen

Generate some automatic rules for you module <Coming soon>

Linters list

Linter Description
container Check containers - duplicated names, env variables, ports, security context, liveness and readiness probes.
hooks Check hooks rules.
images Check images build instructions.
module Check module.yaml definition, openapi conversions, oss.yaml file.
no-cyrillic Check cyrillic letters.
openapi Check openapi settings, crds.
rbac Check rbac rules.
templates Check templates rules, VPA, PDB settings, prometheus, grafana rules, kube-rbac-proxy, service target port.

Development Setup

Pre-commit Hooks

To enable automatic linting before each commit, run:

make setup-hooks

This will install a pre-commit hook that:

  • Runs fast lint checks before each commit
  • Attempts to auto-fix issues when possible
  • Prevents commits with linting errors

The hook uses make lint-fast for quick checks and make lint-fix-fast for auto-fixing.

Available Make Targets
  • make setup-hooks - Install pre-commit hooks
  • make lint - Run full linting
  • make lint-fast - Run fast linting (used by pre-commit hook)
  • make lint-fix - Run full linting with auto-fix
  • make lint-fix-fast - Run fast linting with auto-fix

Configuration

You can exclude linters or setup them via the config file .dmtlint.yaml

Global settings
global:
  linters-settings:
    module:
      impact: warn | critical
    images:
      impact: warn | critical  

Directories

Path Synopsis
cmd
dmt command
internal
module/reggen
Package reggen generates text based on regex definitions based on the reggen library by Lucas Jones https://github.com/lucasjones/reggen/blob/master/reggen.go
Package reggen generates text based on regex definitions based on the reggen library by Lucas Jones https://github.com/lucasjones/reggen/blob/master/reggen.go
promremote
Package promremote is a package to write timeseries data to a Prometheus remote write endpoint.
Package promremote is a package to write timeseries data to a Prometheus remote write endpoint.
set
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL