Forge Home

zot

Install and configure zot registry

456 downloads

205 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.2.0 (latest)
  • 0.1.1
  • 0.1.0
released Apr 13th 2023
This version is compatible with:
  • Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x
  • Puppet >= 6.21.0 < 8.0.0
  • , , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'maartenbeeckmans-zot', '0.2.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add maartenbeeckmans-zot
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install maartenbeeckmans-zot --version 0.2.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

maartenbeeckmans/zot — version 0.2.0 Apr 13th 2023

Zot

Module for installing and configuring the Zot registry

Table of Contents

  1. Description
  2. Usage - Configuration options and additional functionality
  3. Reference
  4. License

Description

This module installs and configures the Zot container registry on RHEL/Ubuntu/Debian, either through OS repos or a binary release from Github.

Usage

include zot

Hiera

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.

Installation

Install with URL

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',
}

Install with package manager

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.

Configuration

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.

Specifying distribution specification version

class {'zot':
  config_dist_spec_version => '1.0.1-dev',
}

HTTP listening address and port

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'

Filesystem storage

Same principle for the storage directive.

zot::config_storage:
  rootDirectory: /var/lib/zot
  commit: true
  dedupe: true
  gc: true
  gcDelay: 1h
  gcInterval: 24h

Extensions

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

Additional options

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

Reference

See REFERENCE.md

License

This module is licensed with Apache 2.0.