Skip to content

NMS-19541: Minion: Investigate if its possible to move away from Confd#8498

Closed
mershad-manesh wants to merge 84 commits into
features/NMS-19406from
mem/NMS-19541-1.x
Closed

NMS-19541: Minion: Investigate if its possible to move away from Confd#8498
mershad-manesh wants to merge 84 commits into
features/NMS-19406from
mem/NMS-19541-1.x

Conversation

@mershad-manesh
Copy link
Copy Markdown
Contributor

All Contributors

External References

ssingiser and others added 20 commits March 27, 2026 13:45
Compute HWLwr/HWUpr confidence bounds in HWForecast from the
in-sample residuals; cap the horizon expansion at one seasonal
period so bounds don't fan open on long forecasts.

Surface forecast failures (no fit, all-NaN fit, zero-width bounds)
as a yellow warning banner above the graph.

Add a static legend below the graph mapping each color to its
meaning, and switch the HW Fit line to purple (#9d4edd) so it's
distinguishable from real-data lines that are typically blue.

Route filter parameters through a buildFilter() helper that always
coerces values to strings, fixing a t.split error caused by the
trendOrder integer leaking into the REST payload and making the
same class of bug impossible going forward.
HWForecastIT (Java): the existing canForecastValues test now
asserts that bounds collapse onto the fit on constant input
(sigma=0). New tests cover bounds widening with the horizon and
plateauing past the cap on Gaussian-noisy input, confidenceLevel=0
suppressing bound emission entirely, and insufficient samples
causing the filter to bail without emitting any forecast columns.

Jest: buildFilter coerces numeric/boolean values to strings,
preserves key order, and produces the right descriptor shape;
checkForecastWarning detects each failure mode (missing HWFit,
all-NaN fit, zero-width bounds) and returns null on healthy
forecasts and on configurations that intentionally omit bounds.
Add operation/deep-dive/performance-data-collection/forecasting.adoc
covering how to access the forecast page, the preset templates,
the colored overlays drawn, a brief Holt-Winters explanation, the
empirical Gaussian-residual approximation used for the confidence
bounds (with explicit framing that this differs from the canonical
Holt-Winters prediction interval), the warning banner conditions,
and the server-side filter pipeline. Register the page in nav.adoc.
Add docs/modules/reference/pages/performance-data-collection/collectors/xml-examples.adoc
with end-to-end worked examples for the XmlCollector. The first example
covers GitHub repository activity (stars, forks, watchers, open issues
and PRs) via the JSON handler. The page is structured so additional
examples can be added in the same shape.

Cross-link from the existing xml.adoc reference page and add a nav entry.
…ctors/xml-examples.adoc

Co-authored-by: Dino <dyancey@opennms.com>
…ctors/xml-examples.adoc

Co-authored-by: Dino <dyancey@opennms.com>
…ctors/xml-examples.adoc

Co-authored-by: Dino <dyancey@opennms.com>
…ctors/xml-examples.adoc

Co-authored-by: Dino <dyancey@opennms.com>
…ctors/xml.adoc

Co-authored-by: Dino <dyancey@opennms.com>
Add docs/modules/operation/pages/deep-dive/admin/automatic-cleanup.adoc
covering the four mechanisms that prune OpenNMS data over time: Alarmd
Drools rules, Vacuumd, the per-event auto-clean flag, and PostgreSQL
autovacuum. Documents default behaviors, where each is configured,
what does not get cleaned by default, and example Vacuumd extensions
for outage and notification cleanup.

Cross-link from housekeeping.adoc and add a nav entry under the
existing housekeeping page.
…ntation (#8483)

* NMS-16237: add support for RFC2348 "TFTP blksize" to the tftp implementation
…e-docs

Docs: XmlCollector configuration examples
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the Minion container configuration approach to move away from confd, shifting configuration to environment-variable interpolation and entrypoint-driven feature boot templating. It updates the smoke-test Minion container wiring accordingly and removes the confd template/rendering assets from the image build.

Changes:

  • Replace confd-templated Minion configuration with static etc/*.cfg files that use ${env:...} interpolation.
  • Update entrypoint.sh to generate/select featuresBoot.d/*.boot files from templates based on new env toggles (e.g., MINION_IPC, JAEGER_ENABLED).
  • Update smoke tests (MinionContainer) to configure Minion via env vars instead of mounting a generated minion-config.yaml.

Reviewed changes

Copilot reviewed 84 out of 85 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
smoke-test/src/main/java/org/opennms/smoketest/containers/MinionContainer.java Switch smoke-test Minion configuration to env vars (IPC strategy, broker URL, location/id, optional features).
opennms-container/minion/container-fs/etc/org.ops4j.pax.web.cfg New pax-web config using ${env:JETTY_*} interpolation.
opennms-container/minion/container-fs/etc/org.opennms.netmgt.trapd.cfg New trapd config using ${env:MINION_TRAPD_*} interpolation.
opennms-container/minion/container-fs/etc/org.opennms.netmgt.syslog.cfg New syslog config using ${env:MINION_SYSLOG_*} interpolation.
opennms-container/minion/container-fs/etc/org.opennms.minion.controller.cfg New Minion controller config (location/id/broker-url) via env interpolation.
opennms-container/minion/container-fs/etc/org.opennms.features.telemetry.listeners-udp-50002-nxos.cfg Add NXOS telemetry listener config with env-configurable port.
opennms-container/minion/container-fs/etc/org.opennms.features.telemetry.listeners-udp-50001-jti.cfg Add JTI telemetry listener config with env-configurable port.
opennms-container/minion/container-fs/etc/org.opennms.features.telemetry.listeners-single-port-flows.cfg Add single-port flows listener config with env-configurable port.
opennms-container/minion/container-fs/etc/org.opennms.features.minion.dominion.grpc.cfg Add Dominion gRPC client config using ${env:DOMINION_GRPC_*}.
opennms-container/minion/container-fs/etc/org.opennms.core.ipc.twin.kafka.cfg Add Kafka “twin” IPC config using ${env:KAFKA_TWIN_*}.
opennms-container/minion/container-fs/etc/org.opennms.core.ipc.sink.offheap.cfg Add empty/offheap sink config placeholder in container etc/.
opennms-container/minion/container-fs/etc/org.opennms.core.ipc.sink.kafka.cfg Add Kafka sink IPC config using ${env:KAFKA_SINK_*}.
opennms-container/minion/container-fs/etc/org.opennms.core.ipc.rpc.kafka.cfg Add Kafka RPC IPC config using ${env:KAFKA_RPC_*}.
opennms-container/minion/container-fs/etc/org.opennms.core.ipc.kafka.cfg Add Kafka IPC config using ${env:KAFKA_IPC_*}.
opennms-container/minion/container-fs/etc/org.opennms.core.ipc.grpc.client.cfg Add gRPC IPC client config using ${env:IPC_GRPC_*}.
opennms-container/minion/container-fs/etc/org.apache.karaf.shell.cfg Add Karaf shell SSH config using ${env:KARAF_SSH_*}.
opennms-container/minion/container-fs/etc/org.apache.karaf.management.cfg Replace confd template with env-interpolated Karaf JMX management config.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/kafka-twin.boot New boot template for Kafka twin feature selection.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/kafka-sink.boot New boot template for Kafka sink feature selection.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/kafka-rpc.boot New boot template for Kafka RPC feature selection.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/kafka-ipc.boot New boot template for Kafka IPC feature selection.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/jaeger.boot New boot template for enabling Jaeger tracing feature.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/grpc.boot New boot template for enabling gRPC IPC client feature.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/dominion-scv.boot New boot template for enabling Dominion SCV feature.
opennms-container/minion/container-fs/etc/featuresBoot.d/templates/disable-jms.boot New boot template for disabling JMS features when not used.
opennms-container/minion/container-fs/etc/custom.system.properties Add base custom.system.properties using ${env:OPENNMS_INSTANCE_ID} interpolation.
opennms-container/minion/container-fs/entrypoint.sh Remove confd execution; add feature-boot templating, diagnostics, and env-driven IPC config handling.
opennms-container/minion/container-fs/confd/templates/prom-jmx-exporter.yaml.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.ops4j.pax.web.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.netmgt.trapd.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.netmgt.syslog.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.minion.server-certificates.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.minion.process-env.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.minion.controller.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.features.minion.dominion.grpc.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.core.ipc.twin.kafka.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.core.ipc.sink.offheap.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.core.ipc.sink.kafka.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.core.ipc.rpc.kafka.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.core.ipc.kafka.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.opennms.core.ipc.grpc.client.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/org.apache.karaf.shell.cfg.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/kafka-twin.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/kafka-sink.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/kafka-rpc.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/kafka-ipc.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/jaeger.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/instance-id.properties.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/grpc.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/dominion-scv.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/disable-jms.boot.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/custom.system.properties.tmpl Remove confd template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/templates/confd-telemetry-feature.xml.tmpl Remove confd telemetry feature template (confd deprecation/removal).
opennms-container/minion/container-fs/confd/scripts/remove-if-empty Remove confd helper script.
opennms-container/minion/container-fs/confd/scripts/confd_lib.sh Remove confd helper library.
opennms-container/minion/container-fs/confd/directories Remove confd-managed directories list.
opennms-container/minion/container-fs/confd/confd.toml Remove confd configuration.
opennms-container/minion/container-fs/confd/conf.d/prom-jmx-exporter.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.ops4j.pax.web.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.netmgt.trapd.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.netmgt.syslog.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.minion.server-certificates.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.minion.process-env.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.minion.controller.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.features.minion.dominion.grpc.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.core.ipc.twin.kafka.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.core.ipc.sink.offheap.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.core.ipc.sink.kafka.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.core.ipc.rpc.kafka.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.core.ipc.kafka.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.opennms.core.ipc.grpc.client.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.apache.karaf.shell.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/org.apache.karaf.management.cfg.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/kafka-twin.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/kafka-sink.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/kafka-rpc.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/kafka-ipc.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/jaeger.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/instance-id.properties.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/grpc.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/dominion-scv.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/disable-jms.boot.toml Remove confd boot template mapping.
opennms-container/minion/container-fs/confd/conf.d/custom.system.properties.toml Remove confd template mapping.
opennms-container/minion/container-fs/confd/conf.d/confd-telemetry-feature.xml.toml Remove confd telemetry feature mapping.
opennms-container/minion/Dockerfile Install gettext (for envsubst), copy new etc/ overlay, and remove confd assets from the image build.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread opennms-container/minion/Dockerfile Outdated
Comment thread opennms-container/minion/container-fs/entrypoint.sh Outdated
Comment on lines +1 to +3
syslog.listen.interface = ${env:MINION_SYSLOG_LISTEN_INTERFACE:-0.0.0.0}
syslog.listen.port = ${env:MINION_SYSLOG_LISTEN_PORT:-1514}
syslog.useAddressFromVarbind = true No newline at end of file
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

syslog.useAddressFromVarbind doesn’t appear to be a valid/consumed syslogd setting (no references found outside this file). Leaving an unused property here is confusing and may imply functionality that doesn’t exist. Consider removing it, or replace it with the correct syslogd property if there was an intended behavior change.

Copilot uses AI. Check for mistakes.
Comment on lines 381 to 384
configure() {
initConfig
applyConfd
applyOpennmsPropertiesD
applyOverlayConfig
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

Now that confd-based regeneration is removed, applyOpennmsPropertiesD will append to etc/custom.system.properties on every container start, causing duplicate entries and unbounded file growth across restarts. Consider making this step idempotent (e.g., rebuild custom.system.properties from a pristine base each run, or write the aggregated output to a separate generated file and include it).

Copilot uses AI. Check for mistakes.
marshallmassengill and others added 3 commits May 1, 2026 14:53
….adoc


Removing pgsql autovacuum.

Co-authored-by: Dino <dyancey@opennms.com>
….adoc


Removing

Co-authored-by: Dino <dyancey@opennms.com>
….adoc


Removing

Co-authored-by: Dino <dyancey@opennms.com>
christianpape and others added 25 commits May 12, 2026 08:32
* Update whatsnew doc and breaking changes

* fix review comments

* Update reference to event conf doc

* some more updates to docs
…ing correctly (#8517)

* NMS-19795: Fix password gate client side complexity check regex

* smoke tests
…vals (#8507) (#8519)

* DCB: Emit configChanged event when stored config differs from new backup (backport)
The previous diagram_implementation.png predates the current stack
illustration. opennms-full-stack.png is the refreshed asset that ships
alongside it in the same images directory; switch the image:: macro
to reference it so the rendered landing page matches the current
artwork.
No remaining references after the landing-page image swap; deleting
the file so the asset tree only carries the diagram that's actually
rendered.
@github-actions github-actions Bot added the docs label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants