** Please be patient while the chart is being deployed **

  Credentials:

    Username      : {{ .Values.rabbitmqUsername }}
    Password      : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "rabbitmq-ha.fullname" . }} -o jsonpath="{.data.rabbitmq-password}" | base64 --decode)
    ErLang Cookie : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "rabbitmq-ha.fullname" . }} -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 --decode)

  RabbitMQ can be accessed within the cluster on port {{ .Values.rabbitmqNodePort }} at {{ template "rabbitmq-ha.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local

  To access for outside the cluster execute the following commands:

{{- if contains "NodePort" .Values.service.type }}

    export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[?(@.type=='ExternalIP')].address}")
    export NODE_PORT_AMQP=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath='{.spec.ports[?(@.name=="amqp")].nodePort}' services {{ template "rabbitmq-ha.fullname" . }})
    {{- if .Values.rabbitmqAmqpsSupport.enabled }}
    export NODE_PORT_AMQPS=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath='{.spec.ports[?(@.name=="amqps")].nodePort}' services {{ template "rabbitmq-ha.fullname" . }})
    {{- end }}
    export NODE_PORT_STATS=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}' services {{ template "rabbitmq-ha.fullname" . }})

  To Access the RabbitMQ AMQP port:

    amqp://$NODE_IP:$NODE_PORT_AMQP/

{{- if .Values.rabbitmqAmqpsSupport.enabled }}
  To Access the RabbitMQ AMQPS port:

    amqps://$NODE_IP:$NODE_PORT_AMQPS/
{{- end }}

  To Access the RabbitMQ Management interface:

    http://$NODE_IP:$NODE_PORT_STATS/

{{- else if contains "LoadBalancer" .Values.service.type }}

  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "rabbitmq-ha.name" . }}'

    export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "rabbitmq-ha.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    {{- if .Values.rabbitmqAmqpsSupport.enabled }}
    export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "rabbitmq-ha.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[1].ip}')
    {{- end }}

  To Access the RabbitMQ AMQP port:

    amqp://$SERVICE_IP:{{ .Values.rabbitmqNodePort }}/

{{- if .Values.rabbitmqAmqpsSupport.enabled }}
  To Access the RabbitMQ AMQPS port:

    amqps://$SERVICE_IP:{{ .Values.rabbitmqAmqpsSupport.amqpsNodePort }}/
{{- end }}

  To Access the RabbitMQ Management interface:

    http://$SERVICE_IP:{{ .Values.rabbitmqManagerPort }}/

{{- else if contains "ClusterIP"  .Values.service.type }}

    export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "rabbitmq-ha.name" . }}" -o jsonpath="{.items[0].metadata.name}")
    kubectl port-forward $POD_NAME --namespace {{ .Release.Namespace }} {{ .Values.rabbitmqNodePort }}:{{ .Values.rabbitmqNodePort }} {{ .Values.rabbitmqManagerPort }}:{{ .Values.rabbitmqManagerPort }}
    {{- if .Values.rabbitmqAmqpsSupport.enabled }}
    kubectl port-forward $POD_NAME --namespace {{ .Release.Namespace }} {{ .Values.rabbitmqAmqpsSupport.amqpsNodePort }}:{{ .Values.rabbitmqAmqpsSupport.amqpsNodePort }} 
    {{- end }}

  To Access the RabbitMQ AMQP port:

    amqp://127.0.0.1:{{ .Values.rabbitmqNodePort }}/

{{- if .Values.rabbitmqAmqpsSupport.enabled }}
  To Access the RabbitMQ AMQPS port:

    amqps://127.0.0.1:{{ .Values.rabbitmqAmqpsSupport.amqpsNodePort }}/
{{- end }}

  To Access the RabbitMQ Management interface:

    URL : http://127.0.0.1:{{ .Values.rabbitmqManagerPort }}
{{- end }}


To enable mirroring for all the host:

  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "rabbitmq-ha.name" . }}" -o jsonpath="{.items[0].metadata.name}")
  kubectl exec $POD_NAME --namespace {{ .Release.Namespace }} -- rabbitmqctl set_policy ha-all "." '{"ha-mode":"all", "ha-sync-mode":"automatic"}' --apply-to all --priority 0
