Argo Event Bus
Deploys an EventBus resource as a part of the Argo Events architecture.
The EventBus is a set of NATS nodes that temporarily store inbound events from EventSources before distributing them via Sensors.
Usage
A few notes for the proper usage of an EventBus:
An EventBus is a namespaced resource, and you can have at most one per namespace.
For every namespace where you want to deploy EventSources and Sensors, you must have an EventBus deployed.
Providers
The following providers are needed by this module:
kubectl (2.1.3)
kubernetes (2.34.0)
pf (0.0.7)
random (3.6.3)
Required Inputs
The following input variables are required:
namespace
Description: The namespace to deploy the EventBus into.
Type: string
Optional Inputs
The following input variables are optional (have default values):
arm_nodes_enabled
Description: Whether the database pods can be scheduled on arm64 nodes
Type: bool
Default: true
burstable_nodes_enabled
Description: Whether the database pods can be scheduled on burstable nodes
Type: bool
Default: true
cert_manager_namespace
Description: The namespace where cert-manager is deployed.
Type: string
Default: "cert-manager"
controller_nodes_enabled
Description: Whether to allow pods to schedule on EKS Node Group nodes (controller nodes)
Type: bool
Default: true
fsync_interval_seconds
Description: Interval in seconds at which data will be synced to disk on each node. Setting this to 0 will force an fsync after each message (which will lower overall throughput dramatically).
Type: number
Default: 10
helm_version
Description: The version of the bitnami/nats helm chart to use
Type: string
Default: "8.5.1"
instance_type_anti_affinity_required
Description: Whether to enable anti-affinity to prevent pods from being scheduled on the same instance type. Defaults to true iff sla_target >= 2.
Type: bool
Default: null
log_level
Description: The log level for the NATS pods. Must be one of: info, debug, trace
Type: string
Default: "info"
max_connections
Description: The maximum number of client connections to the NATS cluster
Type: number
Default: 64000
max_control_line_kb
Description: The maximum length of a protocol line including combined length of subject and queue group (in KB).
Type: number
Default: 4
max_outstanding_catchup_mb
Description: The maximum in-flight bytes for stream catch-up.
Type: number
Default: 128
max_payload_mb
Description: The maximum size of a message payload (in MB).
Type: number
Default: 8
minimum_memory_mb
Description: The minimum memory in MB to use for the NATS nodes
Type: number
Default: 100
monitoring_enabled
Description: Whether to allow monitoring CRs to be deployed in the namespace
Type: bool
Default: false
node_image_cached_enabled
Description: Whether to add the container images to the node image cache for faster startup times
Type: bool
Default: true
panfactum_scheduler_enabled
Description: Whether to use the Panfactum pod scheduler with enhanced bin-packing
Type: bool
Default: true
persistence_backups_enabled
Description: Whether to enable backups of the NATS durable storage.
Type: bool
Default: true
persistence_initial_storage_gb
Description: How many GB to initially allocate for persistent storage (will grow automatically as needed). Can only be set on cluster creation.
Type: number
Default: 1
persistence_storage_class_name
Description: The StorageClass to use for the PVs used to store filesystem data. Can only be set on cluster creation.
Type: string
Default: "ebs-standard-retained"
persistence_storage_increase_gb
Description: The amount of GB to increase storage by if free space drops below the threshold
Type: number
Default: 1
persistence_storage_increase_threshold_percent
Description: Dropping below this percent of free storage will trigger an automatic increase in storage size
Type: number
Default: 20
persistence_storage_limit_gb
Description: The maximum number of gigabytes of storage to provision for each NATS node
Type: number
Default: null
ping_interval_seconds
Description: Interval in seconds at which pings are sent to clients, leaf nodes, and routes.
Type: number
Default: 20
pull_through_cache_enabled
Description: Whether to use the ECR pull through cache for the deployed images
Type: bool
Default: false
spot_nodes_enabled
Description: Whether the database pods can be scheduled on spot nodes
Type: bool
Default: true
vault_credential_lifetime_hours
Description: The lifetime of database credentials generated by Vault
Type: number
Default: 16
vault_internal_pki_backend_mount_path
Description: The mount path of the PKI backend for internal certificates.
Type: string
Default: "pki/internal"
vault_internal_url
Description: The internal URL of the Vault cluster.
Type: string
Default: "http://vault-active.vault.svc.cluster.local:8200"
voluntary_disruption_window_cron_schedule
Description: The times when disruption windows should start
Type: string
Default: "0 4 * * *"
voluntary_disruption_window_enabled
Description: Whether to confine voluntary disruptions of pods in this module to specific time windows
Type: bool
Default: false
voluntary_disruption_window_seconds
Description: The length of the disruption window in seconds
Type: number
Default: 3600
voluntary_disruptions_enabled
Description: Whether to enable voluntary disruptions of pods in this module.
Type: bool
Default: true
vpa_enabled
Description: Whether the VPA resources should be enabled
Type: bool
Default: true
write_deadline_seconds
Description: The maximum number of seconds the server will block when writing messages to consumers.
Type: number
Default: 55
Outputs
No outputs.