How ibm-messaging/mq-container works
This repository runs IBM MQ in a container. The main workflow initializes and starts a queue manager, then container probes report its health, readiness, and startup state. A developer entry point adds developer configuration before handing off to the main server. Separate capabilities include Kubernetes metadata and ready-replica support, authentication and TLS, HA, metrics, tracing, and log handling. The graph follows documented behavior and visible imports/calls; several capabilities are represented at their source directory because their implementation was not sampled.
Main entry points: runmqserver/main.go MQ server startup · server.go Metadata sidecar · runmqdevserver/main.go Developer setup · simpleauth.go Developer simple auth
Components 20
MQ runtime
- MQ server startup
cmd/runmqserver/main.go - Queue manager lifecycle
cmd/runmqserver - Developer setup
cmd/runmqdevserver/main.go - MQ health probe
cmd/chkmqhealthy/main.go - MQ readiness probe
cmd/chkmqready/main.go - MQ startup probe
cmd/chkmqstarted/main.go
Cluster coordination
- Metadata sidecar
cmd/runmetadataserver/server.go - Kubernetes API client
cmd/runmetadataserver/kubeapi/client.go - Metadata probes
cmd/chkmetadatahealthy/main.go - Metadata readiness check
cmd/chkmetadataready/main.go - High availability
internal/ha
Security and configuration
- TLS configuration
internal/tls/tls.go - Key stores
internal/keystore/keystore.go - Security utilities
internal/securityutility/securityutility.go
Observability
- Prometheus metrics
internal/metrics - Probe logging
internal/probes/probesocket.go - Log rotation
pkg/logrotation/logrotation.go
Authentication
- Developer simple auth
internal/simpleauth/simpleauth.go - MQ simple-auth exit
authservice/mqsimpleauth/src/mqsimpleauth.c
Other components
- Container operator
Connections 22
- Container operator → MQ server startup: runs container
README.md - Container operator → Developer setup: selects developer image
README.md - Developer setup → MQ server startup: execs
cmd/runmqdevserver/main.go - MQ server startup → Queue manager lifecycle: starts
- MQ server startup → High availability: configures
cmd/runmqserver/main.go - MQ server startup → Prometheus metrics: configures
cmd/runmqserver/main.go - MQ server startup → TLS configuration: configures
cmd/runmqserver/main.go - MQ server startup → Developer simple auth: configures
cmd/runmqserver/main.go - MQ server startup → Probe logging: starts logging
cmd/runmqserver/main.go - Developer setup → Developer simple auth: checks credentials
cmd/runmqdevserver/main.go - MQ health probe → Probe logging: logs probe
cmd/chkmqhealthy/main.go - MQ readiness probe → Metadata sidecar: sends status
cmd/chkmqready/main.go - MQ startup probe → Metadata sidecar: checks status
cmd/chkmqstarted/main.go - MQ startup probe → Probe logging: uses probe logging
cmd/chkmqstarted/main.go - Metadata sidecar → Kubernetes API client: uses client
cmd/runmetadataserver/server.go - Metadata sidecar → Container operator: serves health and status
cmd/runmetadataserver/server.go - Metadata probes → Metadata sidecar: checks liveness
cmd/chkmetadatahealthy/main.go - Metadata readiness check → Metadata sidecar: checks readiness
cmd/chkmetadataready/main.go - TLS configuration → Key stores: creates stores
internal/tls/tls.go - Developer simple auth → Security utilities: uses utilities
internal/simpleauth/simpleauth.go - MQ simple-auth exit → MQ server startup: provides auth exit
- MQ server startup → Log rotation: configures logging