Rabbitmq
Example: rabbitmq resource using a Kubernetes StatefulSet
This example configures a
RabbitMQ - type AMQP
Resource Definition using Kubernetes StatefulSet
.
Requirements
Name | Version |
---|---|
terraform | >= 1.3.0 |
humanitec | ~> 1.0 |
Providers
Name | Version |
---|---|
humanitec | ~> 1.0 |
Modules
Name | Source | Version |
---|---|---|
rabbitmq_basic | ../../humanitec-resource-defs/rabbitmq/basic | n/a |
Resources
Name | Type |
---|---|
humanitec_resource_definition_criteria.rabbitmq_basic | resource |
Inputs
Name | Description | Type | Default | Required |
---|---|---|---|---|
prefix | Prefix of the created resources | string |
"hum-rp-rabbitmq-ex-" |
no |
Deploy and use this example
To deploy this resource definition, run these commands below:
git clone https://github.com/humanitec-architecture/resource-packs-in-cluster
cd resource-packs-in-cluster/examples/rabbitmq/
humctl login
humctl config set org YOUR-ORG
terraform init
terraform plan
terraform apply
The created Resource Definition can be used in your Score file like illustrated below:
apiVersion: score.dev/v1b1
metadata:
name: my-workload
containers:
my-container:
image: nginx:latest # this container image is just used as an example, it's not talking to rabbitmq.
variables:
RABBIT_USER: ${resources.my-rabbit.username}
RABBIT_PASSWORD: ${resources.my-rabbit.password}
RABBIT_VHOST: ${resources.my-rabbit.vhost}
resources:
my-rabbit:
type: amqp
This Score file when deployed to Humanitec will provision the rabbitmq
message broker and inject the outputs in the associated environment variable.
Here is how to deploy this Score file, for example to the rabbit-example
Application and development
Environment:
humctl create app rabbit-example
humctl score deploy \
-f score.yaml \
--app rabbit-example \
--env development
main.tf
(
view on GitHub
)
:
module "rabbitmq_basic" {
source = "github.com/humanitec-architecture/resource-packs-in-cluster?ref=v2024-11-05//humanitec-resource-defs/rabbitmq/basic"
prefix = var.prefix
}
resource "humanitec_resource_definition_criteria" "rabbitmq_basic" {
resource_definition_id = module.rabbitmq_basic.id
class = "default"
force_delete = true
}
providers.tf
(
view on GitHub
)
:
terraform {
required_providers {
humanitec = {
source = "humanitec/humanitec"
version = "~> 1.0"
}
}
required_version = ">= 1.3.0"
}
provider "humanitec" {}
terraform.tfvars.example
(
view on GitHub
)
:
# Prefix of the created resources
prefix = "hum-rp-rabbitmq-ex-"
variables.tf
(
view on GitHub
)
:
variable "prefix" {
description = "Prefix of the created resources"
type = string
default = "hum-rp-rabbitmq-ex-"
}