45 lines
818 B
Ruby
45 lines
818 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module Kubernetes
|
||
|
class TlsSecret
|
||
|
attr_reader :name, :cert, :key, :namespace_name
|
||
|
|
||
|
def initialize(name, cert, key, namespace_name)
|
||
|
@name = name
|
||
|
@cert = cert
|
||
|
@key = key
|
||
|
@namespace_name = namespace_name
|
||
|
end
|
||
|
|
||
|
def generate
|
||
|
::Kubeclient::Resource.new(
|
||
|
type: tls_secret_type,
|
||
|
metadata: metadata,
|
||
|
data: data
|
||
|
)
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def tls_secret_type
|
||
|
'kubernetes.io/tls'
|
||
|
end
|
||
|
|
||
|
def metadata
|
||
|
{
|
||
|
name: name,
|
||
|
namespace: namespace_name
|
||
|
}
|
||
|
end
|
||
|
|
||
|
def data
|
||
|
{
|
||
|
'tls.crt': Base64.strict_encode64(cert),
|
||
|
'tls.key': Base64.strict_encode64(key)
|
||
|
}
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|