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.