Puppet Plan: complyadm::validate::images

Defined in:
plans/validate/images.pp

Overview

Validates that we have the expected images on all targets based on their role

Parameters:

  • config (Complyadm::Config) (defaults to: complyadm::config())

    Complyadm::Config object with all config options

Returns:

  • Hash pass/fail results of check



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'plans/validate/images.pp', line 8

plan complyadm::validate::images (
  Complyadm::Config $config = complyadm::config(),
) {
  $results = $config['roles'].reduce({ passed => [], failed => [] }) |$memo, $roles_hash| {
    $role_name = $roles_hash[0]
    $targets = $roles_hash[1]['targets']
    $services = $roles_hash[1]['services']
    $images_validation_results = $services.reduce($memo) |$memo, $service_hash| {
      $service_name = $service_hash[0]
      $image = $service_hash[1]['container']['image']
      $inspect_result = complyadm::images::inspect($image, $targets, undef, $config['runtime'])
      $failed_targets = $inspect_result.error_set.map() |$result| {
        "${result.target.name} : could not find image for container ${service_name}"
      } + $memo['failed']
      $passed_targets = $inspect_result.ok_set.map() |$result| {
        "${result.target.name} : found image ${service_name}"
      } + $memo['passed']

      (
        $memo + {
          'passed' => $passed_targets,
          'failed' => $failed_targets
        }
      )
    }
    (
      $memo + {
        'passed' => $images_validation_results['passed'],
        'failed' => $images_validation_results['failed']
      }
    )
  }
  return $results
}