Conversation
99fa9fe to
2cd8a0e
Compare
There was a problem hiding this comment.
Are we duplicating the logic to query FC api here and in .github/workflows/scripts/fleet_control_api.sh? Should we consider just calling the script from on-host's e2e rust code? (Or the other way around if we exposed it as some sort of command)
There was a problem hiding this comment.
Hmm If I'm between calling a shell script from Rust code or calling Rust code from the GH Actions I think I'll go with the second alternative. I'll check how to do that.
|
|
||
| # Use input fleet_id if provided, otherwise use default | ||
| # Fleet `AC-FC E2E tests (linux)` on staging using FC's `Test Automation` account. | ||
| FLEET_ID="${{ inputs.fleet_id || 'MTIyMTA0NzV8TkdFUHxGTEVFVHwwMTlkOGNkOC0xNTc1LTdjZjAtYjBlNi02ZThlYzM2YjAyODU' }}" |
There was a problem hiding this comment.
Do we need the || thing here? Isn't the field default value handling it already?
There was a problem hiding this comment.
Not for the scheduled case I think, but might be a leftover from an earlier format of the workflow, let me check.
| - name: Upload e2e result summary | ||
| if: always() | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | ||
| with: | ||
| name: e2e-result-linux-fleet-control-joint | ||
| path: e2e-result-*-linux-fleet-control-joint.txt | ||
| if-no-files-found: warn |
There was a problem hiding this comment.
I think this is for canaries to report the AC's e2e summary, do we need it here? Are we using the uploaded result anywhere?
There was a problem hiding this comment.
That's what I wanted to check with you regarding the scripts that end up pushing something to Slack. I'll ping you.
| on-host-fleet-control-tests-check: | ||
| name: OnHost Fleet Control E2E Check | ||
| if: always() | ||
| runs-on: ubuntu-latest | ||
| needs: [on-host-linux-fleet-control-e2e] | ||
| steps: | ||
| - name: Check if needed jobs succeeded | ||
| uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe | ||
| with: | ||
| jobs: ${{ toJSON(needs) }} |
There was a problem hiding this comment.
Do we need the all-green check here? We don't need to deal with GitHub required checks for the periodic / manual-dispatch workflow, do we?
There was a problem hiding this comment.
Yeah you're right, this is C&P leftovers. Removing!
There was a problem hiding this comment.
Should we add some sort of comment to easily distinguish these e2e from AC's regular e2e? After all the purpose is pretty different, isn't it?
There was a problem hiding this comment.
🤔 Maybe it is already covered in the k8s-e2e/fleet-control-joint-tests README, but it seems pretty k8s-specific.
There was a problem hiding this comment.
Hmm yeah I can add a header comment. I had a README.md in the test scenario so I'll reuse the wording here.
accb3b0 to
a444989
Compare
fa7d814 to
ffc9581
Compare
d0da580 to
cd64721
Compare
| write(config_path, updated_content); | ||
| } | ||
|
|
||
| #[cfg(target_os = "windows")] |
There was a problem hiding this comment.
Why wasn't this before? Is clippy complaining now?
Same for the other new annotations.
There was a problem hiding this comment.
I modified the tests for all platforms so I got back to conditional compilation. It's optional though so if you prefer to not have it juts let me know and I can remove it!
There was a problem hiding this comment.
Just removed them as it will be easier to work without them. Thanks for the heads up!
also add logic for running the fleet control API trigger (and tests) on all supported platforms
ecc63d2 to
a108e74
Compare
|
Check this message for an example of alerts from these tests! |
Add Fleet Control E2E Tests for Linux and Kubernetes
This PR adds automated end-to-end testing for Fleet Control integration with Agent Control on both Linux hosts and Kubernetes clusters.
Overview
These tests validate the integration by:
The tests are ran in our available GitHub larger runners.
What's New
Linux Host Tests (
fleet_control_host_linux_e2e.yml)test/e2e-runnerKubernetes Tests (
fleet_control_k8s_e2e.yml)fleet_control_api.sh)Technical Details
Fleet Control API Integration:
https://fleet-management-e2e-test-runner.staging-service.newrelic.comnewrelic-auth-rsKey Differences from Standard K8s E2E Tests:
newrelic-integration-e2e-actione2e-*.ymlspec file (external API orchestration vs NRQL validation)Testing
Default Fleets (Test Automation account, staging):
Linux:
MTIyMTA0NzV8TkdFUHxGTEVFVHwwMTlkOGNkOC0xNTc1LTdjZjAtYjBlNi02ZThlYzM2YjAyODU(inactive for now)K8s:
MTIyMTA0NzV8TkdFUHxGTEVFVHwwMTliZTAzZC03MDYwLTcxMDctOTUwYS04YTFiODc3YjJiN2QObservability
Results reported to NR as AgentControlE2ETest events:
Scenario: fleet-control
Environment: linux-fleet-control or k8s-fleet-control
Account: "Agent Control Canaries (staging)"