Module for installing and configuring the Zot registry
This module installs and configures the Zot container registry on RHEL/Ubuntu/Debian, either through OS repos or a binary release from Github.
include zot
All referenced parameters have sensible defaults set via the in-module Hiera. These can be overridden by passing the parameters with the class declaration or through Hiera itself.
This module, by default, will attempt to download and install the v1.4.3
binary from Zot's releases page on Github.
The desired version to download can be tweaked by overriding zot::archive_download_version
.
class {'zot':
archive_download_version => 'v2.0.0-rc1',
}
Alternatively, you can specify the full download URL instead with zot::archive_download_url
.
class {'zot':
archive_download_url => 'https://github.com/project-zot/zot/releases/download/v1.4.3/zot-linux-arm64',
}
Although the majority of popular distributions have yet to release a package, this module also provides support for downloading the application with the operating system's package manager.
class {'zot':
install_method => 'package',
}
Please note that the module will not manage package manager repositories.
This module currently provides support for tweaking the following configuration directives:
- Distribution Specification version
- Network configuration
- Storage location and configuration
- Log location and verbosity
- lint, metrics, scrub, search and/or sync extensions
The module manages the YAML config file by utilizing the to_yaml
function - embedded into this module - to convert Hashes to their YAML equivalent.
Beware that configuration key-value pairs are not validated by the module. Please refer to Zot's documentation for a list of supported options.
class {'zot':
config_dist_spec_version => '1.0.1-dev',
}
Networking options can be defined by configuring the zot::config_http
hash. An example with Hiera:
zot::config_http:
address: '0.0.0.0'
port: 5000
tls:
cert: 'path/to/server.cert'
key: 'path/to/server.key'
Same principle for the storage
directive.
zot::config_storage:
rootDirectory: /var/lib/zot
commit: true
dedupe: true
gc: true
gcDelay: 1h
gcInterval: 24h
Each individual extension can be configured with the module:
zot::config_extensions_lint:
enable: false
zot::config_extensions_metrics:
enable: false
zot::config_extensions_scrub:
enable: false
zot::config_extensions_search:
enable: false
zot::config_extensions_sync:
enable: false
Please refer to REFERENCE.md for a complete list of configuration options. This includes, but is not limited to:
- The user to run the service
- Basic Systemd service management
- Sync credentials and file location
See REFERENCE.md
This module is licensed with Apache 2.0.