### Create Nexus NPM Hosted Repository Example Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Example of how to declare the nexus::resource::repository::npm::hosted Puppet resource to create an npm hosted repository named 'npm-hosted'. ```puppet nexus::resource::repository::npm::hosted { 'npm-hosted': # Additional parameters can be specified here, e.g.: # online => true, # storage_blob_store_name => 'my-npm-blobstore' } ``` -------------------------------- ### Create Nexus NPM Proxy Repository Example Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Example of how to declare the nexus::resource::repository::npm::proxy Puppet resource to create an npm proxy repository pointing to the official npm registry. ```puppet nexus::resource::repository::npm::proxy { 'npm-npmjs.org': proxy_remote_url => 'https://registry.npmjs.org', } ``` -------------------------------- ### Nexus Docker Proxy Repository Example (Puppet) Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md An example of how to configure a Nexus Docker proxy repository using the nexus::resource::repository::docker::proxy Puppet defined type. ```Puppet nexus::resource::repository::docker::proxy { 'docker-docker.io': proxy_remote_url => 'https://registry-1.docker.io', } ``` -------------------------------- ### Nexus Composer Plugin Installation Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Installs the Composer repository format plugin for Nexus. Requires specifying the plugin version. ```puppet class { 'nexus': version => '3.34.3-02', } class { 'nexus::plugin::composer': version => '0.0.18', } ``` -------------------------------- ### Nexus PyPI Proxy Repository Example Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Demonstrates how to create a PyPI proxy repository in Nexus using the nexus::resource::repository::pypi::proxy Puppet defined type. This example sets the repository name to 'pypi.org' and specifies the remote URL for the PyPI registry. ```Puppet nexus::resource::repository::pypi::proxy { 'pypi.org': proxy_remote_url => 'https://pypi.org', } ``` -------------------------------- ### Puppet: Basic Nexus Role Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/README.md Demonstrates a basic Puppet role class for setting up a Nexus host. It requires the `puppetlabs/java` module and explicitly defines the Nexus version to be installed, which is crucial for determining the download link and directory naming. ```puppet class role_nexus_server { # puppetlabs-java # NOTE: Nexus requires class{ 'java': } class{ 'nexus': version => '3.42.0-01', } Class['java'] -> Class['nexus'] } ``` -------------------------------- ### Nexus Class Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Installs and configures Sonatype Nexus Repository Manager 3. This class is the main entry point for managing Nexus. ```Puppet class { 'nexus': version => '3.37.3-02', } ``` -------------------------------- ### Nexus Class Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines the configurable parameters for the Nexus module, controlling its installation, configuration, and operational behavior. These parameters cover aspects such as download directories, installation roots, user and group management, network binding, API resource management, configuration file management, and database settings. ```APIDOC nexus Class Parameters: download_folder: Stdlib::Absolutepath Destination folder of the downloaded archive. download_site: Stdlib::HTTPUrl Download uri which will be appended with filename of the archive to download. install_root: Stdlib::Absolutepath The root filesystem path where the downloaded archive will be extracted to. work_dir: Stdlib::Absolutepath The nexus repository manager working directory which contains the embedded database and local blobstores. user: String[1] The operation system user used to start the nexus repository manager service. group: String[1] The operation system group used to start the nexus repository manager service. host: Stdlib::Host The bind address where the nexus repository manager service should bind to. port: Stdlib::Port The port which the nexus repository manager service should use. manage_api_resources: Boolean Set if this module should manage resources which require to be set over the nexus repository manager rest api. manage_config: Boolean Set if this module should manage the config file of nexus repository manager. manage_user: Boolean Set if this module should manage the creation of the operation system user. manage_work_dir: Boolean Set if this module should manage the work directory of the nexus repository manager. manage_datastore: Boolean Set if this module should manage datastore - Note that you need a licence for postgresql backend. purge_installations: Boolean Set this option if you want old installations of nexus repository manager to get automatically deleted. purge_default_repositories: Boolean Set this option if you want to remove the default created maven and nuget repositories. package_type: Enum['src', 'pkg'] Select 'src' for Source download & install. 'pkg' will fetch the specified package and version from repos you must provide. package_ensure: String The version to install. See https://puppet.com/docs/puppet/7/types/package.html#package-attribute-ensure download_proxy: Optional[Stdlib::HTTPUrl] Proxyserver address which will be used to download the archive file. Default value: undef version: Optional[Pattern[/3.\d+.\d+-\d+/]] The version to download, install and manage. Default value: undef java_runtime: Optional[Enum['java8', 'java11']] The Java runtime to be utilized. Relevant only for Nexus versions >= 3.67.0-03 and < 3.71.0. Default value: undef package_name: Optional[String] The name of the package to install. Default 'nexus' Default value: undef postgresql_username: Optional[String[1]] Postgresql Username - Only available in Sonatype Nexus Repository Pro Default value: undef postgresql_password: Optional[String[1]] Postgresql Password - Only available in Sonatype Nexus Repository Pro Default value: undef postgresql_jdbcurl: Optional[String[1]] Postgresql JDBC URL - Only available in Sonatype Nexus Repository Pro Default value: undef ``` -------------------------------- ### Puppet Nexus Docker Proxy Repository Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md This entry details the parameters available for the `nexus::resource::repository::docker::proxy` defined type in Puppet. It specifies data types, default values, and descriptions for each configuration option, enabling comprehensive setup of Docker proxy repositories in Nexus. ```APIDOC nexus::resource::repository::docker::proxy: Parameters: proxy_remote_url: Data type: Stdlib::HTTPSUrl Description: Docker repository url like https://registry-1.docker.io. ensure: Data type: Enum['present', 'absent'] Description: Define if the resource should be created/present or deleted/absent. Default value: 'present' http_client_auto_block: Data type: Boolean Description: Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: true http_client_blocked: Data type: Boolean Description: Block outbound connections on the repository. Default value: false authentication: Data type: Optional[Struct[{type => Enum['username', 'ntlm'], username => String[1], password => String[1], Optional[ntlmHost] => Optional[String[1]], Optional[ntlmDomain] => Optional[String[1]}]] Description: Authentication credentials for the remote repository. Default value: undef negative_cache_enabled: Data type: Boolean Description: Cache responses for content not present in the proxied repository. Default value: true negative_cache_time_to_live: Data type: Integer Description: How long to cache the fact that a file was not found in the repository (in minutes). Default value: 1440 online: Data type: Boolean Description: Enable this repository in nexus repository manager that it can be used. Default value: true proxy_content_max_age: Data type: Integer Description: Max age of content (packages). Default value: 1440 proxy_metadata_max_age: Data type: Integer Description: Max age of the repository metadata. Default value: 1440 storage_blob_store_name: Data type: String[1] Description: The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository. Default value: $title storage_strict_content_type_validation: Data type: Boolean Description: Whether to enforce strict content type validation for stored artifacts. storage_write_policy: Data type: Enum['allow', 'reject', 'update'] Description: The write policy for the repository storage. docker_v1_enabled: Data type: Boolean Description: Enable support for Docker API v1. docker_force_basic_auth: Data type: Boolean Description: Force basic authentication for Docker clients. docker_http_port: Data type: Integer Description: The HTTP port for the Docker repository. docker_https_port: Data type: Integer Description: The HTTPS port for the Docker repository. docker_subdomain: Data type: String[1] Description: The subdomain used for Docker repository access. docker_proxy_index_type: Data type: Enum['nexus', 'maven'] Description: The index type for Docker proxy repositories. docker_proxy_index_url: Data type: Stdlib::HTTPSUrl Description: The URL for the Docker proxy index. docker_proxy_cache_foreign_layers: Data type: Boolean Description: Whether to cache foreign layers for Docker proxy repositories. docker_proxy_foreign_layer_url_whitelist: Data type: Array[Stdlib::HTTPSUrl] Description: A whitelist of URLs for caching foreign Docker layers. cleanup_policy_names: Data type: Array[String[1]] Description: Names of cleanup policies to apply to this repository. ``` -------------------------------- ### Nexus Yum Proxy Repository Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Provides an example and parameter documentation for configuring Nexus Yum proxy repositories. This includes setting the remote URL, managing caching, connection blocking, and repository online status. ```puppet nexus::resource::repository::yum::proxy { 'yum-oracle-latest': proxy_remote_url => 'https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/', } ``` -------------------------------- ### Nexus Email Start TLS Enabled Parameter Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Enables the use of STARTTLS for securing the SMTP connection when sending emails from Nexus Repository Manager. Accepts a boolean value. ```APIDOC Parameter: start_tls_enabled Data type: Boolean Description: Enable STARTTLS for email sending. ``` -------------------------------- ### Nexus Email Start TLS Required Parameter Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Enforces that the STARTTLS protocol must be used for the SMTP connection when sending emails from Nexus Repository Manager. Accepts a boolean value. ```APIDOC Parameter: start_tls_required Data type: Boolean Description: Require STARTTLS for email sending. ``` -------------------------------- ### Puppet: Migrate Nexus Installation Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/README.md Provides Puppet code to migrate an existing Nexus installation from an older path (e.g., /srv) to a new default path (e.g., /opt/sonatype). It includes steps to stop the running service, remove old work directories, and move the existing work directory to the new location, ensuring data integrity during the upgrade. ```puppet exec { 'shutdown-running-service': command => '/usr/bin/systemctl stop nexus.service', onlyif => [ '/usr/bin/test -d /srv/sonatype-work', '/usr/bin/test ! -d /opt/sonatype/sonatype-work' ], before => [ Class['nexus::package'], Class['nexus::user'] ], } # nexus::package will extract the archive which contains an empty work directory exec { 'remove-empty-work-directory': command => '/usr/bin/rm -rf /opt/sonatype/sonatype-work', onlyif => [ '/usr/bin/test -d /srv/sonatype-work', '/usr/bin/test -d /opt/sonatype/sonatype-work' ], before => [ Exec['move-work-directory-to-new-location'] ], require => [ Class['nexus::package'], ] } # move the old working directory to the new location exec { 'move-work-directory-to-new-location': command => '/usr/bin/mv /srv/sonatype-work /opt/sonatype/', onlyif => [ '/usr/bin/test -d /srv/sonatype-work', '/usr/bin/test ! -d /opt/sonatype/sonatype-work' ], require => [ Class['nexus::package'], Exec['remove-empty-work-directory'], ], before => Class['nexus::service'], } ``` -------------------------------- ### Nexus Apt Proxy Repository Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines the parameters for configuring an APT proxy repository within Nexus using the Puppet `nexus::resource::repository::apt::proxy` defined type. It covers essential settings for repository distribution, upstream URL, caching mechanisms, storage configuration, and optional cleanup policies. ```APIDOC nexus::resource::repository::apt::proxy Parameters: apt_distribution: String[1] APT distribution like buster, bullseye used by nexus repository manager to query the upstream repository. proxy_remote_url: Stdlib::HTTPUrl APT repository url like https://deb.debian.org/debian/. apt_flat: Boolean Is the upstream repository flat format? Default value: `false` ensure: Enum['present', 'absent'] Define if the resource should be created/present or deleted/absent. Default value: `'present'` http_client_auto_block: Boolean Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: `true` http_client_blocked: Boolean Block outbound connections on the repository. Default value: `false` negative_cache_enabled: Boolean Cache responses for content not present in the proxied repository. Default value: `true` negative_cache_time_to_live: Integer How long to cache the fact that a file was not found in the repository (in minutes). Default value: `1440` online: Boolean Enable this repository in nexus repository manager that it can be used. Default value: `true` proxy_content_max_age: Integer Max age of content (packages) Default value: `1440` proxy_metadata_max_age: Integer Max age of the repository metadata Default value: `1440` storage_blob_store_name: String[1] The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository. Default value: `$title` storage_strict_content_type_validation: Boolean Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format. Default value: `true` storage_write_policy: Enum['ALLOW'] Controls if deployments of and updates to artifacts are allowed. Default value: `'ALLOW'` cleanup_policy_names: Array[String[1]] Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: `[]` ``` -------------------------------- ### Nexus APT Proxy Repository Resource Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Manages an APT proxy repository in Nexus. Requires specifying the repository name, APT distribution codename, and the remote URL of the APT repository. ```puppet nexus::repository::apt::proxy { 'apt-debian': apt_distribution => $facts['os']['distro']['codename'], proxy_remote_url => 'https://deb.debian.org/debian/', } ``` -------------------------------- ### Nexus Raw Hosted Repository Configuration (Puppet) Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines parameters for managing Nexus raw hosted repositories using Puppet. It covers settings like ensure, online status, blob store configuration, content type validation, write policy, proprietary component handling, content disposition, and cleanup policies. ```APIDOC nexus::resource::repository::raw::hosted Parameters: ensure (Enum['present', 'absent'], default: 'present'): Define if the resource should be created/present or deleted/absent. online (Boolean, default: true): Whether this repository accepts incoming requests. storage_blob_store_name (String[1], default: $title): The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository. storage_strict_content_type_validation (Boolean, default: true): Whether to validate uploaded content's MIME type appropriate for the repository format. storage_write_policy (Enum['allow', 'allow_once', 'deny'], default: 'allow_once'): Controls if deployments of and updates to assets are allowed. component_proprietary_components (Boolean, default: true): Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall). content_disposition (Enum['INLINE', 'ATTACHMENT'], default: 'ATTACHMENT'): Content Disposition. cleanup_policy_names (Array[String[1]], default: []): Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. ``` -------------------------------- ### Nexus Docker Hosted Repository Parameters (Puppet) Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines the available parameters for the nexus::resource::repository::docker::hosted Puppet defined type, covering configuration options for creating and managing hosted Docker repositories in Nexus. ```APIDOC nexus::resource::repository::docker::hosted: Manages a Nexus hosted Docker repository. Parameters: ensure (Enum['present', 'absent']): Define if the resource should be created/present or deleted/absent. Default: 'present' online (Boolean): Allow incoming requests to this repository. Default: true storage_blob_store_name (String[1]): The name of the blobstore inside of Nexus Repository Manager to be used. It is suggested to use a separate blobstore for each defined repository. Default: $title storage_strict_content_type_validation (Boolean): Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format. Default: true storage_write_policy (Enum['ALLOW','ALLOW_ONCE','DENY']): Controls if deployments of and updates to artifacts are allowed. Default: 'ALLOW_ONCE' component_proprietary_components (Boolean): Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall). Default: true docker_v1_enabled (Boolean): Allow clients to use the V1 API to interact with this repository. Default: false docker_force_basic_auth (Boolean): Allow anonymous docker pull (Docker Bearer Token Realm required). Default: true docker_http_port (Optional[Stdlib::Port]): Create an HTTP connector at the specified port. Normally used if the server is behind a secure proxy. Default: undef docker_https_port (Optional[Stdlib::Port]): Create an HTTPS connector at the specified port. Normally used if the server is configured for HTTPS. Default: undef docker_subdomain (Optional[Stdlib::Fqdn]): Use the following subdomain to make push and pull requests for this repository. Default: undef cleanup_policy_names (Array[String[1]]): Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default: [] ``` -------------------------------- ### Puppet: Nginx Proxy Configuration for Nexus Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/README.md Configures Nginx as a reverse proxy for Nexus, ensuring all connections are forced to HTTPS. This setup utilizes the `puppet/puppet-nginx` module to manage Nginx virtual hosts and location blocks, directing traffic to the Nexus application while enforcing SSL. ```puppet class{ '::nginx': } file { '/etc/nginx/conf.d/default.conf': ensure => absent, require => Class['::nginx::package'], notify => Class['::nginx::service'] } nginx::resource::vhost { 'nexus': ensure => present, www_root => '/usr/share/nginx/html', rewrite_to_https => true, ssl => true, ssl_cert => '/etc/pki/tls/certs/server.crt', ssl_key => '/etc/pki/tls/private/server.key', } nginx::resource::location { 'nexus': ensure => present, location => '/', vhost => 'nexus', proxy => "http://${nexus::host}:${nexus::port}", ssl => true, } ``` -------------------------------- ### Nexus Properties Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Configures general properties for the Nexus instance. This class serves as a placeholder for broader Nexus configuration settings. ```puppet include nexus::config::properties ``` -------------------------------- ### Puppet: Nginx Docker Proxy for Nexus Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/README.md Extends the Nginx proxy configuration to enable Docker registry access through Nexus. This snippet adds specific location blocks for Docker API v2, routing requests to the Nexus Docker hosted repository while maintaining the overall Nginx proxy setup for Nexus. ```puppet nginx::resource::location { 'nexus': ensure => present, location => '/', locations => { 'docker-v2' => { location => '/v2/', proxy => "http://${nexus::host}:${nexus::port}/repository/docker-hosted/v2/", } }, vhost => 'nexus', proxy => "http://${nexus::host}:${nexus::port}", ssl => true, } ``` -------------------------------- ### Nexus Repository Proxy Configuration Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Configuration options for Nexus repository proxy settings, controlling aspects like connection blocking, caching, online status, storage, and cleanup policies. ```APIDOC http_client_auto_block: Data type: Boolean Description: Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: true http_client_blocked: Data type: Boolean Description: Block outbound connections on the repository. Default value: false negative_cache_enabled: Data type: Boolean Description: Cache responses for content not present in the proxied repository. Default value: true negative_cache_time_to_live: Data type: Integer Description: How long to cache the fact that a file was not found in the repository (in minutes). Default value: 1440 online: Data type: Boolean Description: Enable this repository in Nexus Repository Manager so it can be used. Default value: true proxy_content_max_age: Data type: Integer Description: Max age of content (packages). Default value: 1440 proxy_metadata_max_age: Data type: Integer Description: Max age of the repository metadata. Default value: 1440 storage_blob_store_name: Data type: String[1] Description: The name of the blobstore inside Nexus Repository Manager to be used. Suggestion: use a own blobstore for each defined repository. Default value: $title storage_strict_content_type_validation: Data type: Boolean Description: Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format. Default value: true storage_write_policy: Data type: Enum['ALLOW','ALLOW_ONCE','DENY'] Description: Controls if deployments of and updates to artifacts are allowed. Default value: 'ALLOW' cleanup_policy_names: Data type: Array[String[1]] Description: Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: [] ``` -------------------------------- ### Manage Nexus Docker Hosted Repository (Puppet) Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Manages a Nexus Docker hosted repository. This resource is used to create and configure a repository where Docker images can be hosted. It requires the Nexus Puppet module. ```puppet nexus::repository::docker::hosted { 'docker-hosted': ensure => 'present', online => true, storage_blob_store_name => 'default', storage_strict_content_type_validation => true, docker_v1_enabled => false, docker_force_basic_auth => true, docker_http_port => undef, docker_https_port => undef, docker_subdomain => undef, } ``` -------------------------------- ### Nexus Yum Hosted Repository Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines configuration parameters for Nexus Yum hosted repositories, controlling aspects like artifact deployment, component namespace conflicts, repodata generation depth, redeployment policies, and cleanup policies. ```APIDOC nexus::resource::repository::yum::hosted: storage_write_policy: Enum['ALLOW','ALLOW_ONCE','DENY'] Controls if deployments of and updates to artifacts are allowed. Default value: 'ALLOW_ONCE' component_proprietary_components: Boolean Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall). Default value: true repodata_depth: Integer[0, 5] Set the depth of the directory in which the repodata/repomd.xml will be generated. Default value: 0 deploy_policy: Enum['STRICT','PERMISSIVE'] Set the deploy policy, whether or not a redeploy of rpm's is allowed. Default value: 'STRICT' cleanup_policy_names: Array[String[1]] Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: [] ``` -------------------------------- ### Puppet Nexus PyPI Proxy Repository Resource Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines parameters for managing a PyPI proxy repository within Nexus using Puppet. This resource type allows configuration of proxy settings, caching, and storage for PyPI repositories. ```APIDOC nexus::resource::repository::pypi::proxy Manages a PyPI proxy repository in Nexus. Parameters: * proxy_remote_url: Data type: Stdlib::HTTPSUrl Description: PyPi repository url like https://pypi.org. * ensure: Data type: Enum['present', 'absent'] Description: Define if the resource should be created/present or deleted/absent. Default value: 'present' * http_client_auto_block: Data type: Boolean Description: Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: true * http_client_blocked: Data type: Boolean Description: Block outbound connections on the repository. Default value: false * negative_cache_enabled: Data type: Boolean Description: Cache responses for content not present in the proxied repository. Default value: true * negative_cache_time_to_live: Data type: Integer Description: How long to cache the fact that a file was not found in the repository (in minutes). Default value: 1440 * online: Data type: Boolean Description: Enable this repository in nexus repository manager that it can be used. Default value: true * proxy_content_max_age: Data type: Integer Description: Max age of content (packages). Default value: 1440 * proxy_metadata_max_age: Data type: Integer Description: Max age of the repository metadata. Default value: 1440 * storage_blob_store_name: Data type: String[1] Description: The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository. Default value: $title * storage_strict_content_type_validation: Data type: Boolean Description: Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format. Default value: true * storage_write_policy: Data type: Enum['ALLOW','ALLOW_ONCE','DENY'] Description: Controls if deployments of and updates to artifacts are allowed. Default value: 'ALLOW' * remove_quarantined: Data type: Boolean Description: Remove Quarantined Versions. Default value: false * cleanup_policy_names: Data type: Array[String[1]] Description: Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: [] ``` -------------------------------- ### Nexus Yum Proxy Repository Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Details the parameters available for configuring Nexus Yum proxy repositories, covering remote URL, ensure state, HTTP client behavior, negative caching, online status, and content/metadata caching ages. ```APIDOC nexus::resource::repository::yum::proxy: proxy_remote_url: Stdlib::HTTPSUrl yum repository url like https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/. ensure: Enum['present', 'absent'] Define if the resource should be created/present or deleted/absent. Default value: 'present' http_client_auto_block: Boolean Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: true http_client_blocked: Boolean Block outbound connections on the repository. Default value: false negative_cache_enabled: Boolean Cache responses for content not present in the proxied repository. Default value: true negative_cache_time_to_live: Integer How long to cache the fact that a file was not found in the repository (in minutes). Default value: 1440 online: Boolean Enable this repository in nexus repository manager that it can be used. Default value: true proxy_content_max_age: Integer Max age of content (packages) Default value: 1440 proxy_metadata_max_age: Integer Max age of the repository metadata Default value: 1440 storage_blob_store_name: String The name of the blob store to use for this repository. storage_strict_content_type_validation: Boolean Enforce strict content type validation for uploads. Default value: true storage_write_policy: Enum['ALLOW','ALLOW_ONCE','DENY'] Controls if deployments of and updates to artifacts are allowed. Default value: 'ALLOW_ONCE' cleanup_policy_names: Array[String[1]] Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: [] ``` -------------------------------- ### Nexus NPM Proxy Repository Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines the available parameters for the nexus::resource::repository::npm::proxy Puppet defined type. These parameters control the configuration of an NPM proxy repository within Nexus Repository Manager, including remote URL, caching, cleanup policies, and storage settings. ```APIDOC nexus::resource::repository::npm::proxy: Parameters: proxy_remote_url: Data type: Stdlib::HTTPSUrl. NPM repository url like https://registry.npmjs.org. ensure: Data type: Enum['present', 'absent']. Define if the resource should be created/present or deleted/absent. Default value: 'present'. npm_remove_quarantined: Data type: Boolean. Remove quarantined versions from the npm package metadata. (Requires IQ: Audit and Quarantine). Default value: false. http_client_auto_block: Data type: Boolean. Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: true. http_client_blocked: Data type: Boolean. Block outbound connections on the repository. Default value: false. negative_cache_enabled: Data type: Boolean. Cache responses for content not present in the proxied repository. Default value: true. negative_cache_time_to_live: Data type: Integer. How long to cache the fact that a file was not found in the repository (in minutes). Default value: 1440. online: Data type: Boolean. Enable this repository in nexus repository manager that it can be used. Default value: true. proxy_content_max_age: Data type: Integer. Max age of content (packages). Default value: 1440. proxy_metadata_max_age: Data type: Integer. Max age of the repository metadata. Default value: 1440. storage_blob_store_name: Data type: String[1]. The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository. Default value: $title. storage_strict_content_type_validation: Data type: Boolean. Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format. Default value: true. storage_write_policy: Data type: Enum['ALLOW','ALLOW_ONCE','DENY']. Controls if deployments of and updates to artifacts are allowed. Default value: 'ALLOW'. cleanup_policy_names: Data type: Array[String[1]]. Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: []. ``` -------------------------------- ### Nexus RubyGems Proxy Repository Configuration (Puppet) Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Manages Nexus RubyGems proxy repositories using Puppet. This includes specifying the remote URL for the RubyGems repository and configuring various proxy and caching settings, as well as general repository parameters. ```APIDOC nexus::resource::repository::rubygems::proxy Example: nexus::resource::repository::rubygems::proxy { 'rubygems.org': proxy_remote_url => 'https://rubygems.org/', } Parameters: proxy_remote_url (Stdlib::HTTPSUrl): RubyGems repository url like https://rubygems.org/. ensure (Enum['present', 'absent'], default: 'present'): Define if the resource should be created/present or deleted/absent. http_client_auto_block (Boolean): http_client_blocked (Boolean): negative_cache_enabled (Boolean): negative_cache_time_to_live (Integer): online (Boolean, default: true): Whether this repository accepts incoming requests. proxy_content_max_age (Integer): proxy_metadata_max_age (Integer): storage_blob_store_name (String[1], default: $title): The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each defined repository. storage_strict_content_type_validation (Boolean, default: true): Whether to validate uploaded content's MIME type appropriate for the repository format. storage_write_policy (Enum['allow', 'allow_once', 'deny'], default: 'allow_once'): Controls if deployments of and updates to assets are allowed. cleanup_policy_names (Array[String[1]], default: []): Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. ``` -------------------------------- ### Nexus Docker Proxy Repository Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Configuration options for Nexus Docker proxy repositories. These parameters control various aspects of repository behavior, including content validation, deployment policies, API access, network ports, and caching mechanisms for Docker images. ```APIDOC `storage_strict_content_type_validation`: Data type: `Boolean` Description: Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format. Default value: `true` `storage_write_policy`: Data type: `Enum['ALLOW','ALLOW_ONCE','DENY']` Description: Controls if deployments of and updates to artifacts are allowed. Default value: `'ALLOW'` `docker_v1_enabled`: Data type: `Boolean` Description: Allow clients to use the V1 API to interact with this repository. Default value: `false` `docker_force_basic_auth`: Data type: `Boolean` Description: Allow anonymous docker pull (Docker Bearer Token Realm required). Default value: `true` `docker_http_port`: Data type: `Optional[Stdlib::Port]` Description: Create an HTTP connector at specified port. Normally used if the server is behind a secure proxy. Default value: `undef` `docker_https_port`: Data type: `Optional[Stdlib::Port]` Description: Create an HTTPS connector at specified port. Normally used if the server is configured for https. Default value: `undef` `docker_subdomain`: Data type: `Optional[Stdlib::Fqdn]` Description: Use the following subdomain to make push and pull requests for this repository. Default value: `undef` `docker_proxy_index_type`: Data type: `Enum['REGISTRY','HUB','CUSTOM']` Description: Docker index type. See https://help.sonatype.com/repomanager3/nexus-repository-administration/formats/docker-registry/proxy-repository-for-docker#ProxyRepositoryforDocker-ConfiguringaCorrectRemoteStorageandDockerIndexURLPair Default value: `'HUB'` `docker_proxy_index_url`: Data type: `Optional[Stdlib::HTTPSUrl]` Description: If docker_proxy_index_type is CUSTOM you have to set the uri of the index api. Default value: `undef` `docker_proxy_cache_foreign_layers`: Data type: `Boolean` Description: Allow Nexus Repository Manager to download and cache foreign layers. Default value: `false` `docker_proxy_foreign_layer_url_whitelist`: Data type: `Array[String[1]]` Description: Regular expressions used to identify URLs that are allowed for foreign layer requests. Default value: `[]` `cleanup_policy_names`: Data type: `Array[String[1]]` Description: Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. Default value: `[]` ``` -------------------------------- ### Nexus Admin First Name Parameter Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Sets the first name for the Nexus Repository Manager administrator. This is a required string parameter. ```APIDOC Parameter: first_name Data type: String[1] Description: The first name of the administrator. Default value: 'Administrator' ``` -------------------------------- ### Puppet Nexus Raw Hosted Repository Resource Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines parameters for managing a raw hosted repository within Nexus using Puppet. This resource type allows the creation and management of hosted repositories for raw file storage. ```APIDOC nexus::resource::repository::raw::hosted Resource to manage raw hosted repository. Example: ```puppet nexus::resource::repository::raw::hosted { 'raw-hosted': } ``` ``` -------------------------------- ### Nexus Admin Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Manages the Nexus Repository Manager administrator account settings. Allows configuration of username, first name, last name, email, roles, and password. If the password is not provided, a random one is generated. ```puppet class nexus::config::admin { # Parameters: # username: The username of the administrator. # first_name: The first name of the administrator. # last_name: The last name of the administrator. # email_address: The email address of the administrator. # roles: The assigned roles of the administrator (e.g., 'nx-admin'). # password: The password of the administrator. # Example Usage: # include nexus::config::admin # nexus::config::admin { # username => 'myadmin', # password => Sensitive('SuperSecretPassword123'), # } } ``` -------------------------------- ### Nexus PostgreSQL JDBC URL Parameter Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines the PostgreSQL JDBC URL for Sonatype Nexus Repository Pro. The URL must be formatted as jdbc:postgresql://:/nexus. This parameter is Pro-only. ```APIDOC Parameter: postgresql_jdbcurl Data type: Optional[String[1]] Description: Postgresql jdbcUrl. Formatted as jdbc\:postgresql\://\:/nexus. Only available in Sonatype Nexus Repository Pro. Default value: undef ``` -------------------------------- ### Nexus Setting Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Configures general settings for Nexus Repository Manager through its REST API. This resource type allows management of various configuration endpoints. ```APIDOC nexus_setting Sets settings over the nexus repository manager rest api. Properties: attributes (Hash): The config settings returned from the given api endpoint. ensure (Enum[present, absent]): Whether this resource should be present or absent on the target system. Defaults to 'present'. Parameters: name (String): The api endpoint of simple nexus config settings. (namevar) ``` -------------------------------- ### Nexus Repository Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Manages Nexus repository configurations via the REST API. Allows defining repository format, type (group, hosted, proxy), and associated attributes. ```APIDOC nexus_repository Configures repository over the nexus repository manager rest api. Properties: attributes (Hash): The config settings of this repository definition. ensure (Enum[present, absent]): Whether this resource should be present or absent on the target system. Defaults to 'present'. format (String): The format of the resource you want to manage. type (Enum[group, hosted, proxy]): Repository type. Parameters: name (String): The name of the resource you want to manage. (namevar) ``` -------------------------------- ### Nexus Email Configuration Parameters Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines configuration parameters for email notifications within the Nexus module. These include SMTP server credentials, sender address, subject prefix, and TLS/SSL settings. ```APIDOC nexus::config::email::username: Data type: String Description: The username to connect to the smtp server. Default value: '' nexus::config::email::password: Data type: Optional[String[1]] Description: The password to connect to the smtp server. Default value: undef nexus::config::email::from_address: Data type: String[1] Description: The email address used to set as From-Header. Default value: 'nexus@example.org' nexus::config::email::subject_prefix: Data type: Optional[String[1]] Description: Prefix which will be added to all emails. Default value: undef nexus::config::email::start_tls_enabled: Data type: Boolean Description: Enable STARTTLS support for insecure connections. Default value: false nexus::config::email::start_tls_required: Data type: Boolean Description: Require STARTTLS support. Default value: false nexus::config::email::ssl_on_connect_enabled: Data type: Boolean Description: Enable SSL/TLS encryption upon connection. Default value: false nexus::config::email::ssl_server_identity_check_enabled: Data type: Boolean Description: Enable server identity check. Default value: false nexus::config::email::nexus_trust_store_enabled: Data type: Boolean Description: Use certificates stored in the Nexus truststore to connect to external systems. Default value: false ``` -------------------------------- ### Nexus Role Configuration Schema Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Defines a Nexus role with its ID, description, privileges, and associated roles. This schema outlines the parameters for creating and managing custom roles in Nexus. ```APIDOC nexus_role Manages Nexus roles. Properties: description (Optional[String]): The description of the role. ensure (Enum[present, absent]): Whether this resource should be present or absent on the target system. Defaults to 'present'. name (Optional[String]): The name of the role which will be the same like id. privileges (Optional[Array[String]]): The privileges the role should have. read_only (Optional[Boolean]): Define as read only. roles (Optional[Array[String]]): Other roles the new role should have. source (Optional[String]): The source of the role. Like local or LDAP. Parameters: id (String): The id of the role. (namevar) ``` -------------------------------- ### Nexus Device Configuration Source: https://github.com/puppets-epic-show-theatre/puppet-nexus/blob/master/REFERENCE.md Creates Puppet device configuration used to connect to the Nexus Repository Manager's REST API. This class is typically used for managing Nexus as a device within Puppet. ```puppet class nexus::config::device { # This class is used to set up device configurations for Nexus API connectivity. # Specific parameters for API connection details would be managed within this class or its resources. # Example Usage: # include nexus::config::device } ```