feat: add rabbitmq support to kubezero-mq
This commit is contained in:
parent
8ccd23ba0b
commit
27147fc62c
@ -1,13 +1,14 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: kubezero-mq
|
name: kubezero-mq
|
||||||
description: KubeZero umbrella chart for MQ systems like NATS
|
description: KubeZero umbrella chart for MQ systems like NATS, RabbitMQ
|
||||||
type: application
|
type: application
|
||||||
version: 0.1.1
|
version: 0.2.0
|
||||||
home: https://kubezero.com
|
home: https://kubezero.com
|
||||||
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
||||||
keywords:
|
keywords:
|
||||||
- kubezero
|
- kubezero
|
||||||
- nats
|
- nats
|
||||||
|
- rabbitmq
|
||||||
maintainers:
|
maintainers:
|
||||||
- name: Quarky9
|
- name: Quarky9
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -18,4 +19,8 @@ dependencies:
|
|||||||
version: 0.8.3
|
version: 0.8.3
|
||||||
#repository: https://nats-io.github.io/k8s/helm/charts/
|
#repository: https://nats-io.github.io/k8s/helm/charts/
|
||||||
condition: nats.enabled
|
condition: nats.enabled
|
||||||
|
- name: rabbitmq
|
||||||
|
version: 8.13.1
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
condition: rabbitmq.enabled
|
||||||
kubeVersion: ">= 1.18.0"
|
kubeVersion: ">= 1.18.0"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# kubezero-mq
|
# kubezero-mq
|
||||||
|
|
||||||
![Version: 0.1.1](https://img.shields.io/badge/Version-0.1.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
|
![Version: 0.2.0](https://img.shields.io/badge/Version-0.2.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
|
||||||
|
|
||||||
KubeZero umbrella chart for MQ systems like NATS
|
KubeZero umbrella chart for MQ systems like NATS, RabbitMQ
|
||||||
|
|
||||||
**Homepage:** <https://kubezero.com>
|
**Homepage:** <https://kubezero.com>
|
||||||
|
|
||||||
@ -19,6 +19,7 @@ Kubernetes: `>= 1.18.0`
|
|||||||
| Repository | Name | Version |
|
| Repository | Name | Version |
|
||||||
|------------|------|---------|
|
|------------|------|---------|
|
||||||
| | nats | 0.8.3 |
|
| | nats | 0.8.3 |
|
||||||
|
| https://charts.bitnami.com/bitnami | rabbitmq | 8.13.1 |
|
||||||
| https://zero-down-time.github.io/kubezero/ | kubezero-lib | >= 0.1.3 |
|
| https://zero-down-time.github.io/kubezero/ | kubezero-lib | >= 0.1.3 |
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
@ -31,6 +32,25 @@ Kubernetes: `>= 1.18.0`
|
|||||||
| nats.nats.image | string | `"nats:2.2.1-alpine3.13"` | |
|
| nats.nats.image | string | `"nats:2.2.1-alpine3.13"` | |
|
||||||
| nats.nats.jetstream.enabled | bool | `true` | |
|
| nats.nats.jetstream.enabled | bool | `true` | |
|
||||||
| nats.natsbox.enabled | bool | `false` | |
|
| nats.natsbox.enabled | bool | `false` | |
|
||||||
|
| rabbitmq.auth.erlangCookie | string | `"randomlongerlangcookie"` | |
|
||||||
|
| rabbitmq.auth.password | string | `"supersecret"` | |
|
||||||
|
| rabbitmq.auth.tls.enabled | bool | `false` | |
|
||||||
|
| rabbitmq.auth.tls.existingSecret | string | `"rabbitmq-server-certificate"` | |
|
||||||
|
| rabbitmq.auth.tls.existingSecretFullChain | bool | `true` | |
|
||||||
|
| rabbitmq.auth.tls.failIfNoPeerCert | bool | `false` | |
|
||||||
|
| rabbitmq.clustering.forceBoot | bool | `true` | |
|
||||||
|
| rabbitmq.enabled | bool | `false` | |
|
||||||
|
| rabbitmq.hosts | list | `[]` | hostnames of rabbitmq services, used for Istio and TLS |
|
||||||
|
| rabbitmq.istio.enabled | bool | `false` | |
|
||||||
|
| rabbitmq.istio.gateway | string | `"istio-ingress/private-ingressgateway"` | |
|
||||||
|
| rabbitmq.metrics.enabled | bool | `false` | |
|
||||||
|
| rabbitmq.metrics.serviceMonitor.enabled | bool | `false` | |
|
||||||
|
| rabbitmq.pdb.create | bool | `true` | |
|
||||||
|
| rabbitmq.podAntiAffinityPreset | string | `""` | |
|
||||||
|
| rabbitmq.replicaCount | int | `1` | |
|
||||||
|
| rabbitmq.resources.requests.cpu | string | `"100m"` | |
|
||||||
|
| rabbitmq.resources.requests.memory | string | `"256Mi"` | |
|
||||||
|
| rabbitmq.topologySpreadConstraints | string | `"- maxSkew: 1\n topologyKey: topology.kubernetes.io/zone\n whenUnsatisfiable: DoNotSchedule\n labelSelector:\n matchLabels: {{- include \"common.labels.matchLabels\" . | nindent 6 }}\n- maxSkew: 1\n topologyKey: kubernetes.io/hostname\n whenUnsatisfiable: DoNotSchedule\n labelSelector:\n matchLabels: {{- include \"common.labels.matchLabels\" . | nindent 6 }}"` | |
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
|
35
charts/kubezero-mq/templates/rabbitmq/istio-service.yaml
Normal file
35
charts/kubezero-mq/templates/rabbitmq/istio-service.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{{- if .Values.rabbitmq.istio.enabled }}
|
||||||
|
apiVersion: networking.istio.io/v1alpha3
|
||||||
|
kind: VirtualService
|
||||||
|
metadata:
|
||||||
|
name: rabbit-amqp
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||||
|
spec:
|
||||||
|
gateways:
|
||||||
|
- {{ .Values.rabbitmq.istio.gateway }}
|
||||||
|
hosts:
|
||||||
|
{{ toYaml .Values.rabbitmq.hosts | indent 2 }}
|
||||||
|
tcp:
|
||||||
|
- match:
|
||||||
|
- port: 5672
|
||||||
|
route:
|
||||||
|
- destination:
|
||||||
|
host: rabbitmq-headless
|
||||||
|
port:
|
||||||
|
number: 5672
|
||||||
|
- match:
|
||||||
|
- port: 5671
|
||||||
|
route:
|
||||||
|
- destination:
|
||||||
|
host: rabbitmq-headless
|
||||||
|
port:
|
||||||
|
number: 5671
|
||||||
|
http:
|
||||||
|
- route:
|
||||||
|
- destination:
|
||||||
|
host: rabbitmq-headless
|
||||||
|
port:
|
||||||
|
number: 15672
|
||||||
|
{{- end }}
|
@ -0,0 +1,16 @@
|
|||||||
|
{{- if .Values.rabbitmq.auth.tls.enabled }}
|
||||||
|
apiVersion: cert-manager.io/v1alpha2
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: rabbitmq-server-certificate
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||||
|
spec:
|
||||||
|
secretName: rabbitmq-server-certificate
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-dns-prod
|
||||||
|
kind: ClusterIssuer
|
||||||
|
dnsNames:
|
||||||
|
{{ toYaml .Values.rabbitmq.hosts | indent 2 }}
|
||||||
|
{{- end }}
|
@ -11,4 +11,4 @@ cp -r k8s/helm/charts/nats/* charts/nats/
|
|||||||
rm -rf k8s
|
rm -rf k8s
|
||||||
|
|
||||||
# Fetch dashboards
|
# Fetch dashboards
|
||||||
../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml
|
../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/nats/grafana-dashboards.yaml
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# nats
|
||||||
nats:
|
nats:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
@ -15,3 +16,54 @@ nats:
|
|||||||
exporter:
|
exporter:
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
# rabbitmq
|
||||||
|
rabbitmq:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# rabbitmq.hosts -- hostnames of rabbitmq services, used for Istio and TLS
|
||||||
|
hosts: []
|
||||||
|
|
||||||
|
istio:
|
||||||
|
enabled: false
|
||||||
|
gateway: istio-ingress/private-ingressgateway
|
||||||
|
|
||||||
|
auth:
|
||||||
|
password: "supersecret"
|
||||||
|
erlangCookie: "randomlongerlangcookie"
|
||||||
|
tls:
|
||||||
|
enabled: false
|
||||||
|
failIfNoPeerCert: false
|
||||||
|
existingSecret: rabbitmq-server-certificate
|
||||||
|
existingSecretFullChain: true
|
||||||
|
|
||||||
|
clustering:
|
||||||
|
forceBoot: true
|
||||||
|
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 256Mi
|
||||||
|
cpu: 100m
|
||||||
|
|
||||||
|
replicaCount: 1
|
||||||
|
|
||||||
|
podAntiAffinityPreset: ""
|
||||||
|
topologySpreadConstraints: |-
|
||||||
|
- maxSkew: 1
|
||||||
|
topologyKey: topology.kubernetes.io/zone
|
||||||
|
whenUnsatisfiable: DoNotSchedule
|
||||||
|
labelSelector:
|
||||||
|
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||||
|
- maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: DoNotSchedule
|
||||||
|
labelSelector:
|
||||||
|
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||||
|
|
||||||
|
pdb:
|
||||||
|
create: true
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: false
|
||||||
|
serviceMonitor:
|
||||||
|
enabled: false
|
||||||
|
Loading…
Reference in New Issue
Block a user