Skip to main content

Helmion Plugin: RabbitMQ

Project description

Helmion Plugin: RabbitMQ

PyPI version Supported Python versions

hmi_rabbitmqchart generator for Helmion that deploys a RabbitMQ server in Kubernetes.

Helmion is a python library to download and customize Helm charts, and can also be used to generate custom charts.

Example

from kubragen2.output import OutputProject, OutputFile_ShellScript, OutputFile_Kubernetes, OD_FileTemplate, \
    OutputDriver_Print

from hmi_rabbitmq import RabbitMQChartRequest, RabbitMQConfigFile

out = OutputProject()

shell_script = OutputFile_ShellScript('create_gke.sh')
out.append(shell_script)

shell_script.append('set -e')

#
# OUTPUTFILE: app-namespace.yaml
#
file = OutputFile_Kubernetes('app-namespace.yaml')

file.append([
    {
        'apiVersion': 'v1',
        'kind': 'Namespace',
        'metadata': {
            'name': 'app-monitoring',
        },
    }
])

out.append(file)
shell_script.append(OD_FileTemplate(f'kubectl apply -f ${{FILE_{file.fileid}}}'))

shell_script.append(f'kubectl config set-context --current --namespace=app-monitoring')


#
# SETUP: rabbitmq
#
rabbitmq_req = RabbitMQChartRequest(namespace='app-monitoring', releasename='myrabbitmq', values={
    'configuration': RabbitMQConfigFile(),
    'persistence': {
        # 'existingClaim': 'xx',
    },
    'metrics': {
        'enabled': True,
        'serviceMonitor': {
            'enabled': True,
        }
    }
})

rabbitmq_chart = rabbitmq_req.generate()

#
# OUTPUTFILE: rabbitmq.yaml
#
file = OutputFile_Kubernetes('rabbitmq.yaml')
out.append(file)

file.append(rabbitmq_chart.data)

shell_script.append(OD_FileTemplate(f'kubectl apply -f ${{FILE_{file.fileid}}}'))

#
# Write files
#
out.output(OutputDriver_Print())
# out.output(OutputDriver_Directory('/tmp/build-gke'))

Output:

****** BEGIN FILE: 001-app-namespace.yaml ********
apiVersion: v1
kind: Namespace
metadata:
  name: app-monitoring

****** END FILE: 001-app-namespace.yaml ********
****** BEGIN FILE: 002-rabbitmq.yaml ********
apiVersion: v1
kind: ServiceAccount
metadata:
  name: myrabbitmq
  namespace: app-monitoring
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: myrabbitmq
  namespace: app-monitoring
rules:
- apiGroups:
  - ''
  resources:
  - endpoints
  verbs:
  - get
- apiGroups:
  - ''
  resources:
  - events
  verbs:
  - create
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: myrabbitmq
  namespace: app-monitoring
subjects:
- kind: ServiceAccount
  name: myrabbitmq
<...more...>

****** END FILE: 002-rabbitmq.yaml ********
****** BEGIN FILE: create_gke.sh ********
#!/bin/bash

set -e
kubectl apply -f 001-app-namespace.yaml
kubectl config set-context --current --namespace=app-monitoring
kubectl apply -f 002-rabbitmq.yaml

****** END FILE: create_gke.sh ********

Author

Rangel Reale (rangelreale@gmail.com)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hmi_rabbitmq-0.8.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

hmi_rabbitmq-0.8.1-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file hmi_rabbitmq-0.8.1.tar.gz.

File metadata

  • Download URL: hmi_rabbitmq-0.8.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.3

File hashes

Hashes for hmi_rabbitmq-0.8.1.tar.gz
Algorithm Hash digest
SHA256 ab13feb97372c8f4050ac2e564541baaed3ccddcff5752d51844e2b9cbd4a414
MD5 5a443d3c817203aaa9f37b4791914beb
BLAKE2b-256 a2655af5815f82e48dface51c961fa1bf89a0fbdd2bcc563c0376c608d0cf594

See more details on using hashes here.

File details

Details for the file hmi_rabbitmq-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: hmi_rabbitmq-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.3

File hashes

Hashes for hmi_rabbitmq-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 110a9464351296a30d9d7c440afe8aabe5c8628f286a5038c5cb73d19f7a6442
MD5 451763d11191d6fd6ab7b85b70f7882c
BLAKE2b-256 0a9661627279ea04430b578e2033f4c94ad86fb1105d8708d8ab3eccfe4c9a22

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page