Defined Type: nexus::resource::repository::apt::proxy

Defined in:
manifests/resource/repository/apt/proxy.pp

Summary

Resource to manage apt proxy repository

Overview

Examples:

nexus::repository::apt::proxy { 'apt-debian':
   apt_distribution => $facts['os']['distro']['codename'],
   proxy_remote_url => 'https://deb.debian.org/debian/',
}

Parameters:

  • apt_distribution (String[1])

    APT distribution like buster, bullseye used by nexus repository manager to query the upstream repository.

  • proxy_remote_url (Stdlib::HTTPSUrl)

    APT repository url like deb.debian.org/debian/.

  • apt_flat (Boolean) (defaults to: false)

    Is the upstream repository flat format?

  • ensure (Enum['present', 'absent']) (defaults to: 'present')

    Define if the resource should be created/present or deleted/absent.

  • http_client_auto_block (Boolean) (defaults to: true)

    Auto-block outbound connections on the repository if remote peer is detected as unreachable/unresponsive.

  • http_client_blocked (Boolean) (defaults to: false)

    Block outbound connections on the repository.

  • negative_cache_enabled (Boolean) (defaults to: true)

    Cache responses for content not present in the proxied repository.

  • negative_cache_time_to_live (Integer) (defaults to: 1440)

    How long to cache the fact that a file was not found in the repository (in minutes).

  • online (Boolean) (defaults to: true)

    Enable this repository in nexus repository manager that it can be used.

  • proxy_content_max_age (Integer) (defaults to: 1440)

    Max age of content (packages)

  • proxy_metadata_max_age (Integer) (defaults to: 1440)

    Max age of the repository metadata

  • storage_blob_store_name (String[1]) (defaults to: $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) (defaults to: true)

    Validate that all content uploaded to this repository is of a MIME type appropriate for the repository format.

  • storage_write_policy (Enum['ALLOW']) (defaults to: 'ALLOW')

    Controls if deployments of and updates to artifacts are allowed.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'manifests/resource/repository/apt/proxy.pp', line 39

define nexus::resource::repository::apt::proxy (
  String[1] $apt_distribution,
  Stdlib::HTTPSUrl $proxy_remote_url,
  Boolean $apt_flat = false,
  Enum['present', 'absent'] $ensure = 'present',
  Boolean $http_client_auto_block = true,
  Boolean $http_client_blocked = false,
  Boolean $negative_cache_enabled = true,
  Integer $negative_cache_time_to_live = 1440,
  Boolean $online = true,
  Integer $proxy_content_max_age = 1440,
  Integer $proxy_metadata_max_age = 1440,
  String[1] $storage_blob_store_name = $title,
  Boolean $storage_strict_content_type_validation = true,
  Enum['ALLOW'] $storage_write_policy = 'ALLOW',
) {
  nexus_repository { $title:
    ensure     => $ensure,
    format     => 'apt',
    type       => 'proxy',
    attributes => {
      'online'          => $online,
      'storage'         => {
        'blobStoreName'               => $storage_blob_store_name,
        'strictContentTypeValidation' => $storage_strict_content_type_validation,
        'writePolicy'                 => $storage_write_policy
      },
      'cleanup'         => undef,
      'apt'             => {
        'distribution' => $apt_distribution,
        'flat'         => $apt_flat
      },
      'proxy'           => {
        'remoteUrl'      => $proxy_remote_url,
        'contentMaxAge'  => $proxy_content_max_age,
        'metadataMaxAge' => $proxy_metadata_max_age,
      },
      'negativeCache'   => {
        'enabled'    => $negative_cache_enabled,
        'timeToLive' => $negative_cache_time_to_live
      },
      'httpClient'      => {
        'blocked'        => $http_client_blocked,
        'autoBlock'      => $http_client_auto_block,
        'connection'     => {
          'retries'                 => undef,
          'userAgentSuffix'         => undef,
          'timeout'                 => undef,
          'enableCircularRedirects' => false,
          'enableCookies'           => false,
          'useTrustStore'           => false
        },
        'authentication' => undef
      },
      'routingRuleName' => undef
    },
  }
}