rabbitmq-dapr-pubsub
Generates a Dapr PubSub Component pointing to a RabbitMQ StatefulSet.
type: dapr-pubsub
expected_outputs:
- name10-rabbitmq-dapr-pubsub.provisioners.yaml
(view on GitHub)
:
- uri: template://community-provisioners/rabbitmq-dapr-pubsub
type: dapr-pubsub
description: Generates a Dapr PubSub Component pointing to a RabbitMQ StatefulSet.
init: |
port: 5672
managementPort: 15672
state: |
service: rabbitmq-{{ .SourceWorkload }}-{{ substr 0 8 .Guid | lower }}
outputs: |
name: {{ .State.service }}
expected_outputs:
- name
manifests: |
- apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: {{ .State.service }}
{{ if ne .Namespace "" }}
namespace: {{ .Namespace }}
{{ end }}
spec:
type: pubsub.rabbitmq
version: v1
metadata:
- name: host
value: "amqp://{{ .State.service }}:{{ .Init.port }}"
- apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ .State.service }}
{{ if ne .Namespace "" }}
namespace: {{ .Namespace }}
{{ end }}
annotations:
k8s.score.dev/source-workload: {{ .SourceWorkload }}
k8s.score.dev/resource-uid: {{ .Uid }}
k8s.score.dev/resource-guid: {{ .Guid }}
labels:
app.kubernetes.io/managed-by: score-k8s
app.kubernetes.io/name: {{ .State.service }}
app.kubernetes.io/instance: {{ .State.service }}
spec:
serviceName: {{ .State.service }}
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: {{ .State.service }}
template:
metadata:
labels:
app.kubernetes.io/managed-by: score-k8s
app.kubernetes.io/name: {{ .State.service }}
app.kubernetes.io/instance: {{ .State.service }}
spec:
containers:
- name: rabbitmq
image: mirror.gcr.io/rabbitmq:3-management-alpine
ports:
- name: amqp
containerPort: {{ .Init.port }}
- name: management
containerPort: {{ .Init.managementPort }}
volumeMounts:
- name: data
mountPath: /var/lib/rabbitmq
readinessProbe:
exec:
command:
- rabbitmq-diagnostics
- -q
- check_port_connectivity
periodSeconds: 3
initialDelaySeconds: 30
timeoutSeconds: 5
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 3Gi
- apiVersion: v1
kind: Service
metadata:
name: {{ .State.service }}
{{ if ne .Namespace "" }}
namespace: {{ .Namespace }}
{{ end }}
annotations:
k8s.score.dev/source-workload: {{ .SourceWorkload }}
k8s.score.dev/resource-uid: {{ .Uid }}
k8s.score.dev/resource-guid: {{ .Guid }}
labels:
app.kubernetes.io/managed-by: score-k8s
app.kubernetes.io/name: {{ .State.service }}
app.kubernetes.io/instance: {{ .State.service }}
spec:
ports:
- port: {{ .Init.port }}
targetPort: {{ .Init.port }}
name: amqp
- port: {{ .Init.managementPort }}
targetPort: {{ .Init.managementPort }}
name: management
selector:
app.kubernetes.io/instance: {{ .State.service }}
type: ClusterIP