# Copyright © 2018 Amdocs, Bell Canada
#
# This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
#
# Full license text at https://creativecommons.org/licenses/by/4.0/legalcode

MariaDB-Galera service can be accessed via port 3306 on the following DNS name from within your cluster:
{{ include "common.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local

To connect to your database:

1. Run a pod that you can use as a client:

    kubectl run {{ include "common.fullname" . }}-client --rm --tty -i --image mariadb --command -- bash

2. Connect using the mysql cli, then provide your password:
    $ mysql -h {{ include "common.fullname" . }} {{- if .Values.mysqlRootPassword }} -p {{ .Values.mysqlRootPassword }}{{- end -}}

