Class: TerraformConfig::Secret

Inherits:
Base
  • Object
show all
Defined in:
lib/core/terraform_config/secret.rb

Overview

rubocop:disable Metrics/ClassLength

Constant Summary collapse

REQUIRED_DATA_KEYS =
{
  "aws" => i[secret_key access_key],
  "azure-connector" => i[url code],
  "ecr" => i[secret_key access_key repos],
  "keypair" => i[secret_key],
  "nats-account" => i[ private_key],
  "opaque" => i[payload],
  "tls" => i[key cert],
  "userpass" => i[username password],
  "dictionary" => []
}.freeze

Constants included from Dsl

Dsl::EXPRESSION_PATTERN

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#locals

Methods included from Dsl

#argument, #block

Constructor Details

#initialize(name:, type:, data:, description: nil, tags: nil) ⇒ Secret

Returns a new instance of Secret.



19
20
21
22
23
24
25
26
27
# File 'lib/core/terraform_config/secret.rb', line 19

def initialize(name:, type:, data:, description: nil, tags: nil)
  super()

  @name = name
  @type = type
  @description = description
  @tags = tags
  @data = prepare_data(type: type, data: data)
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



17
18
19
# File 'lib/core/terraform_config/secret.rb', line 17

def data
  @data
end

#descriptionObject (readonly)

Returns the value of attribute description.



17
18
19
# File 'lib/core/terraform_config/secret.rb', line 17

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name.



17
18
19
# File 'lib/core/terraform_config/secret.rb', line 17

def name
  @name
end

#tagsObject (readonly)

Returns the value of attribute tags.



17
18
19
# File 'lib/core/terraform_config/secret.rb', line 17

def tags
  @tags
end

#typeObject (readonly)

Returns the value of attribute type.



17
18
19
# File 'lib/core/terraform_config/secret.rb', line 17

def type
  @type
end

Instance Method Details

#importable?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/core/terraform_config/secret.rb', line 29

def importable?
  true
end

#referenceObject



33
34
35
# File 'lib/core/terraform_config/secret.rb', line 33

def reference
  "cpln_secret.#{name}"
end

#to_tfObject



37
38
39
40
41
42
43
44
45
# File 'lib/core/terraform_config/secret.rb', line 37

def to_tf
  block :resource, :cpln_secret, name do
    argument :name, name
    argument :description, description, optional: true
    argument :tags, tags, optional: true

    secret_data
  end
end