Sha256: 0f84a00248e1acb28896dfd87c43747a5db1e483ef0444495909004183f04990
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
require "google-cloud-secret_manager" module KubesGoogle class Secrets def initialize(upcase: false, prefix: nil) @upcase = upcase @prefix = ENV['GCP_SECRET_PREFIX'] || prefix || raise("GOOGLE_PROJECT env variable is not set. It's required.") @project_id = ENV['GOOGLE_PROJECT'] # IE: prefix: projects/686010496118/secrets/demo-dev- end def call client = Google::Cloud::SecretManager.secret_manager_service parent = "projects/#{@project_id}" resp = client.list_secrets(parent: parent, page_size: 1) resp.each do |secret| next unless secret.name.include?(@prefix) version = client.access_secret_version(name: "#{secret.name}/versions/latest") # projects/686010496118/secrets/demo-dev-db_pass => DB_PASS key = secret.name.sub(@prefix,'') key = key.upcase if @upcase value = version.payload.data self.class.data[key] = Base64.encode64(value).strip end end class_attribute :data self.data = {} end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kubes_google-0.1.0 | lib/kubes_google/secrets.rb |