diff --git a/REFERENCE.md b/REFERENCE.md index b2722eb..339557b 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -35,6 +35,9 @@ * [`nexus::resource::repository::npm::group`](#nexus--resource--repository--npm--group): Resource to manage npm group repository * [`nexus::resource::repository::npm::hosted`](#nexus--resource--repository--npm--hosted): Resource to manage npm hosted repository * [`nexus::resource::repository::npm::proxy`](#nexus--resource--repository--npm--proxy): Resource to manage npm proxy repository +* [`nexus::resource::repository::pypi::proxy`](#nexus--resource--repository--pypi--proxy): Resource to manage PyPi proxy repository +* [`nexus::resource::repository::raw::hosted`](#nexus--resource--repository--raw--hosted): Resource to manage raw hosted repository +* [`nexus::resource::repository::rubygems::proxy`](#nexus--resource--repository--rubygems--proxy): Resource to manage RubyGems proxy repository * [`nexus::resource::repository::yum::hosted`](#nexus--resource--repository--yum--hosted): Resource to manage yum hosted repository * [`nexus::resource::repository::yum::proxy`](#nexus--resource--repository--yum--proxy): Resource to manage yum proxy repository @@ -42,9 +45,9 @@ * [`nexus_blobstore`](#nexus_blobstore): Raw provider to configure blobstore over the nexus repository manager rest api. Please use the defined types instead of this one directly. * [`nexus_repository`](#nexus_repository): Raw provider to configure repository over the nexus repository manager rest api. Please use the defined types instead of this one directly. +* [`nexus_role`](#nexus_role): Manage nexus repository roles * [`nexus_setting`](#nexus_setting): Raw provider to set settings over the nexus repository manager rest api. Please use nexus::config::* classes instead of this one directly. * [`nexus_user`](#nexus_user): Manage nexus repository users -* [`nexus_role`](#nexus_role): Manage nexus repository roles ## Classes @@ -69,10 +72,8 @@ class{ 'nexus': The following parameters are available in the `nexus` class: -* [`version`](#-nexus--version) * [`download_folder`](#-nexus--download_folder) * [`download_site`](#-nexus--download_site) -* [`download_proxy`](#-nexus--download_proxy) * [`install_root`](#-nexus--install_root) * [`work_dir`](#-nexus--work_dir) * [`user`](#-nexus--user) @@ -85,12 +86,12 @@ The following parameters are available in the `nexus` class: * [`manage_work_dir`](#-nexus--manage_work_dir) * [`purge_installations`](#-nexus--purge_installations) * [`purge_default_repositories`](#-nexus--purge_default_repositories) - -##### `version` - -Data type: `Pattern[/3.\d+.\d+-\d+/]` - -The version to download, install and manage. +* [`package_type`](#-nexus--package_type) +* [`package_ensure`](#-nexus--package_ensure) +* [`download_proxy`](#-nexus--download_proxy) +* [`version`](#-nexus--version) +* [`java_runtime`](#-nexus--java_runtime) +* [`package_name`](#-nexus--package_name) ##### `download_folder` @@ -104,12 +105,6 @@ Data type: `Stdlib::HTTPUrl` Download uri which will be appended with filename of the archive to download. -##### `download_proxy` - -Data type: `Optional[Stdlib::HTTPUrl]` - -Proxyserver address which will be used to download the archive file. - ##### `install_root` Data type: `Stdlib::Absolutepath` @@ -182,6 +177,51 @@ Data type: `Boolean` Set this option if you want to remove the default created maven and nuget repositories. +##### `package_type` + +Data type: `Enum['src', 'pkg']` + +Select 'src' for Source download & install. 'pkg' will fetch te specified package and version +from repos you must provide. + +##### `package_ensure` + +Data type: `String` + +The version to install. See https://puppet.com/docs/puppet/7/types/package.html#package-attribute-ensure + +##### `download_proxy` + +Data type: `Optional[Stdlib::HTTPUrl]` + +Proxyserver address which will be used to download the archive file. + +Default value: `undef` + +##### `version` + +Data type: `Optional[Pattern[/3.\d+.\d+-\d+/]]` + +The version to download, install and manage. + +Default value: `undef` + +##### `java_runtime` + +Data type: `Optional[Enum['java8', 'java11']]` + +The Java runtime to be utilized. Relevant only for Nexus versions >= 3.67.0-03. + +Default value: `undef` + +##### `package_name` + +Data type: `Optional[String]` + +The name of the package to install. Default 'nexus' + +Default value: `undef` + ### `nexus::config::admin` Manage the nexus repository manager administrator account @@ -376,7 +416,7 @@ Default value: `''` ##### `password` -Data type: `Optional[String]` +Data type: `Optional[String[1]]` The password to connect to the smtp server. @@ -392,11 +432,11 @@ Default value: `'nexus@example.org'` ##### `subject_prefix` -Data type: `String` +Data type: `Optional[String[1]]` Prefix which will be added to all emails. -Default value: `''` +Default value: `undef` ##### `start_tls_enabled` @@ -550,6 +590,7 @@ The following parameters are available in the `nexus::resource::repository::apt: * [`storage_blob_store_name`](#-nexus--resource--repository--apt--proxy--storage_blob_store_name) * [`storage_strict_content_type_validation`](#-nexus--resource--repository--apt--proxy--storage_strict_content_type_validation) * [`storage_write_policy`](#-nexus--resource--repository--apt--proxy--storage_write_policy) +* [`cleanup_policy_names`](#-nexus--resource--repository--apt--proxy--cleanup_policy_names) ##### `apt_distribution` @@ -660,6 +701,14 @@ 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::resource::repository::docker::group` Resource to manage docker group repository @@ -690,6 +739,7 @@ The following parameters are available in the `nexus::resource::repository::dock * [`docker_force_basic_auth`](#-nexus--resource--repository--docker--group--docker_force_basic_auth) * [`docker_http_port`](#-nexus--resource--repository--docker--group--docker_http_port) * [`docker_https_port`](#-nexus--resource--repository--docker--group--docker_https_port) +* [`docker_subdomain`](#-nexus--resource--repository--docker--group--docker_subdomain) ##### `ensure` @@ -764,6 +814,14 @@ Create an HTTPS connector at specified port. Normally used if the server is conf Default value: `undef` +##### `docker_subdomain` + +Data type: `Optional[Stdlib::Fqdn]` + +Use the following subdomain to make push and pull requests for this repository. + +Default value: `undef` + ### `nexus::resource::repository::docker::hosted` Resource to manage docker hosted repository @@ -791,6 +849,8 @@ The following parameters are available in the `nexus::resource::repository::dock * [`docker_force_basic_auth`](#-nexus--resource--repository--docker--hosted--docker_force_basic_auth) * [`docker_http_port`](#-nexus--resource--repository--docker--hosted--docker_http_port) * [`docker_https_port`](#-nexus--resource--repository--docker--hosted--docker_https_port) +* [`docker_subdomain`](#-nexus--resource--repository--docker--hosted--docker_subdomain) +* [`cleanup_policy_names`](#-nexus--resource--repository--docker--hosted--cleanup_policy_names) ##### `ensure` @@ -873,6 +933,22 @@ Create an HTTPS connector at specified port. Normally used if the server is conf Default value: `undef` +##### `docker_subdomain` + +Data type: `Optional[Stdlib::Fqdn]` + +Use the following subdomain to make push and pull requests for this repository. + +Default value: `undef` + +##### `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::resource::repository::docker::proxy` Resource to manage docker proxy repository @@ -882,7 +958,7 @@ Resource to manage docker proxy repository ##### ```puppet -nexus::repository::docker::proxy { 'docker-docker.io': +nexus::resource::repository::docker::proxy { 'docker-docker.io': proxy_remote_url => 'https://registry-1.docker.io', } ``` @@ -895,6 +971,7 @@ The following parameters are available in the `nexus::resource::repository::dock * [`ensure`](#-nexus--resource--repository--docker--proxy--ensure) * [`http_client_auto_block`](#-nexus--resource--repository--docker--proxy--http_client_auto_block) * [`http_client_blocked`](#-nexus--resource--repository--docker--proxy--http_client_blocked) +* [`authentication`](#-nexus--resource--repository--docker--proxy--authentication) * [`negative_cache_enabled`](#-nexus--resource--repository--docker--proxy--negative_cache_enabled) * [`negative_cache_time_to_live`](#-nexus--resource--repository--docker--proxy--negative_cache_time_to_live) * [`online`](#-nexus--resource--repository--docker--proxy--online) @@ -912,6 +989,7 @@ The following parameters are available in the `nexus::resource::repository::dock * [`docker_proxy_index_url`](#-nexus--resource--repository--docker--proxy--docker_proxy_index_url) * [`docker_proxy_cache_foreign_layers`](#-nexus--resource--repository--docker--proxy--docker_proxy_cache_foreign_layers) * [`docker_proxy_foreign_layer_url_whitelist`](#-nexus--resource--repository--docker--proxy--docker_proxy_foreign_layer_url_whitelist) +* [`cleanup_policy_names`](#-nexus--resource--repository--docker--proxy--cleanup_policy_names) ##### `proxy_remote_url` @@ -943,6 +1021,24 @@ Block outbound connections on the repository. Default value: `false` +##### `authentication` + +Data type: + +```puppet +Optional[Struct[{ + type => Enum['username', 'ntlm'], + username => String[1], + password => String[1], + Optional[ntlmHost] => Optional[String[1]], + Optional[ntlmDomain] => Optional[String[1]], + }]] +``` + + + +Default value: `undef` + ##### `negative_cache_enabled` Data type: `Boolean` @@ -1080,6 +1176,14 @@ Regular expressions used to identify URLs that are allowed for foreign layer req Default value: `[]` +##### `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::resource::repository::npm::group` Resource to manage npm group repository @@ -1157,7 +1261,7 @@ Resource to manage npm hosted repository ##### ```puppet -nexus::repository::npm::hosted { 'npm-hosted': } +nexus::resource::repository::npm::hosted { 'npm-hosted': } ``` #### Parameters @@ -1170,6 +1274,7 @@ The following parameters are available in the `nexus::resource::repository::npm: * [`storage_strict_content_type_validation`](#-nexus--resource--repository--npm--hosted--storage_strict_content_type_validation) * [`storage_write_policy`](#-nexus--resource--repository--npm--hosted--storage_write_policy) * [`component_proprietary_components`](#-nexus--resource--repository--npm--hosted--component_proprietary_components) +* [`cleanup_policy_names`](#-nexus--resource--repository--npm--hosted--cleanup_policy_names) ##### `ensure` @@ -1206,7 +1311,7 @@ Default value: `true` ##### `storage_write_policy` -Data type: `Enum['allow_once']` +Data type: `Enum['allow', 'allow_once', 'deny']` Controls if deployments of and updates to artifacts are allowed. @@ -1220,6 +1325,14 @@ Components in this repository count as proprietary for namespace conflict attack Default value: `true` +##### `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::resource::repository::npm::proxy` Resource to manage npm proxy repository @@ -1252,6 +1365,7 @@ The following parameters are available in the `nexus::resource::repository::npm: * [`storage_blob_store_name`](#-nexus--resource--repository--npm--proxy--storage_blob_store_name) * [`storage_strict_content_type_validation`](#-nexus--resource--repository--npm--proxy--storage_strict_content_type_validation) * [`storage_write_policy`](#-nexus--resource--repository--npm--proxy--storage_write_policy) +* [`cleanup_policy_names`](#-nexus--resource--repository--npm--proxy--cleanup_policy_names) ##### `proxy_remote_url` @@ -1364,34 +1478,54 @@ Controls if deployments of and updates to artifacts are allowed. Default value: `'ALLOW'` -### `nexus::resource::repository::yum::hosted` +##### `cleanup_policy_names` -Resource to manage yum hosted repository +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::resource::repository::pypi::proxy` + +Resource to manage PyPi proxy repository #### Examples ##### ```puppet -nexus::resource::repository::yum::hosted { 'yum-hosted': - repodata_depth => 5, +nexus::resource::repository::pypi::proxy { 'pypi.org': + proxy_remote_url => 'https://pypi.org', } ``` #### Parameters -The following parameters are available in the `nexus::resource::repository::yum::hosted` defined type: +The following parameters are available in the `nexus::resource::repository::pypi::proxy` defined type: + +* [`proxy_remote_url`](#-nexus--resource--repository--pypi--proxy--proxy_remote_url) +* [`ensure`](#-nexus--resource--repository--pypi--proxy--ensure) +* [`http_client_auto_block`](#-nexus--resource--repository--pypi--proxy--http_client_auto_block) +* [`http_client_blocked`](#-nexus--resource--repository--pypi--proxy--http_client_blocked) +* [`negative_cache_enabled`](#-nexus--resource--repository--pypi--proxy--negative_cache_enabled) +* [`negative_cache_time_to_live`](#-nexus--resource--repository--pypi--proxy--negative_cache_time_to_live) +* [`online`](#-nexus--resource--repository--pypi--proxy--online) +* [`proxy_content_max_age`](#-nexus--resource--repository--pypi--proxy--proxy_content_max_age) +* [`proxy_metadata_max_age`](#-nexus--resource--repository--pypi--proxy--proxy_metadata_max_age) +* [`storage_blob_store_name`](#-nexus--resource--repository--pypi--proxy--storage_blob_store_name) +* [`storage_strict_content_type_validation`](#-nexus--resource--repository--pypi--proxy--storage_strict_content_type_validation) +* [`storage_write_policy`](#-nexus--resource--repository--pypi--proxy--storage_write_policy) +* [`remove_quarantined`](#-nexus--resource--repository--pypi--proxy--remove_quarantined) +* [`cleanup_policy_names`](#-nexus--resource--repository--pypi--proxy--cleanup_policy_names) + +##### `proxy_remote_url` -* [`ensure`](#-nexus--resource--repository--yum--hosted--ensure) -* [`online`](#-nexus--resource--repository--yum--hosted--online) -* [`storage_blob_store_name`](#-nexus--resource--repository--yum--hosted--storage_blob_store_name) -* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--hosted--storage_strict_content_type_validation) -* [`storage_write_policy`](#-nexus--resource--repository--yum--hosted--storage_write_policy) -* [`component_proprietary_components`](#-nexus--resource--repository--yum--hosted--component_proprietary_components) -* [`repodata_depth`](#-nexus--resource--repository--yum--hosted--repodata_depth) -* [`deploy_policy`](#-nexus--resource--repository--yum--hosted--deploy_policy) +Data type: `Stdlib::HTTPSUrl` -##### `ensure` +PyPi repository url like https://pypi.org. + +##### `ensure` Data type: `Enum['present', 'absent']` @@ -1399,15 +1533,63 @@ Define if the resource should be created/present or deleted/absent. Default value: `'present'` -##### `online` +##### `http_client_auto_block` Data type: `Boolean` -Allow incoming requests to this repository. +Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. Default value: `true` -##### `storage_blob_store_name` +##### `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]` @@ -1416,7 +1598,7 @@ defined repository. Default value: `$title` -##### `storage_strict_content_type_validation` +##### `storage_strict_content_type_validation` Data type: `Boolean` @@ -1424,76 +1606,56 @@ Validate that all content uploaded to this repository is of a MIME type appropri Default value: `true` -##### `storage_write_policy` +##### `storage_write_policy` Data type: `Enum['ALLOW','ALLOW_ONCE','DENY']` Controls if deployments of and updates to artifacts are allowed. -Default value: `'ALLOW_ONCE'` +Default value: `'ALLOW'` -##### `component_proprietary_components` +##### `remove_quarantined` Data type: `Boolean` -Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall). - -Default value: `true` - -##### `repodata_depth` - -Data type: `Integer` - -Set the depth of the directory in which the repodata/repomd.xml will be generated. +Remove Quarantined Versions. -Default value: `0` +Default value: `false` -##### `deploy_policy` +##### `cleanup_policy_names` -Data type: `Enum['STRICT','PERMISSIVE']` +Data type: `Array[String[1]]` -Set the deploy policy, whether or not a redeploy of rpm's is allowed. +Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. -Default value: `'STRICT'` +Default value: `[]` -### `nexus::resource::repository::yum::proxy` +### `nexus::resource::repository::raw::hosted` -Resource to manage yum proxy repository +Resource to manage raw hosted repository #### Examples ##### ```puppet -nexus::resource::repository::yum::proxy { 'yum-oracle-latest': - proxy_remote_url => 'https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/', -} +nexus::resource::repository::raw::hosted { 'raw-hosted': } ``` #### Parameters -The following parameters are available in the `nexus::resource::repository::yum::proxy` defined type: - -* [`proxy_remote_url`](#-nexus--resource--repository--yum--proxy--proxy_remote_url) -* [`ensure`](#-nexus--resource--repository--yum--proxy--ensure) -* [`http_client_auto_block`](#-nexus--resource--repository--yum--proxy--http_client_auto_block) -* [`http_client_blocked`](#-nexus--resource--repository--yum--proxy--http_client_blocked) -* [`negative_cache_enabled`](#-nexus--resource--repository--yum--proxy--negative_cache_enabled) -* [`negative_cache_time_to_live`](#-nexus--resource--repository--yum--proxy--negative_cache_time_to_live) -* [`online`](#-nexus--resource--repository--yum--proxy--online) -* [`proxy_content_max_age`](#-nexus--resource--repository--yum--proxy--proxy_content_max_age) -* [`proxy_metadata_max_age`](#-nexus--resource--repository--yum--proxy--proxy_metadata_max_age) -* [`storage_blob_store_name`](#-nexus--resource--repository--yum--proxy--storage_blob_store_name) -* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--proxy--storage_strict_content_type_validation) -* [`storage_write_policy`](#-nexus--resource--repository--yum--proxy--storage_write_policy) - -##### `proxy_remote_url` - -Data type: `Stdlib::HTTPSUrl` +The following parameters are available in the `nexus::resource::repository::raw::hosted` defined type: -yum repository url like https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/. +* [`ensure`](#-nexus--resource--repository--raw--hosted--ensure) +* [`online`](#-nexus--resource--repository--raw--hosted--online) +* [`storage_blob_store_name`](#-nexus--resource--repository--raw--hosted--storage_blob_store_name) +* [`storage_strict_content_type_validation`](#-nexus--resource--repository--raw--hosted--storage_strict_content_type_validation) +* [`storage_write_policy`](#-nexus--resource--repository--raw--hosted--storage_write_policy) +* [`component_proprietary_components`](#-nexus--resource--repository--raw--hosted--component_proprietary_components) +* [`content_disposition`](#-nexus--resource--repository--raw--hosted--content_disposition) +* [`cleanup_policy_names`](#-nexus--resource--repository--raw--hosted--cleanup_policy_names) -##### `ensure` +##### `ensure` Data type: `Enum['present', 'absent']` @@ -1501,74 +1663,413 @@ Define if the resource should be created/present or deleted/absent. Default value: `'present'` -##### `http_client_auto_block` +##### `online` Data type: `Boolean` -Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive. +Whether this repository accepts incoming requests. Default value: `true` -##### `http_client_blocked` +##### `storage_blob_store_name` -Data type: `Boolean` +Data type: `String[1]` -Block outbound connections on the repository. +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: `false` +Default value: `$title` -##### `negative_cache_enabled` +##### `storage_strict_content_type_validation` Data type: `Boolean` -Cache responses for content not present in the proxied repository. +Whether to validate uploaded content's MIME type appropriate for the repository format. Default value: `true` -##### `negative_cache_time_to_live` +##### `storage_write_policy` -Data type: `Integer` +Data type: `Enum['allow', 'allow_once', 'deny']` -How long to cache the fact that a file was not found in the repository (in minutes). +Controls if deployments of and updates to assets are allowed. -Default value: `1440` +Default value: `'allow_once'` -##### `online` +##### `component_proprietary_components` Data type: `Boolean` -Enable this repository in nexus repository manager that it can be used. +Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall). Default value: `true` -##### `proxy_content_max_age` - -Data type: `Integer` +##### `content_disposition` -Max age of content (packages) +Data type: `Enum['INLINE', 'ATTACHMENT']` -Default value: `1440` +Content Disposition -##### `proxy_metadata_max_age` +Default value: `'ATTACHMENT'` -Data type: `Integer` +##### `cleanup_policy_names` -Max age of the repository metadata +Data type: `Array[String[1]]` -Default value: `1440` +Apply a list of cleanup policies to the repository. If a cleanup policy doesn't exist, nothing happens. -##### `storage_blob_store_name` +Default value: `[]` -Data type: `String[1]` +### `nexus::resource::repository::rubygems::proxy` -The name of the blobstore inside of nexus repository manager to be used. We suggest to use a own blobstore for each -defined repository. +Resource to manage RubyGems proxy repository -Default value: `$title` +#### Examples -##### `storage_strict_content_type_validation` +##### -Data type: `Boolean` +```puppet +nexus::resource::repository::rubygems::proxy { 'rubygems.org': + proxy_remote_url => 'https://rubygems.org/', +} +``` + +#### Parameters + +The following parameters are available in the `nexus::resource::repository::rubygems::proxy` defined type: + +* [`proxy_remote_url`](#-nexus--resource--repository--rubygems--proxy--proxy_remote_url) +* [`ensure`](#-nexus--resource--repository--rubygems--proxy--ensure) +* [`http_client_auto_block`](#-nexus--resource--repository--rubygems--proxy--http_client_auto_block) +* [`http_client_blocked`](#-nexus--resource--repository--rubygems--proxy--http_client_blocked) +* [`negative_cache_enabled`](#-nexus--resource--repository--rubygems--proxy--negative_cache_enabled) +* [`negative_cache_time_to_live`](#-nexus--resource--repository--rubygems--proxy--negative_cache_time_to_live) +* [`online`](#-nexus--resource--repository--rubygems--proxy--online) +* [`proxy_content_max_age`](#-nexus--resource--repository--rubygems--proxy--proxy_content_max_age) +* [`proxy_metadata_max_age`](#-nexus--resource--repository--rubygems--proxy--proxy_metadata_max_age) +* [`storage_blob_store_name`](#-nexus--resource--repository--rubygems--proxy--storage_blob_store_name) +* [`storage_strict_content_type_validation`](#-nexus--resource--repository--rubygems--proxy--storage_strict_content_type_validation) +* [`storage_write_policy`](#-nexus--resource--repository--rubygems--proxy--storage_write_policy) +* [`cleanup_policy_names`](#-nexus--resource--repository--rubygems--proxy--cleanup_policy_names) + +##### `proxy_remote_url` + +Data type: `Stdlib::HTTPSUrl` + +RubyGems repository url like https://rubygems.org/. + +##### `ensure` + +Data type: `Enum['present', 'absent']` + +Define if the resource should be created/present or deleted/absent. + +Default value: `'present'` + +##### `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::resource::repository::yum::hosted` + +Resource to manage yum hosted repository + +#### Examples + +##### + +```puppet +nexus::resource::repository::yum::hosted { 'yum-hosted': + repodata_depth => 5, +} +``` + +#### Parameters + +The following parameters are available in the `nexus::resource::repository::yum::hosted` defined type: + +* [`ensure`](#-nexus--resource--repository--yum--hosted--ensure) +* [`online`](#-nexus--resource--repository--yum--hosted--online) +* [`storage_blob_store_name`](#-nexus--resource--repository--yum--hosted--storage_blob_store_name) +* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--hosted--storage_strict_content_type_validation) +* [`storage_write_policy`](#-nexus--resource--repository--yum--hosted--storage_write_policy) +* [`component_proprietary_components`](#-nexus--resource--repository--yum--hosted--component_proprietary_components) +* [`repodata_depth`](#-nexus--resource--repository--yum--hosted--repodata_depth) +* [`deploy_policy`](#-nexus--resource--repository--yum--hosted--deploy_policy) +* [`cleanup_policy_names`](#-nexus--resource--repository--yum--hosted--cleanup_policy_names) + +##### `ensure` + +Data type: `Enum['present', 'absent']` + +Define if the resource should be created/present or deleted/absent. + +Default value: `'present'` + +##### `online` + +Data type: `Boolean` + +Allow incoming requests to this repository. + +Default value: `true` + +##### `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_ONCE'` + +##### `component_proprietary_components` + +Data type: `Boolean` + +Components in this repository count as proprietary for namespace conflict attacks (requires Sonatype Nexus Firewall). + +Default value: `true` + +##### `repodata_depth` + +Data type: `Integer[0, 5]` + +Set the depth of the directory in which the repodata/repomd.xml will be generated. + +Default value: `0` + +##### `deploy_policy` + +Data type: `Enum['STRICT','PERMISSIVE']` + +Set the deploy policy, whether or not a redeploy of rpm's is allowed. + +Default value: `'STRICT'` + +##### `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::resource::repository::yum::proxy` + +Resource to manage yum proxy repository + +#### Examples + +##### + +```puppet +nexus::resource::repository::yum::proxy { 'yum-oracle-latest': + proxy_remote_url => 'https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/', +} +``` + +#### Parameters + +The following parameters are available in the `nexus::resource::repository::yum::proxy` defined type: + +* [`proxy_remote_url`](#-nexus--resource--repository--yum--proxy--proxy_remote_url) +* [`ensure`](#-nexus--resource--repository--yum--proxy--ensure) +* [`http_client_auto_block`](#-nexus--resource--repository--yum--proxy--http_client_auto_block) +* [`http_client_blocked`](#-nexus--resource--repository--yum--proxy--http_client_blocked) +* [`negative_cache_enabled`](#-nexus--resource--repository--yum--proxy--negative_cache_enabled) +* [`negative_cache_time_to_live`](#-nexus--resource--repository--yum--proxy--negative_cache_time_to_live) +* [`online`](#-nexus--resource--repository--yum--proxy--online) +* [`proxy_content_max_age`](#-nexus--resource--repository--yum--proxy--proxy_content_max_age) +* [`proxy_metadata_max_age`](#-nexus--resource--repository--yum--proxy--proxy_metadata_max_age) +* [`storage_blob_store_name`](#-nexus--resource--repository--yum--proxy--storage_blob_store_name) +* [`storage_strict_content_type_validation`](#-nexus--resource--repository--yum--proxy--storage_strict_content_type_validation) +* [`storage_write_policy`](#-nexus--resource--repository--yum--proxy--storage_write_policy) +* [`cleanup_policy_names`](#-nexus--resource--repository--yum--proxy--cleanup_policy_names) + +##### `proxy_remote_url` + +Data type: `Stdlib::HTTPSUrl` + +yum repository url like https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/. + +##### `ensure` + +Data type: `Enum['present', 'absent']` + +Define if the resource should be created/present or deleted/absent. + +Default value: `'present'` + +##### `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. @@ -1582,6 +2083,14 @@ 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: `[]` + ## Resource types ### `nexus_blobstore` @@ -1678,6 +2187,80 @@ Data type: `String` The name of the resource you want to manage. +### `nexus_role` + +```puppet +nexus_role { 'rolename': + ensure => 'present', + id => 'reader', + description => 'read access to raw repository', + privileges => ['nx-repository-view-raw-*-read'], + roles => '', +} +``` + +#### Properties + +The following properties are available in the `nexus_role` type. + +##### `description` + +Data type: `Optional[String]` + +The description of the role. + +##### `ensure` + +Data type: `Enum[present, absent]` + +Whether this resource should be present or absent on the target system. + +Default value: `present` + +##### `name` + +Data type: `Optional[String]` + +The name of the role which will be the same like id. + +##### `privileges` + +Data type: `Optional[Array[String]]` + +The privileges the role should have + +##### `read_only` + +Data type: `Optional[Boolean]` + +Define as read only. + +##### `roles` + +Data type: `Optional[Array[String]]` + +Other roles the new role should have + +##### `source` + +Data type: `Optional[String]` + +The source of the role. Like local or LDAP + +#### Parameters + +The following parameters are available in the `nexus_role` type. + +* [`id`](#-nexus_role--id) + +##### `id` + +namevar + +Data type: `String` + +The id of the role + ### `nexus_setting` Raw provider to set settings over the nexus repository manager rest api. @@ -1817,99 +2400,3 @@ Data type: `String` The login name of the user. -### `nexus_role` - -```puppet -nexus_role { 'rolename': - ensure => 'present', - id => 'reader', - description => 'read acdess to raw repository', - privileges => ['nx-repository-view-raw-*-read'], - roles => '', -} -``` - -#### Properties - -The following properties are available in the `nexus_role` type. - -##### `ensure` - -Data type: `Enum[present, absent]` - -Whether this resource should be present or absent on the target system. - -Default value: `present` - -##### `id` - -Data type: `String` - -The id of the role. - -##### `source` - -Data type: `Optional[String]` - -The source of the role. - -##### `name` - -Data type: `Optional[String]` - -The name of the role which will be the same like id. - -##### `description` - -Data type: `Optional[String]` - -The description of the role. - -##### `read_only` - -Data type: `Optional[Boolean]` - -Flag if this is a read only role. - -##### `privileges` - -Data type: `Optional[Array[String]]` - -The privileges the role should have. - -##### `roles` - -Data type: `Optional[Array[String]]` - -Other roles the new role should have. - -##### `read_only` - -Data type: `Boolean` - -The status of the user if it is read only. - -##### `roles` - -Data type: `Array[String]` - -The roles assigned to the user. - -Default value: `["nx-anonymous"]` - -##### `source` - -Data type: `String` - -The datasource of the user. e.g. local or ldap source name. - -Default value: `default` - -##### `status` - -Data type: `Enum[active,disabled,changepassword]` - -The user status. - -Default value: `active` - diff --git a/metadata.json b/metadata.json index 4cb08a5..85c3667 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "pest-nexus", - "version": "3.5.0", + "version": "4.0.0", "author": "Puppets Epic Show Theatre", "summary": "Puppet module for Sonatype Nexus Repository Manager 3", "license": "MIT",