rabbitmq: accepted into kubernetes official stable repo

This commit is contained in:
Sameer Naik
2016-11-23 10:50:18 +05:30
parent f28205870d
commit d819ac7887
9 changed files with 1 additions and 337 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ Popular applications, provided by [Bitnami](https://bitnami.com), ready to launc
- [Drupal (stable)](https://github.com/kubernetes/charts/tree/master/stable/drupal)
- [OpenCart (incubator)](https://github.com/bitnami/charts/tree/master/incubator/opencart)
- [Magento (incubator)](https://github.com/bitnami/charts/tree/master/incubator/magento)
- [RabbitMQ (incubator)](https://github.com/bitnami/charts/tree/master/incubator/rabbitmq)
- [RabbitMQ (stable)](https://github.com/kubernetes/charts/tree/master/stable/rabbitmq)
- [OwnCloud (incubator)](https://github.com/bitnami/charts/tree/master/incubator/owncloud)
- [Jenkins (incubator)](https://github.com/bitnami/charts/tree/master/incubator/jenkins)
- [Memcached (incubator)](https://github.com/bitnami/charts/tree/master/incubator/memcached)
-1
View File
@@ -1 +0,0 @@
.git
-14
View File
@@ -1,14 +0,0 @@
name: rabbitmq
version: 0.3.3
description: Open source message broker software that implements the Advanced Message Queuing Protocol (AMQP)
keywords:
- rabbitmq
- message queue
- AMQP
home: https://www.rabbitmq.com
sources:
- https://github.com/bitnami/bitnami-docker-rabbitmq
maintainers:
- name: Bitnami
email: containers@bitnami.com
engine: gotpl
-127
View File
@@ -1,127 +0,0 @@
# RabbitMQ
[RabbitMQ](https://www.rabbitmq.com/) is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
## TL;DR;
```bash
$ helm install rabbitmq-x.x.x.tgz
```
## Introduction
Bitnami charts for Helm are carefully engineered, actively maintained and are the quickest and easiest way to deploy containers on a Kubernetes cluster that are ready to handle production workloads.
This chart bootstraps a [RabbitMQ](https://github.com/bitnami/bitnami-docker-rabbitmq) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Get this chart
Download the latest release of the chart from the [releases](../../../releases) page.
Alternatively, clone the repo if you wish to use the development snapshot:
```bash
$ git clone https://github.com/bitnami/charts.git
```
## Installing the Chart
To install the chart with the release name `my-release`:
```bash
$ helm install --name my-release rabbitmq-x.x.x.tgz
```
*Replace the `x.x.x` placeholder with the chart release version.*
The command deploys RabbitMQ on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
```bash
$ helm delete my-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
## Configuration
The following tables lists the configurable parameters of the RabbitMQ chart and their default values.
| Parameter | Description | Default |
|---------------------------|---------------------------------------------------------|----------------------------------------------------------|
| `imageTag` | `bitnami/rabbitmq` image tag | RabbitMQ image version |
| `imagePullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent`. |
| `rabbitmqUsername` | RabbitMQ application username | `user` |
| `rabbitmqPassword` | RabbitMQ application password | `bitnami` |
| `rabbitmqErlangCookie` | Erlang cookie | `nil` |
| `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` |
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.
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```bash
$ helm install --name my-release \
--set rabbitmqUsername=admin,rabbitmqPassword=secretpassword,rabbitmqErlangCookie=secretcookie \
rabbitmq-x.x.x.tgz
```
The above command sets the RabbitMQ admin username and password to `admin` and `secretpassword` respectively. Additionally the secure erlang cookie is set to `secretcookie`.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
```bash
$ helm install --name my-release -f values.yaml rabbitmq-x.x.x.tgz
```
> **Tip**: You can use the default [values.yaml](values.yaml)
## Persistence
The [Bitnami RabbitMQ](https://github.com/bitnami/bitnami-docker-rabbitmq) image stores the RabbitMQ data and configurations at the `/bitnami/rabbitmq` path of the container.
As a placeholder, the chart mounts an [emptyDir](http://kubernetes.io/docs/user-guide/volumes/#emptydir) volume at this location.
> *"An emptyDir volume is first created when a Pod is assigned to a Node, and exists as long as that Pod is running on that node. When a Pod is removed from a node for any reason, the data in the emptyDir is deleted forever."*
For persistence of the data you should replace the `emptyDir` volume with a persistent [storage volume](http://kubernetes.io/docs/user-guide/volumes/), else the data will be lost if the Pod is shutdown.
### Step 1: Create a persistent disk
You first need to create a persistent disk in the cloud platform your cluster is running. For example, on GCE you can use the `gcloud` tool to create a [gcePersistentDisk](http://kubernetes.io/docs/user-guide/volumes/#gcepersistentdisk):
```bash
$ gcloud compute disks create --size=500GB --zone=us-central1-a rabbitmq-data-disk
```
### Step 2: Update `templates/deployment.yaml`
Replace:
```yaml
volumes:
- name: rabbitmq-data
emptyDir: {}
```
with
```yaml
volumes:
- name: rabbitmq-data
gcePersistentDisk:
pdName: rabbitmq-data-disk
fsType: ext4
```
[Install](#installing-the-chart) the chart after making these changes.
-24
View File
@@ -1,24 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 24 -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 24 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 24 -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 24 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "mariadb.fullname" -}}
{{- printf "%s-%s" .Release.Name "mariadb" | trunc 24 -}}
{{- end -}}
@@ -1,77 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
replicas: 1
template:
metadata:
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
containers:
- name: {{ template "fullname" . }}
image: "bitnami/rabbitmq:{{ .Values.imageTag }}"
imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
env:
- name: RABBITMQ_USERNAME
value: {{ default "" .Values.rabbitmqUsername | quote }}
- name: RABBITMQ_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "fullname" . }}
key: rabbitmq-password
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: {{ template "fullname" . }}
key: rabbitmq-erlang-cookie
- name: RABBITMQ_NODE_PORT
value: {{ default "" .Values.rabbitmqNodePort | quote }}
- name: RABBITMQ_NODE_TYPE
value: {{ default "" .Values.rabbitmqNodeType | quote }}
- name: RABBITMQ_NODE_NAME
value: {{ default "" .Values.rabbitmqNodeName | quote }}
- name: RABBITMQ_CLUSTER_NODE_NAME
value: {{ default "" .Values.rabbitmqClusterNodeName | quote }}
- name: RABBITMQ_VHOST
value: {{ default "" .Values.rabbitmqVhost | quote }}
- name: RABBITMQ_MANAGER_PORT
value: {{ default "" .Values.rabbitmqManagerPort | quote }}
ports:
- name: epmd
containerPort: 4369
- name: ampq
containerPort: {{ default "5672" .Values.rabbitmqNodePort }}
- name: dist
containerPort: {{ default "5672" .Values.rabbitmqNodePort | add 20000 }}
- name: stats
containerPort: {{ default "15672" .Values.rabbitmqManagerPort }}
livenessProbe:
exec:
command:
- rabbitmqctl
- status
initialDelaySeconds: 30
timeoutSeconds: 5
readinessProbe:
exec:
command:
- rabbitmqctl
- status
initialDelaySeconds: 5
timeoutSeconds: 1
volumeMounts:
- name: rabbitmq-data
mountPath: /bitnami/rabbitmq
volumes:
- name: rabbitmq-data
emptyDir: {}
-13
View File
@@ -1,13 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: Opaque
data:
rabbitmq-password: {{ default "" .Values.rabbitmqPassword | b64enc | quote }}
rabbitmq-erlang-cookie: {{ default "" .Values.rabbitmqErlangCookie | b64enc | quote }}
-25
View File
@@ -1,25 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
ports:
- name: epmd
port: 4369
targetPort: epmd
- name: ampq
port: {{ default "5672" .Values.rabbitmqNodePort }}
targetPort: ampq
- name: dist
port: {{ default "5672" .Values.rabbitmqNodePort | add 20000 }}
targetPort: dist
- name: stats
port: {{ default "15672" .Values.rabbitmqManagerPort }}
targetPort: stats
selector:
app: {{ template "fullname" . }}
-55
View File
@@ -1,55 +0,0 @@
## Bitnami RabbitMQ image version
## ref: https://hub.docker.com/r/bitnami/rabbitmq/tags/
##
imageTag: 3.6.5-r4
## Specify a imagePullPolicy
## 'Always' if imageTag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
# imagePullPolicy:
## RabbitMQ application username
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run
##
rabbitmqUsername: user
## RabbitMQ application password
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run
##
rabbitmqPassword: bitnami
## Erlang cookie to determine whether different nodes are allowed to communicate with each other
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
# rabbitmqErlangCookie:
## Node port
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
rabbitmqNodePort: 5672
## Node Type
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
rabbitmqNodeType: stats
## Node Name
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
rabbitmqNodeName: rabbit
## Node name to cluster with. e.g.: `clusternode@hostname`
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
# rabbitmqClusternodename:
## RabbitMQ application vhost
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
rabbitmqVhost: /
## RabbitMQ Manager port
## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables
##
rabbitmqManagerPort: 15672