mirror of
https://github.com/czhu12/canine.git
synced 2025-12-21 10:49:49 -06:00
30 lines
801 B
Ruby
30 lines
801 B
Ruby
class K8::Helm::Redis < K8::Helm::Service
|
|
def name
|
|
"redis"
|
|
end
|
|
|
|
def service_basename
|
|
add_on.name.include?("redis") ? add_on.name : "#{add_on.name}-redis"
|
|
end
|
|
|
|
def service_name
|
|
"#{service_basename}-master"
|
|
end
|
|
|
|
def internal_url
|
|
service = client.get_services(namespace: add_on.name).find do |service|
|
|
service.metadata.name == service_name
|
|
end
|
|
"redis://:#{password}@#{service.metadata.name}.#{service.metadata.namespace}.svc.cluster.local:#{service.spec.ports[0].port}"
|
|
end
|
|
|
|
def has_external_url?
|
|
false
|
|
end
|
|
|
|
def password
|
|
output = K8::Kubectl.new(add_on.cluster.kubeconfig, Cli::RunAndReturnOutput.new).call("get secret --namespace #{add_on.name} #{service_basename} -o jsonpath='{.data.redis-password}' | base64 -d")
|
|
output.strip
|
|
end
|
|
end
|