class KubeSecretsEncode::Command

Public Class Methods

usage_name() click to toggle source
# File lib/kube_secrets_encode.rb, line 41
def self.usage_name
  "kube_secrets"
end

Public Instance Methods

call() click to toggle source

kube_secrets enables you to encode and decode the base64 encoding of secrets in place within your config files making it easier to modify them.

# File lib/kube_secrets_encode.rb, line 46
def call()
  documents = []
  if file && File.exists?(file)
    YAML.load_stream(File.open(file)) do |document|
      if document["kind"] == "Secret"
        if document["data"]
          document["data"].each do |k,v|
            if decode?
              document["data"][k] = Base64.strict_decode64(v)
            else
              document["data"][k] = Base64.strict_encode64(v)
            end
          end
        end
      end
      documents << document
    end
    yaml = documents.map{|d| d.to_yaml}.join

    puts yaml
    if yes?
      File.open(file, 'w') { |file| file.write(yaml) }
    end
  else
    cli.show_help
  end
  exit
end
decode=(bool) click to toggle source

switch from default encode to decode mode

# File lib/kube_secrets_encode.rb, line 27
def decode=(bool)
  @decode = bool
end
decode?() click to toggle source
# File lib/kube_secrets_encode.rb, line 30
def decode?
  @decode
end
file() click to toggle source
# File lib/kube_secrets_encode.rb, line 15
def file
  @file
end
file=(filename) click to toggle source

filename of file being encoded or decoded

# File lib/kube_secrets_encode.rb, line 12
def file=(filename)
  @file = filename
end
h?()
Alias for: help?
help?() click to toggle source

Show this message.

# File lib/kube_secrets_encode.rb, line 35
def help?
  cli.show_help
  exit
end
Also aliased as: h?
yes=(bool) click to toggle source

enables write after decode or encode

# File lib/kube_secrets_encode.rb, line 20
def yes=(bool)
  @yes = bool
end
yes?() click to toggle source
# File lib/kube_secrets_encode.rb, line 23
def yes?
  @yes
end