Puppet Class: kafka_connect::manage_connectors::secret

Defined in:
manifests/manage_connectors/secret.pp

Summary

Manages individual Kafka Connect connector secrets.

Overview

KC connector secret class.

Parameters:

  • secrets_data (Kafka_connect::Secrets)

    Hash of secret file names and their corresponding data.



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
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
# File 'manifests/manage_connectors/secret.pp', line 10

class kafka_connect::manage_connectors::secret (
  Kafka_connect::Secrets $secrets_data,
) {
  assert_private()

  $secrets_data.each |$secret| {
    $secret_file_name  = $secret[0]
    $secret_ensure     = $secret[1]['ensure']
    $secret_connectors = $secret[1]['connectors']
    $secret_key        = $secret[1]['key']
    $secret_value      = $secret[1]['value']
    $secret_kv_data    = $secret[1]['kv_data']

    if $secret_ensure {
      $secret_file_ensure = $secret_ensure
    } else {
      $secret_file_ensure = 'present'
    }

    if $secret_file_ensure == 'absent' {
      $secret_content = undef
      $secret_notify  = undef
    } elsif !$secret_connectors {
      $secret_notify  = undef
    } else {
      $secret_notify  = Kc_connector[$secret_connectors]
    }

    if $secret_file_ensure =~ /^(present|file)$/ {
      unless (($secret_key and $secret_value) or $secret_kv_data) and !(($secret_key or $secret_value) and $secret_kv_data) {
        fail("Either secret key and value or kv_data is required, unless ensure is set to absent. \
          \n Validation error on ${secret_file_name} data, please correct. \n")
      }

      if $secret_kv_data {
        $secret_data    = join($secret_kv_data.map |$key,$value| { "${key}=${value}" }, "\n")
        $secret_content = Sensitive("${secret_data}\n")
      } else {
        $secret_content = Sensitive("${secret_key}=${secret_value}\n")
      }
    }

    if $kafka_connect::owner {
      $_owner = $kafka_connect::owner
    } else {
      $_owner = $kafka_connect::user
    }

    file { $secret_file_name :
      ensure  => $secret_file_ensure,
      path    => "${kafka_connect::connector_config_dir}/${secret_file_name}",
      content => $secret_content,
      owner   => $_owner,
      group   => $kafka_connect::group,
      mode    => $kafka_connect::connector_secret_file_mode,
      notify  => $secret_notify,
    }
  }
}