From 40aecbcaf5271e021c2e61e77918e47f0af82cd5 Mon Sep 17 00:00:00 2001 From: Sameer Naik Date: Wed, 9 Aug 2017 17:53:47 +0530 Subject: [PATCH] [stable/rabbitmq] release 0.6.0 (#1652) * rabbitmq: fixed typo in port name * rabbitmq: allow users to specify the serviceType * rabbitmq: bump chart version to 0.6.0 --- stable/rabbitmq/Chart.yaml | 2 +- stable/rabbitmq/README.md | 37 +++++++------- stable/rabbitmq/templates/NOTES.txt | 59 +++++++++++++++++++---- stable/rabbitmq/templates/deployment.yaml | 2 +- stable/rabbitmq/templates/svc.yaml | 5 +- stable/rabbitmq/values.yaml | 3 ++ 6 files changed, 77 insertions(+), 31 deletions(-) diff --git a/stable/rabbitmq/Chart.yaml b/stable/rabbitmq/Chart.yaml index d048c63fd5..2f9eb479f7 100644 --- a/stable/rabbitmq/Chart.yaml +++ b/stable/rabbitmq/Chart.yaml @@ -1,5 +1,5 @@ name: rabbitmq -version: 0.5.5 +version: 0.6.0 appVersion: 3.6.10 description: Open source message broker software that implements the Advanced Message Queuing Protocol (AMQP) keywords: diff --git a/stable/rabbitmq/README.md b/stable/rabbitmq/README.md index e459d61cd4..1b97911168 100644 --- a/stable/rabbitmq/README.md +++ b/stable/rabbitmq/README.md @@ -43,24 +43,25 @@ The command removes all the Kubernetes components associated with the chart and The following tables lists the configurable parameters of the RabbitMQ chart and their default values. -| Parameter | Description | Default | -|----------------------------|---------------------------------------------------------|----------------------------------------------------------| -| `image` | RabbitMQ image | `bitnami/rabbitmq:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent`. | -| `rabbitmqUsername` | RabbitMQ application username | `user` | -| `rabbitmqPassword` | RabbitMQ application password | _random 10 character long alphanumeric string_ | -| `rabbitmqErlangCookie` | Erlang cookie | _random 32 character long alphanumeric string_ | -| `rabbitmqNodePort` | Node port | `5672` | -| `rabbitmqNodeType` | Node type | `stats` | -| `rabbitmqNodeName` | Node name | `rabbit` | -| `rabbitmqClusterNodeName` | Node name to cluster with. e.g.: `clusternode@hostname` | `nil` | -| `rabbitmqVhost` | RabbitMQ application vhost | `/` | -| `rabbitmqManagerPort` | RabbitMQ Manager port | `15672` | -| `persistence.enabled` | Use a PVC to persist data | `true` | -| `persistence.existingClaim`| Use an existing PVC to persist data | `nil` | -| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | Use volume as ReadOnly or ReadWrite | `ReadWriteOnce` | -| `persistence.size` | Size of data volume | `8Gi` | +| Parameter | Description | Default | +|-----------------------------|---------------------------------------------------------|----------------------------------------------------------| +| `image` | RabbitMQ image | `bitnami/rabbitmq:{VERSION}` | +| `imagePullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent`. | +| `rabbitmqUsername` | RabbitMQ application username | `user` | +| `rabbitmqPassword` | RabbitMQ application password | _random 10 character long alphanumeric string_ | +| `rabbitmqErlangCookie` | Erlang cookie | _random 32 character long alphanumeric string_ | +| `rabbitmqNodePort` | Node port | `5672` | +| `rabbitmqNodeType` | Node type | `stats` | +| `rabbitmqNodeName` | Node name | `rabbit` | +| `rabbitmqClusterNodeName` | Node name to cluster with. e.g.: `clusternode@hostname` | `nil` | +| `rabbitmqVhost` | RabbitMQ application vhost | `/` | +| `rabbitmqManagerPort` | RabbitMQ Manager port | `15672` | +| `serviceType` | Kubernetes Service type | `ClusterIP` | +| `persistence.enabled` | Use a PVC to persist data | `true` | +| `persistence.existingClaim` | Use an existing PVC to persist data | `nil` | +| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | +| `persistence.accessMode` | Use volume as ReadOnly or ReadWrite | `ReadWriteOnce` | +| `persistence.size` | Size of data volume | `8Gi` | The above parameters map to the env variables defined in [bitnami/rabbitmq](http://github.com/bitnami/bitnami-docker-rabbitmq). For more information please refer to the [bitnami/rabbitmq](http://github.com/bitnami/bitnami-docker-rabbitmq) image documentation. diff --git a/stable/rabbitmq/templates/NOTES.txt b/stable/rabbitmq/templates/NOTES.txt index 43ef34c7c4..a6a4370f23 100644 --- a/stable/rabbitmq/templates/NOTES.txt +++ b/stable/rabbitmq/templates/NOTES.txt @@ -1,14 +1,55 @@ -** P.S. RabbitMQ may take a few minutes to become available. Please be patient. ** +** Please be patient while the chart is being deployed ** -The RabbitMQ AMQP port {{ default "5672" .Values.rabbitmqNodePort }} can be accessed on the following DNS name from within your cluster: {{ template "fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local + Credentials: - echo Username : {{ .Values.rabbitmqUsername }} - echo Password : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.rabbitmq-password}" | base64 --decode) - echo ErLang Cookie : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 --decode) + echo Username : {{ .Values.rabbitmqUsername }} + echo Password : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.rabbitmq-password}" | base64 --decode) + echo ErLang Cookie : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 --decode) -To Access the RabbitMQ Management interface: + RabbitMQ can be accessed within the cluster on port {{ .Values.rabbitmqNodePort }} at {{ template "fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}") - echo URL : http://127.0.0.1:{{ default "15672" .Values.rabbitmqManagerPort }} - kubectl port-forward $POD_NAME {{ default "15672" .Values.rabbitmqManagerPort }}:{{ default "15672" .Values.rabbitmqManagerPort }} + To access for outside the cluster execute the following commands: + +{{- if contains "NodePort" .Values.serviceType }} + + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + export NODE_PORT_AMQP=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[1].nodePort}" services {{ template "fullname" . }}) + export NODE_PORT_STATS=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[3].nodePort}" services {{ template "fullname" . }}) + + To Access the RabbitMQ AMQP port: + + echo amqp://$NODE_IP:$NODE_PORT_AMQP/ + + To Access the RabbitMQ Management interface: + + echo http://$NODE_IP:$NODE_PORT_STATS/ + +{{- else if contains "LoadBalancer" .Values.serviceType }} + + 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 "fullname" . }}' + + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + + To Access the RabbitMQ AMQP port: + + echo amqp://$SERVICE_IP:{{ .Values.rabbitmqNodePort }}/ + + To Access the RabbitMQ Management interface: + + echo http://$SERVICE_IP:{{ .Values.rabbitmqManagerPort }}/ + +{{- else if contains "ClusterIP" .Values.serviceType }} + + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}") + kubectl port-forward $POD_NAME {{ .Values.rabbitmqNodePort }}:{{ .Values.rabbitmqNodePort }} {{ .Values.rabbitmqManagerPort }}:{{ .Values.rabbitmqManagerPort }} + + To Access the RabbitMQ AMQP port: + + echo amqp://127.0.0.1:{{ .Values.rabbitmqNodePort }}/ + + To Access the RabbitMQ Management interface: + + echo URL : http://127.0.0.1:{{ .Values.rabbitmqManagerPort }} +{{- end }} diff --git a/stable/rabbitmq/templates/deployment.yaml b/stable/rabbitmq/templates/deployment.yaml index 4e62bb739f..690ad67736 100644 --- a/stable/rabbitmq/templates/deployment.yaml +++ b/stable/rabbitmq/templates/deployment.yaml @@ -45,7 +45,7 @@ spec: ports: - name: epmd containerPort: 4369 - - name: ampq + - name: amqp containerPort: {{ default "5672" .Values.rabbitmqNodePort }} - name: dist containerPort: {{ default "5672" .Values.rabbitmqNodePort | add 20000 }} diff --git a/stable/rabbitmq/templates/svc.yaml b/stable/rabbitmq/templates/svc.yaml index 345ef845d1..e7f5213c8f 100644 --- a/stable/rabbitmq/templates/svc.yaml +++ b/stable/rabbitmq/templates/svc.yaml @@ -8,13 +8,14 @@ metadata: release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" spec: + type: {{ .Values.serviceType }} ports: - name: epmd port: 4369 targetPort: epmd - - name: ampq + - name: amqp port: {{ default "5672" .Values.rabbitmqNodePort }} - targetPort: ampq + targetPort: amqp - name: dist port: {{ default "5672" .Values.rabbitmqNodePort | add 20000 }} targetPort: dist diff --git a/stable/rabbitmq/values.yaml b/stable/rabbitmq/values.yaml index de3af1b09a..bbba40752b 100644 --- a/stable/rabbitmq/values.yaml +++ b/stable/rabbitmq/values.yaml @@ -54,6 +54,9 @@ rabbitmqVhost: / ## rabbitmqManagerPort: 15672 +## Kubernetes service type +serviceType: ClusterIP + persistence: enabled: true