Releases: newrelic/newrelic-agent-control
1.3.1
What's Changed
- test: add infra-agent onhost e2e (NR-480737) by @gsanchezgavier in #1829
- fix: nrdot onhost agent by @gsanchezgavier in #1832
- style: uniform target family conditional compilation by @DavSanchez in #1831
- feat(on-hots-cli): support empty proxy on config generation by @sigilioso in #1834
Full Changelog: 1.3.0...1.3.1
1.3.0
What's Changed
- fix(deps): update rust crate syn to 2.0.108 by @renovate[bot] in #1795
- fix(ci/cd): tag packages in a deterministic way by @paologallinaharbur in #1796
- chore: remove Limited Preview from package description by @DavSanchez in #1797
- fix(config_migrate): logs were disabled by @DavSanchez in #1792
- chore(deps): lock file maintenance by @renovate[bot] in #1800
- chore: stop packaging newrelic-authr-rs-cli for linux [NR-475245] by @sigilioso in #1798
- test: local repo onhost e2e by @gsanchezgavier in #1794
- chore: move recipes branch to main by @sigilioso in #1801
- chore(deps): update dependency newrelic/infrastructure-agent to v1.71.0 by @renovate[bot] in #1803
- feat: onhost supervisor remove condvar approach by @danielorihuela in #1782
- chore(deps): update rust crate assert_cmd to 2.1.0 by @renovate[bot] in #1808
- fix: isolate build package artifacts by @gsanchezgavier in #1810
- chore(deps): update rust crate clap to 4.5.51 by @renovate[bot] in #1812
- test: fix tls timeout host e2e by @gsanchezgavier in #1814
- feat: ansible puppet and chef e2e tests by @alvarocabanas in #1819
- fix(deps): update rust crate console-subscriber to 0.5.0 by @renovate[bot] in #1818
- chore(deps): update rust crate konst to 0.4.3 by @renovate[bot] in #1822
- chore(deps): update rust crate schemars to 1.0.5 by @renovate[bot] in #1823
- feat: add new host_monitoring cli creating infra-agent config by @alvarocabanas in #1806
- chore: release 1.3.0 by @alvarocabanas in #1827
Full Changelog: 1.2.0...1.3.0
1.2.0
What's Changed
- fix(canaries): do not append content to service conf file by @DavSanchez in #1757
- chore(deps): update rust crate regex to 1.12.1 by @renovate[bot] in #1758
- chore(deps): lock file maintenance by @renovate[bot] in #1759
- chore: remove outdated comment by @danielorihuela in #1760
- chore(deps): update rust crate regex to 1.12.2 by @renovate[bot] in #1762
- chore(deps): update rust crate reqwest to 0.12.24 by @renovate[bot] in #1763
- chore(deps): update rust crate clap to 4.5.49 by @renovate[bot] in #1764
- chore: simplify Agent Control error by @sigilioso in #1755
- chore(deps): update dependency go to v1.25.3 by @renovate[bot] in #1765
- feat: type-driven agent rendering by @DavSanchez in #1749
- chore(deps): update dependency newrelic/newrelic-auth-rs to v0.0.11 by @renovate[bot] in #1768
- fix(deps): update rust crate nr-auth to v0.0.11 by @renovate[bot] in #1769
- refactor: build specific cli for k8s [NR-475245] by @sigilioso in #1766
- feat: add on-host cli scaffolding [NR-475245] by @sigilioso in #1770
- fix(deps): update rust crate tokio to 1.48.0 by @renovate[bot] in #1771
- fix(deps): update rust crate cfg-if to 1.0.4 by @renovate[bot] in #1772
- fix(comment): the label is not useless by @paologallinaharbur in #1774
- chore(deps): update rust crate httpmock to 0.8.2 by @renovate[bot] in #1778
- fix(deps): update rust crate rustls to 0.23.33 by @renovate[bot] in #1780
- fix(deps): update rust crate syn to 2.0.107 by @renovate[bot] in #1783
- chore(deps): lock file maintenance by @renovate[bot] in #1784
- chore(deps): update rust crate clap to 4.5.50 by @renovate[bot] in #1786
- chore(deps): update dependency newrelic/infrastructure-agent to v1.70.0 by @renovate[bot] in #1787
- Feat/windows get host name by @paologallinaharbur in #1781
- feat(windows): add basic unit tests by @paologallinaharbur in #1788
- feat: add config generator to host cli [NR-475245] by @sigilioso in #1779
- fix(deps): update rust crate rustls to 0.23.34 by @renovate[bot] in #1791
- chore(delete): restart_exit_codes feature by @paologallinaharbur in #1790
- feat: package onhost agent-control-cli [NR-475245] by @sigilioso in #1789
- chore(deps): update dependency newrelic/newrelic-auth-rs to v0.1.1 by @renovate[bot] in #1775
- chore: bump agent-control version by @sigilioso in #1793
Full Changelog: 1.1.0...1.2.0
1.1.0
Breaking changes (Host-only)
Warning
This breaking change only impacts host setups. If you use Agent Control on Kubernetes there's no breaking change.
Host-based agent type definitions
The variable types file and map[string]file have been removed and the agent types for the Infrastructure Agent and the OpenTelemetry Collector have been updated to account for this change.
Now the two agent types use yaml and map[string]yaml (a newly introduced variable type) respectively for the variables that used the removed types. This means that previous configurations that relied on these variables having the content as a string might stop working properly if you update Agent Control for on-host.
Migrating
Most probably, you will only need to remove the | at the beginning of the config variable value (which delimited a YAML block string) to pass pure YAML content instead. See the examples below for the changes:
Example of migrating configs for the Infrastructure Agent
Old config
Note how the three variables (config_agent, config_integrations, config_logging) contain strings.
config_agent: |+
enable_process_metrics: false
status_server_enabled: true
status_server_port: 18003
license_key: {{NEW_RELIC_LICENSE_KEY}}
config_integrations:
docker-config.yml: |
integrations:
- name: nri-docker
when:
feature: docker_enabled
file_exists: /var/run/docker.sock
interval: 15s
config_logging:
discovered.yml: ""
logging.yml: |
logs:
- name: alternatives.log
file: /var/log/alternatives.log
attributes:
logtype: linux_alternatives
- name: cloud-init.log
file: /var/log/cloud-init.log
attributes:
logtype: linux_cloud-initNew config
Note how the three variables (config_agent, config_integrations, config_logging) now use pure YAML content.
NOTE: If you use the special syntax for interpolating environment variables on the Infrastructure Agent config you will have to quote it or the YAML format will break. The example below exposes how to do so.
config_agent:
enable_process_metrics: false
status_server_enabled: true
status_server_port: 18003
license_key: "{{NEW_RELIC_LICENSE_KEY}}" # Note the quoting!
config_integrations:
docker-config.yml:
integrations:
- name: nri-docker
when:
feature: docker_enabled
file_exists: /var/run/docker.sock
interval: 15s
config_logging:
discovered.yml: {}
logging.yml:
logs:
- name: alternatives.log
file: /var/log/alternatives.log
attributes:
logtype: linux_alternatives
- name: cloud-init.log
file: /var/log/cloud-init.log
attributes:
logtype: linux_cloud-initDiff
-config_agent: |+
+config_agent:
enable_process_metrics: false
status_server_enabled: true
status_server_port: 18003
- license_key: {{NEW_RELIC_LICENSE_KEY}}
+ license_key: "{{NEW_RELIC_LICENSE_KEY}}" # Note the quoting!
config_integrations:
- docker-config.yml: |
+ docker-config.yml:
integrations:
- name: nri-docker
when:
feature: docker_enabled
file_exists: /var/run/docker.sock
interval: 15s
config_logging:
- discovered.yml: ""
- logging.yml: |
+ discovered.yml: {}
+ logging.yml:
logs:
- name: alternatives.log
file: /var/log/alternatives.log
attributes:
logtype: linux_alternatives
- name: cloud-init.log
file: /var/log/cloud-init.log
attributes:
logtype: linux_cloud-initExample of migrating configs for the New Relic Distribution for the OpenTelemetry Collector
Old config
Note the variable config contains a string.
config: |
# The following environment variables require manual modification:
# - NEW_RELIC_LICENSE_KEY: New Relic ingest key.
# If the collector is not installed through a package manager, the following
# environment variables need to be set:
# - NEW_RELIC_MEMORY_LIMIT_MIB: Maximum amount of memory to be used. (default: 100)
# - OTEL_EXPORTER_OTLP_ENDPOINT: New Relic OTLP endpoint to export metrics to (see: https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/)
# Keep host monitoring configuration in sync with: https://github.com/newrelic/newrelic-opentelemetry-examples/blob/main/other-examples/collector/host-monitoring/k8s/collector.yaml
exporters:
logging:
otlphttp:
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT}
headers:
api-key: ${NEW_RELIC_LICENSE_KEY}New config
Note how the variable config now uses pure YAML content.
config:
# The following environment variables require manual modification:
# - NEW_RELIC_LICENSE_KEY: New Relic ingest key.
# If the collector is not installed through a package manager, the following
# environment variables need to be set:
# - NEW_RELIC_MEMORY_LIMIT_MIB: Maximum amount of memory to be used. (default: 100)
# - OTEL_EXPORTER_OTLP_ENDPOINT: New Relic OTLP endpoint to export metrics to (see: https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/)
# Keep host monitoring configuration in sync with: https://github.com/newrelic/newrelic-opentelemetry-examples/blob/main/other-examples/collector/host-monitoring/k8s/collector.yaml
exporters:
logging:
otlphttp:
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT}
headers:
api-key: ${NEW_RELIC_LICENSE_KEY}Diff
-config: |
+config:
# The following environment variables require manual modification:
# - NEW_RELIC_LICENSE_KEY: New Relic ingest key.
# If the collector is not installed through a package manager, the following
# environment variables need to be set:
# - OTEL_EXPORTER_OTLP_ENDPOINT: New Relic OTLP endpoint to export metrics to (see: https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/)
# Keep host monitoring configuration in sync with: https://github.com/newrelic/newrelic-opentelemetry-examples/blob/main/other-examples/collector/host-monitoring/k8s/collector.yaml
exporters:
logging:
otlphttp:
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT}
headers:
api-key: ${NEW_RELIC_LICENSE_KEY}The configuration templates have been updated in the Fleet Control UI guiding new configurations to use the updated formats.
Rationale
The general usage of these variables (rendering the string contents by writing to the file system and getting the resulting path) is superseded by the addition of a filesystem field for an agent type's on_host deployment that defines what filesystem entries (i.e. directories with files) to create. To support typical use cases, the variable type map[string]yaml has been introduced. See the filesystem section in INTEGRATING_AGENTS.md for details.
What's Changed
- test: add default image tags to k8s e2e by @gsanchezgavier in #1717
- feat: add public key url to examples by @danielorihuela in #1710
- chore(license): updated by @paologallinaharbur in #1722
- docs: capitalize Agent Control in README.md by @DavSanchez in #1721
control/pull/1723 - fix(e2e): add pub key url by @gsanchezgavier in #1734
- feat: report cd chart version in effective config by @danielorihuela in #1731
- chore: disable remote updates for e2e by default [NR-469778] by @sigilioso in #1735
- feat: improve wrong version error message by @danielorihuela in #1733
- feat: cleanup err messages [NR-369541] by @sigilioso in #1736
- fix: add more logs to http client by @vjripoll in #1712
- docs: update by @danielorihuela in #1740
- feat: directory support, map[string]yaml var type, migration by @DavSanchez in #1685
- feat(config-migrate): couple to infra-agent agent type, simplify by @DavSanchez in #1640
- chore: remove certificate validator by @gsanchezgavier in #1730
- fix: validate if agent-id collides with release-name by @sigilioso in #1742
- fix: correct variable ame for Flux weekly tests by @alvarocabanas in #1720
- test: run k8s integration test in parallel by @gsanchezgavier in #1747
- fix: infra config value quoting by @DavSanchez in #1746
- chore: rename NRDOT agent type by @DavSanchez in #1745
- refactor: remove file vartypes and ConfigurationPersister b...
1.0.0
What's Changed
- feat: on host filesystem setup by @DavSanchez in #1610
- chore: fix repository endpoint on pre-release by @gsanchezgavier in #1646
- style: rename filesystem path to relative_path by @DavSanchez in #1648
- style: rename sub-agent autogenerated dir namespaced variable by @DavSanchez in #1647
- fix(tests): default value for fake-server healthiness by @sigilioso in #1654
- feat(test): extend tools to easily support multiple executables by @sigilioso in #1607
- feat(signature): change default endpoint by @paologallinaharbur in #1679
- refactor(signatures): add abstraction to support new implementation [NR-462129] by @sigilioso in #1684
- feat: support signature-algorithms in verifier by @sigilioso in #1686
#1689 - feat: rename agent-control chart to agent-control-bootstrap by @alvarocabanas in #1680
- feat(validator): first implementation by @paologallinaharbur in #1687
- chore(signature): simplify verifier by @paologallinaharbur in #1692
- chore(regex): remove broken regex by @paologallinaharbur in #1694
- feat: change error message when executable fails to start by @danielorihuela in #1641
- feat: add public key signature validation (NR-462127) by @gsanchezgavier in #1695
- feat: update signature on OpAMP integration tests by @sigilioso in #1693
- fix: onhost canaries by @alvarocabanas in #1688
- feat: improve signature logs and errors by @sigilioso in #1700
- feat: remove duplicate logs by @gsanchezgavier in #1701
- feat: support initial-delay for k8s version checker [NR-465311] by @sigilioso in #1702
- fix: align remote config digest signature by @paologallinaharbur in #1704
- fix: transform payload to sha256 digest only for public key validator by @DavSanchez in #1711
- fix: revise memoryResidentSizeBytes onhost alert threshold by @alvarocabanas in #1713
- feat: support multiple configs (NR-424837) by @gsanchezgavier in #1708
- fix(tests): typo in config and e2e tests by @paologallinaharbur in #1714
- chore(1.0.0): update release version by @paologallinaharbur in #1718
Full Changelog: 0.49.0...1.0.0
0.49.0
What's Changed
- ci: group required jobs, add
alls-greenby @DavSanchez in #1590 - feat(logs): support json formatter [NR-444439] by @sigilioso in #1589
- chore(docs): udapate configuration docs [NR-444502] by @sigilioso in #1596
- test: improve k8s e2e troubleshooting logs by @gsanchezgavier in #1594
- chore(tiltfiles): quote feature branch by @sigilioso in #1597
- fix(deps): update rust crate x509-parser to 0.18.0 by @renovate[bot] in #1601
- fix(deps): update rust crate config to v0.15.15 by @renovate[bot] in #1600
- chore(deps): update rust crate tracing-subscriber to v0.3.20 [security] by @renovate[bot] in #1599
- chore(deps): update dependency newrelic/infrastructure-agent to v1.67.3 by @renovate[bot] in #1603
- test(flux-upgrade): check cd-chart-version is updated by @sigilioso in #1605
- docs: ac remote update by @danielorihuela in #1595
- chore(deps): update rust crate clap to v4.5.47 by @renovate[bot] in #1608
- feat: add ebpf on_host deployment agent type (NR-438912) by @gsanchezgavier in #1604
- chore: remove unused code by @gsanchezgavier in #1614
- fix: enum size issues with
Box, bump Rust version by @DavSanchez in #1616 - chore(logs): improve log messages [NR-457551] by @sigilioso in #1613
- chore(refactor): simplify agent-control command by @sigilioso in #1617
- refactor: type-safe sub-agent ID by @DavSanchez in #1618
- fix(deps): update rust crate ctrlc to v3.5.0 by @renovate[bot] in #1622
- chore(deps): lock file maintenance by @renovate[bot] in #1624
- docs: add error tips by @danielorihuela in #1621
- chore(unix): explicity targeting os family in code by @paologallinaharbur in #1628
- chore: use new fleets for onhost and k8s e2e by @sigilioso in #1627
- test(onhost e2e): run e2e locally (NR-438913) by @gsanchezgavier in #1625
- chore(deps): bump k8s related dependencies by @sigilioso in #1630
- feat: dynamic version check by @danielorihuela in #1611
- chore(deps): update rust crate chrono to v0.4.42 by @renovate[bot] in #1629
- fix: delete unused urls for embedded packages by @vjripoll in #1609
- fix(test): fix flux upgrade flaky test by @sigilioso in #1633
- test: add onhost eBPF e2e test (NR-438913) by @gsanchezgavier in #1631
- Nr 438909 multi binary health by @alvarocabanas in #1615
- chore(deps): update rust crate tempfile to v3.22.0 by @renovate[bot] in #1635
- fix(test): fix ebpf chart version for k8s e2e by @sigilioso in #1637
- feat(windows): build step by @paologallinaharbur in #1632
- chore(deps): update rust crate rcgen to v0.14.4 by @renovate[bot] in #1638
- chore(hostname): align implementation by @paologallinaharbur in #1639
- feat(permissions): remove arg by @paologallinaharbur in #1634
- chore(deps): update dependency helm/helm to v3.19.0 by @renovate[bot] in #1644
- chore(testingEnv): saving resources by @paologallinaharbur in #1643
- fix: remove support for None backoff policy by @sigilioso in #1642
- feat: check version ebpf on host by @gsanchezgavier in #1645
Full Changelog: 0.48.0...0.49.0
0.48.0
What's Changed
- feat: do not run Flux version checker if remote updates are disabled by @DavSanchez in #1586
- chore(deps): update rust crate clap to v4.5.46 by @renovate[bot] in #1587
- test: int test feature branch by @gsanchezgavier in #1585
- chore: make tiltfiles point master by @danielorihuela in #1588
- feat: add new healthcheck for flux by @vjripoll in #1519
- fix(test): order embedded registry items before adding them by @DavSanchez in #1592
- test: print install job logs by @gsanchezgavier in #1591
- chore: prepare 0.48.0 by @DavSanchez in #1593
Full Changelog: 0.47.0...0.48.0
0.47.0
What's Changed
- fix(deps): update rust crate syn to v2.0.105 by @renovate[bot] in #1550
- chore(deps): update dependency helm/helm to v3.18.5 by @renovate[bot] in #1551
- chore(deps): update dependency newrelic/nrdot-collector-releases to v1.3.0 by @renovate[bot] in #1552
- fix(deps): update rust crate async-trait to v0.1.89 by @renovate[bot] in #1554
- fix(deps): update rust crate syn to v2.0.106 by @renovate[bot] in #1555
- chore(deps): update rust crate thiserror to v2.0.15 by @renovate[bot] in #1556
- feat(ci/cd): showing all logs by @paologallinaharbur in #1559
- chore(deps): lock file maintenance by @renovate[bot] in #1558
- refactor: rework
AgentIDtype by @DavSanchez in #1561 - chore(deps): update rust crate serde_json to v1.0.143 by @renovate[bot] in #1564
- feat(systemIdentity): embrace chart changes by @paologallinaharbur in #1538
- fix(proxy): some values were forgotten by @paologallinaharbur in #1565
- chore: adapt chart values to new structure by @sigilioso in #1560
- chore(deps): update rust crate thiserror to v2.0.16 by @renovate[bot] in #1569
- chore(deps): update rust crate tempfile to v3.21.0 by @renovate[bot] in #1568
- fix(deps): update rust crate cfg-if to v1.0.3 by @renovate[bot] in #1567
- chore(deps): update dependency helm/helm to v3.18.6 by @renovate[bot] in #1566
- fix(ci/cd): enable back signature validation by @paologallinaharbur in #1570
- feat: add e2e tests to the Nightly testing the latest flux version by @alvarocabanas in #1517
- chore(SubAgentsStatus): reduce boilerplate by @paologallinaharbur in #1571
- fix: wrong override value by @DavSanchez in #1573
- feat: add Agent Control CD version reporter by @DavSanchez in #1563
- chore(deps): lock file maintenance by @renovate[bot] in #1579
- chore: make errors lowercase by @danielorihuela in #1576
- fix(ac-updater): avoid fetching resources when update is not needed [NR-453803] by @sigilioso in #1580
- build: use cargo-zigbuild by @DavSanchez in #1511
- build: migrate config to GoReleaser v2 by @DavSanchez in #1533
- feat(laod_test): adding script by @paologallinaharbur in #1581
- chore: remove unused submod config by @gsanchezgavier in #1582
- feat: make flux release name configurable by @danielorihuela in #1562
- feat: allow multiple executables by agent-type by @alvarocabanas in #1572
- feat: make deployment release name configurable by @danielorihuela in #1577
- test: make feature branch configurable (NR-448582) by @gsanchezgavier in #1583
- chore: bump ac version by @danielorihuela in #1584
Full Changelog: 0.46.0...0.47.0
0.46.0
What's Changed
- feat: add flags to enable or disable remote updater in #1494
- fix(ci/cd): ignore pod readiness in #1500
- fix: agent-control-cd values in proxy test in #1503
- refactor: env vars as secrets provider in #1480
- refactor(ac-cli): generalize installer structures in #1496
- refactor: secrets variables in #1505
- feat: add kubectl and helm to AC CLI container image in #1509
- test: add custom repo k8s e2e test (NR-436897) in #1488
- fix: agent control container binary version in #1513
- feat: improve proxy test coverage in #1492
- test: simplify on-host e2e condition in #1521
- feat: review helm release options leaving only the required in #1522
- feat(ac-cli): install Flux HelmRelease in #1501
- chore: automate ac cli tools bump (NR-447489) in #1528
- feat: add flux updater in #1495
- chore: fix renovate regex path in #1529
- feat(cli): remove cd resources command in #1536
- fix(on-host): download NRDOT config in #1541
Dependency bumps and upkeep
- fix(deps): update rust crate rustls to v0.23.31 in #1498
- chore(deps): update rust crate serde_json to v1.0.142 in #1506
- fix(deps): update rust crate tokio to v1.47.1 in #1508
- chore(deps): update rust crate fake to v4.4.0 in #1516
- chore(config): migrate renovate config in #1518
- chore(deps): update dependency helm/helm to v3.18.4 in #1531
- chore(deps): update dependency newrelic/infrastructure-agent to v1.66.1 in #1530
- chore(deps): update rust crate glob to v0.3.3 in #1532
- test(k8s): flux self-update harness (NR-436895) in #1512
- chore(deps): update rust crate thiserror to v2.0.14 in #1535
- chore(deps): bump dependencies in #1537
- test: adjust when k8s e2e run in #1527
- chore(deps): update rust crate reqwest to v0.12.23 in #1540
- chore(deps): update rust crate clap to v4.5.45 in #1542
- fix(deps): update rust crate config to v0.15.14 in #1543
- chore(renovate): enable lockFileMaintenance in #1545
Full Changelog: 0.44.0...0.46.0
0.45.0
What's Changed
- feat: add flags to enable or disable remote updater by @alvarocabanas in #1494
- fix: unread
K8sACUpdaterstruct fields by @DavSanchez in #1497 - fix(deps): update rust crate rustls to v0.23.31 by @renovate[bot] in #1498
- chore(deps): update rust crate clap to v4.5.42 by @renovate[bot] in #1499
- fix(ci/cd): ignore pod readiness by @paologallinaharbur in #1500
- fix: agent-control-cd values in proxy test by @alvarocabanas in #1503
- refactor: env vars as secrets provider by @danielorihuela in #1480
- fix: temporarily comment proxy tests on pipelines by @alvarocabanas in #1504
- refactor(ac-cli): generalize installer structures by @DavSanchez in #1496
- chore(deps): update rust crate serde_json to v1.0.142 by @renovate[bot] in #1506
- refactor: secrets variables by @danielorihuela in #1505
- fix(deps): update rust crate tokio to v1.47.1 by @renovate[bot] in #1508
- feat: add kubectl and helm to AC CLI container image by @DavSanchez in #1509
- ci: fix command interpolation caused by backquotes (e.g.
helm) in PR title lint by @DavSanchez in #1510 - chore(deps): update dependency newrelic/infrastructure-agent to v1.65.5 by @renovate[bot] in #1514
- test: add custom repo k8s e2e test (NR-436897) by @gsanchezgavier in #1488
- fix: agent control container binary version by @gsanchezgavier in #1513
- chore: bump AC crate version by @DavSanchez in #1515
Full Changelog: 0.44.0...0.45.0