feat(region): add GOV/FedRAMP region support - #1866
Conversation
72c8866 to
c9635c0
Compare
- Accept both 'GOV' and 'FEDRAMP' as valid values for NEW_RELIC_REGION via env var, newrelic profile add --region, and config set - Bump newrelic-client-go to v2.91.0 which defines the GOV region with FedRAMP-compliant endpoints (gov-api, gov-infra-api, gov-insights- collector, gov-log-api, gov-metric-api) - Update error message to list both GOV and FEDRAMP - Add explicit GOV/FEDRAMP branch in platform_link_generator; falls back to one.newrelic.com since no public GOV platform hostname exists FEDRAMP is treated as an alias for GOV throughout: the Go client's Parse() normalises both to region.GOV ensuring consistent endpoint resolution regardless of which spelling the user provides.
c9635c0 to
38af3c6
Compare
Note on failing Windows E2E checksThe three failing checks ( Evidence: PR #1854 (an unrelated profile fix, open for weeks) has the exact same three Windows failures — #1854 Root cause: The Windows E2E tests install the infra agent via MSI on Our changes only touch:
None of these touch the Windows install path. All other checks (Linux infra, compile, lint, unit tests, integration tests) pass cleanly. Requesting reviewer override on the Windows checks. Happy to provide any additional evidence. |
|
good for a temporary addition; let's harden this in upcoming PRs |
Summary
GOVandFEDRAMPas valid values forNEW_RELIC_REGION— via environment variable,newrelic profile add --region, andnewrelic config setnewrelic-client-goto v2.91.0 which introduces theGOVregion with FedRAMP-compliant endpointsGOVandFEDRAMPGOV/FEDRAMPbranch inplatform_link_generator; falls back toone.newrelic.comsince no public GOV platform hostname existsFEDRAMPis a user-facing alias forGOV. Both flow throughnrRegion.Parse()which normalises either toregion.GOV, ensuring consistent FedRAMP-compliant endpoint selection regardless of spelling.Changes
go.modnewrelic-client-gov2.86.1 → v2.91.0 (drops local replace directive)internal/config/config.go"FEDRAMP"toStringInStringsallowed list (case-insensitive)internal/install/command.go"GOV"and"FEDRAMP"internal/profile/command.go--regionflag description includeFEDRAMPinternal/install/execution/platform_link_generator.goGOV/FEDRAMPcase with US fallback and commentEndpoint summary (from v2.91.0 Go client)
gov-api.newrelic.com/graphqlgov-infra-api.newrelic.com/v2gov-insights-collector.newrelic.com/v1gov-log-api.newrelic.com/log/v1gov-metric-api.newrelic.com/metric/v1gov-api.newrelic.com/v2Test plan
newrelic profile add --region GOV— accepted, stored asgovnewrelic profile add --region FEDRAMP— accepted (new), stored asfedrampNEW_RELIC_REGION=GOV newrelic install -n ebpf-agent-installer— all requests route togov-api.newrelic.comandgov-insights-collector.newrelic.com; install completes successfully on Ubuntu 22.04 EC2NEW_RELIC_REGION=FEDRAMPvia env var — accepted,Parse("fedramp")returnsregion.GOVinsights-collector403s with GOV license key; GOVinsights-collector200s — confirms correct cell routingKnown gaps (separate work items)
region=GOVtootlp.nr-data.net(US OTLP) instead ofgov-otlp.nr-data.net→ 403 on all OTLP exports. Fix is inenv.ccof the eBPF binary.open-install-library):infrastructure-agent-installerrecipe does not writefedramp: trueto/etc/newrelic-infra.ymlwhen the region is GOV. Without it the infra agent 401s against the US ingest endpoint.🤖 Generated with Claude Code