class OnContainer::Secrets::GoogleCloud::Fetcher
Constants
- PROJECT_PATTERN
- SECRET_NAME_PATTERN
- SECRET_VERSION_PATTERN
Attributes
project[R]
secret_name[R]
secret_version[R]
Public Class Methods
new(given_key, client: nil)
click to toggle source
# File lib/on_container/secrets/google_cloud/fetcher.rb, line 16 def initialize(given_key, client: nil) @client = client @project = extract_project given_key @secret_version = extract_secret_version given_key @secret_name = extract_secret_name given_key end
Public Instance Methods
perform!()
click to toggle source
# File lib/on_container/secrets/google_cloud/fetcher.rb, line 23 def perform! # Build the resource name of the secret version. name = client.secret_version_path project: @project, secret: @secret_name, secret_version: @secret_version version = client.access_secret_version name: name YAML.load version.payload.data end
Protected Instance Methods
default_project()
click to toggle source
# File lib/on_container/secrets/google_cloud/fetcher.rb, line 36 def default_project ENV['GOOGLE_CLOUD_PROJECT'] end
extract_project(given_key)
click to toggle source
# File lib/on_container/secrets/google_cloud/fetcher.rb, line 40 def extract_project(given_key) match = given_key.match(PROJECT_PATTERN) return default_project unless match match.captures.first end
extract_secret_name(given_key)
click to toggle source
# File lib/on_container/secrets/google_cloud/fetcher.rb, line 54 def extract_secret_name(given_key) given_key .sub("projects/#{@project}/secrets/", '') .sub("/versions/#{@secret_version}", '') end
extract_secret_version(given_key)
click to toggle source
# File lib/on_container/secrets/google_cloud/fetcher.rb, line 47 def extract_secret_version(given_key) match = given_key.match(SECRET_VERSION_PATTERN) return 'latest' unless match match.captures.first end