Skip to content

Fix IoP advisor integration: Kafka listener binding and engine rule packages#488

Merged
ehelms merged 3 commits intotheforeman:masterfrom
jeremylenz:fix-iop-advisor-engine-config
May 6, 2026
Merged

Fix IoP advisor integration: Kafka listener binding and engine rule packages#488
ehelms merged 3 commits intotheforeman:masterfrom
jeremylenz:fix-iop-advisor-engine-config

Conversation

@jeremylenz
Copy link
Copy Markdown
Contributor

Summary

  • Fix Kafka listener binding to all interfaces so connections survive container restarts
  • Add prodsec.rules and telemetry.rules.plugins to the engine package list so diagnostic rules are loaded and advisor receives findings

Details

Kafka listener fix (src/roles/iop_kafka/templates/kafka/kraft.j2): The previous config bound Kafka to the container hostname (iop-core-kafka:9092), which resolves to the container's IP. When the container restarts it gets a new IP, causing connection refused errors in the advisor service and other consumers. Binding to all interfaces (PLAINTEXT://:9092) avoids this.

Engine packages (src/roles/iop_engine/defaults/main.yaml): Without prodsec.rules and telemetry.rules.plugins, the engine only loads insights_kafka_service.rules which contains no diagnostic rules — only metadata. Advisor receives results with 0 reports on every upload.

Test plan

  • Deploy IoP with deploy-dev
  • Register a host with insights-client
  • Verify advisor service logs a non-zero report count
  • Verify Kafka connections survive an engine or advisor container restart

🤖 Generated with Claude Code

@jeremylenz jeremylenz force-pushed the fix-iop-advisor-engine-config branch from 98ee545 to 5e1de09 Compare May 4, 2026 21:32
Copy link
Copy Markdown

@vkrizan vkrizan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

More concerns deserve a commit each. 😁

jeremylenz and others added 2 commits May 5, 2026 11:12
Kafka was configured to bind to the container hostname (iop-core-kafka),
which resolves to the container's IP at startup. When the container
restarts it gets a new IP, causing connection refused errors in the
advisor service and other Kafka consumers.

Binding to all interfaces (PLAINTEXT://:9092) avoids this.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Without these packages, the engine only loads insights_kafka_service.rules
which contains no diagnostic rules — only a metadata emitter. Advisor
receives results with 0 reports on every upload.

Adding prodsec.rules and telemetry.rules.plugins gives the engine actual
rules to evaluate against uploaded archives.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@jeremylenz jeremylenz force-pushed the fix-iop-advisor-engine-config branch from 5e1de09 to 8f3bb0e Compare May 5, 2026 15:12
@jeremylenz
Copy link
Copy Markdown
Contributor Author

Split into 2 commits.

Packages like prodsec.rules and telemetry.rules.plugins only exist in
downstream Satellite engine images, not the community quay.io images.
Loading them from the community image causes the engine to crash on
startup with no log output.

Revert to the three base packages in defaults and introduce
iop_engine_extra_packages (default: []) as an extension point for
downstream deployments to add image-specific packages without modifying
the upstream role.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@ehelms ehelms merged commit 44c09ec into theforeman:master May 6, 2026
27 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants