Commit Graph
162 Commits
Author SHA1 Message Date
Victor Lyuboslavsky 426de4e5a8 Loadtest: make MySQL max open conns tunable (#44802) (#48472)
Replace the hardcoded FLEET_MYSQL_MAX_OPEN_CONNS=10 in the loadtest
terraform (both the root ecs.tf stack and the infra/ stack) with a
mysql_max_open_conns variable, applied to both the writer and
read-replica pools.

Also document per-tier connection pool sizing in the AWS reference
architecture: 20 for R-class instances (25k+ hosts), 10 for the smaller
T-class instances (5k/10k hosts) whose low default max_connections
(~90/135) leaves little headroom.

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44802



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a configurable setting for MySQL connection limits in the load
testing environment.
* Connection settings now use a shared input value instead of fixed
defaults, making it easier to tune database load behavior across
container types.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-04 06:48:22 +01:00
Victor Lyuboslavsky ed95684ae6 Add Windows MDM load test plan for 100k devices (#48259)
Document the scenarios for load testing Windows MDM at scale.

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44188
2026-06-29 16:26:00 +01:00
Victor Lyuboslavsky 67fce02a29 Updated TF to use OTEL deployment.environment best practice (#47651)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #47573



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated observability and telemetry configuration for improved
deployment monitoring.
* Enhanced infrastructure environment variables including logging,
database connection management, and Fleet service settings.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-16 10:18:39 +01:00
Jorge Falcon 0611f2b6de Bumping the loadtest/osquery-perf module version to utilize increased ulimits (#47471)
- Bump osquery-perf module version to v1.2.2
  - Increases ulimits from 9999 to 999999

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated performance testing infrastructure dependency to the latest
patch version.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-12 11:31:36 -04:00
Tim Lee 60cd943643 Add Redis 8.x/Valkey CI test matrix and optional Valkey loadtests (#47180) 2026-06-12 07:26:22 -06:00
6d67565b14 Update Go to 1.26.4 (#47158)
Resolves #47159.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [x] QA'd all new/changed functionality manually

## fleetd/orbit/Fleet Desktop

- [x] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [x] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [x] Verified that fleetd runs on macOS, Linux and Windows
- [x] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Updated the Go toolchain to 1.26.4 across modules, Docker build
stages, and build/configuration records to standardize the toolchain
version used for builds and tooling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Victor Lyuboslavsky <2685025+getvictor@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-09 12:55:10 -03:00
Victor Lyuboslavsky 408764c953 Fixes several loadtest issues (#47006)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35405

- fixes broken osquery_perf
- lower max connection lifetime so that loadtest can spread load across
readers faster (we often cause issues and need to recover)
- fixed broken signoz `terraform destroy`
- added README.md for pmm

# Checklist for submitter

## Testing

- [x] QA'd all new/changed functionality manually


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Improved load-testing image build process for more reliable binary
creation.
* Reduced MySQL connection pool timeouts to recycle connections more
frequently.
* Added robust, idempotent infrastructure cleanup steps during teardown
to avoid resource finalizer hangs and release cloud load balancers and
volumes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-08 16:23:00 +01:00
Luke Heath b5a9fa71cd Update loadtest ALB TLS policies and fix Trivy PR scanning (#46194) 2026-05-27 12:53:13 -05:00
Luke Heath e2df64b843 Update loadtest ALB TLS policy to TLS 1.3 (#46191) 2026-05-26 09:21:41 -05:00
Konstantin Sykulev 6dfcee310a adding PMM to loadtest environment (#45567)
Taking local PMM setup from
https://github.com/fleetdm/fleet/tree/main/tools/percona/pmm and
adapting it to be an optional component to spin up for load tests.

## Testing

- [x] QA'd all new/changed functionality manually



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added an internal PMM UI URL and admin-password secret for easier
access.
* Enabled internal HTTPS on the load balancer and exposed ALB/RDS
integration information for workplace-scoped routing and DNS.

* **Chores**
  * Deploy PMM on ECS Fargate behind the internal load balancer.
* Automatically store PMM admin password and register MySQL monitoring
using stored credentials.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45567?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-19 13:26:13 -05:00
Luke Heath f4b6b45997 Bump Go to 1.26.3 to clear stdlib CVEs (#45277) 2026-05-12 17:19:16 -05:00
Luke Heath 2f35b44321 Build mdmproxy and osquery-perf images by module tag (#45274) 2026-05-12 13:19:56 -05:00
Jorge Falcon 1318418444 Load test - Workflow guardrails and osquery perf updates (#45044)
- Prevents `terraform destroy` from running against load test
infrastructure, for a given workspace, if an identical osquery perf
workspace exists.
- Adds a check to the osquery perf workflow, to fail fast, if the
specified load test infrastructure workspace is not detected.
- Adds ability for users to configure the osquery perf (increment -
`input.loadtest_containers_increment`) batch size that get deployed to
an environment during every loop. Default: 4.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added a configurable load-test container increment input (default: 4)
to control scaling increments.

* **Improvements**
* Prevented destructive runs when an existing infra workspace matches
the requested name.
  * Tightened workspace-existence checks to require exact name matching.

* **Chores**
* Default load-test increment reduced from 8 to 4 and input validated as
a positive integer.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-08 15:04:44 -04:00
Jorge Falcon 66b2908042 Load test - Enable standard performance insights (#44694)
- Enable `standard` RDS database performance insights

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Chores**
* Enhanced database monitoring capabilities by enabling Database
Insights for load testing infrastructure.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-04 16:23:38 -04:00
Jorge Falcon 1c95f5c886 Load test terraform fixes (#44678)
- Disable performance insights
- Allow redis instance count >=1
- Properly set ecs_cluster logging config path
- Targeted apply with auto approve for pre-creating fleet and execution
roles

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Enhanced ECS cluster logging with CloudWatch integration and extended
log retention to 365 days.
* Adjusted RDS monitoring configuration and disabled performance
insights for operational optimization.
* Reduced minimum Redis instance requirement from 3 to 1 for greater
deployment flexibility.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-04 13:59:01 -05:00
Jorge Falcon 473fbffff5 Terraform module updates (#43543) 2026-04-29 17:18:40 -05:00
Sharon Katz 6032c137e5 Bump Alpine base image to 3.23.4 to resolve openssl/musl/zlib CVEs (#43671) (#44097)
Resolves #43671.

Bumps the Alpine base image from 3.23.3 to 3.23.4 in the Dockerfiles
that produce published images, picking up patched openssl, musl, and
zlib packages. Follows the same pattern as #38977.

### CVEs resolved
- HIGH: CVE-2026-28388, CVE-2026-28389, CVE-2026-28390, CVE-2026-31790,
CVE-2026-2673, CVE-2026-40200
- MEDIUM: CVE-2026-27171, CVE-2026-6042, CVE-2026-22184

### Test plan
- CI image build passes.
- Trivy/ECR scan on the resulting fleetdm/fleet image confirms the nine
listed CVEs are gone.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated Docker base images to Alpine 3.23.4 across infrastructure and
deployment components for improved stability and security.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-23 23:15:53 -03:00
Lucas Manuel Rodriguez 682202444c Update go to 1.26.2 and update tooling to update it (#43771)
Golang 1.26.2 has been released. It fixes some CVEs:
https://github.com/golang/go/issues?q=milestone%3AGo1.26.2+label%3ACherryPickApproved

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Updated Go toolchain to 1.26.2 across the repository and build
configs.
  * Updated Docker build images to use Go 1.26.2.
* Expanded the set of tracked modules for the Go version update so
additional module files are included in automated updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-20 13:40:57 -03:00
Jorge Falcon 75f79dc866 Loadtest osquery perf workflow wording and enroll.sh remainder updates (#43762)
- Updates wording in `.github/workflows/loadtest-osquery-perf.yml` 
  - `4098` -> `4096`
- Removes: `(should be a multiple of 8, if setting
loadtest_containers_starting_index)`
- Updates `infrastructure/loadtesting/terraform/osquery_perf/enroll.sh`
to handle values that are not multiples of 8. If the value is not a
multiple of 8, logic has been added to apply the remainder.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Documentation**
* Updated load testing workflow configuration input descriptions for
improved clarity of parameters and their usage examples.

* **Bug Fixes**
* Fixed container count allocation logic in the load testing process to
ensure the final target count is always properly applied, even when
using increment values that don't divide evenly into the specified total
range.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-20 12:01:23 -04:00
Jorge Falcon 34cb7ab6d1 Loadtest internal alb logging and osquery-perf scaling updates (#42581)
- Configures internal alb to log to the same bucket as the public alb
- Adds support for osquery-perf task size (cpu/memory) configuration
- Updates defaults for osquery-perf extra_flags
- Updates default enroll.sh loop sleep_time from 60s -> 300s
2026-03-31 11:15:07 -04:00
Jorge Falcon 2d09916f60 Fix loadtest/infra docker_image resource (#42537)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves # N/A

- Resolves an issue that prevents some locally pulled docker images from
being pushed to ECR.
2026-03-27 01:17:37 -04:00
Jorge Falcon 42b02483d4 Dogfood & Loadtest - Updating mysql engine version to 8.0.mysql_aurora.3.10.3 (#42120)
- Bumps Dogfood and Loadtest environment Aurora MySQL engine verison
from `8.0.mysql_aurora.3.08.2` -> `8.0.mysql_aurora.3.10.3`
2026-03-19 21:05:24 -05:00
Jorge Falcon 115e00decd Configure software_installers defaults in Loadtest terraform (#41207)
- Adds software_installers {} configuration to loadtest terraform
- Modifies template/cloudfront.tf.disabled to use pkcs#8 format for the
private key
2026-03-19 20:17:54 -04:00
Victor Lyuboslavsky ecee908157 Bumping signoz resources for 100K hosts loadtest. (#41961) 2026-03-19 12:49:36 -05:00
Victor Lyuboslavsky fbc5b9d8b6 Updated go to 1.26.1 (#42027)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41749

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
2026-03-19 07:01:00 -05:00
Jorge Falcon 45c4e47fab Dogfood and loadtest - mysql require secure transport on (#40211)
- Adds require_secure_transport for mysql connections to the db_cluster
parameter group for dogfood and loadtest environments.

```
    db_cluster_parameters = {
      require_secure_transport = "ON"
    }
```
2026-02-20 15:57:10 -05:00
Robert FairburnandJorge Falcon dac2ef18f0 Ensure terraform docker compatibility with github actions (#39988)
Co-authored-by: Jorge Falcon <22119513+BCTBB@users.noreply.github.com>
2026-02-17 15:09:50 -05:00
Robert Fairburn 9f60dadae0 Allow gzip responses (#39700) 2026-02-12 10:24:49 -06:00
Jorge Falcon 502351dcde Add FLEET_MYSQL_READ_REPLICA_TLS_CONFIG environment variable to dogfood and loadtesting (#39692)
- Adds `FLEET_MYSQL_READ_REPLICA_TLS_CONFIG = "custom"` to dogfood and
loadtesting environments.
2026-02-11 13:05:11 -05:00
Ian Littman d4906dd3d6 Update to Go 1.25.7 (#39584)
- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
2026-02-09 17:47:51 -06:00
Victor Lyuboslavsky 0ae909fedf Updated loadtest OTEL config to match dogfood (#38991)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36494

I tried this with loadtest.
2026-01-29 10:18:02 -06:00
Ian Littman ec06952245 Bump Alpine (to 3.23.3), Go (to 1.25.6) to resolve vulns (#38973) 2026-01-28 18:51:15 -06:00
Jorge Falcon 7ac24d8752 Loadtest (new) - MDM Updates (#37420)
- Adds `FLEET_DEV_MDM_APPLE_DISABLE_PUSH = 1`
- Adds `FLEET_DEV_MDM_APPLE_DISABLE_DEVICE_INFO_CERT_VERIFY = 1`
- Updates osquery_perf/README.md, providing an example fetching and
using mdm scep challenge secret.
2025-12-17 17:55:13 -05:00
Ian Littman 62755cbd82 Bump Go to 1.25.5, Alpine to 3.23.0 where relevant, bump Trivy to current version (#36848)
Fixes vulns reported in
https://github.com/fleetdm/fleet/actions/runs/19999992703. We'll
definitely want to at least cherry-pick this.
2025-12-07 20:04:14 -06:00
Victor Lyuboslavsky 6ab79dd5a7 Add more software to loadtest (#35756)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34677 and #35932

Adding ~450K software to the loadtest, including scripts to add more
software in the future.
Software is held in a `software.sql` file, which is used to create a
sqlite DB during osquery perf run/deployment.

# Checklist for submitter

## Testing

- [x] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added support for loading software data from an external SQLite
database via a new `--software_db_path` command-line flag for more
realistic simulation scenarios.
* Added import and SQL generation tools to build and manage custom
software libraries.

* **Documentation**
* Added comprehensive README with setup instructions, tool usage, and
end-to-end workflow guidance for the software library.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-21 10:42:19 -06:00
Jorge Falcon e0be06fa76 Loadtesting - osquery deployment session timeout increase (#36097) 2025-11-20 21:08:52 -05:00
Jorge Falcon fb5c90ad9c Dogfood and loadtest module updates (#35990)
Updates `module.main` to `1.18.3` (dogfood)
- Adds `memory_tracking_target_value = 70` (dogfood and loadtesting)
- Adds `cpu_tracking_target_value = 70`  (dogfood and loadtesting)

Updates `module.migrations` to `2.2.1` (dogfood)
- Adds `max_capacity`

Updates `module.logging_alb` to `1.6.2` (dogfood)

Updates `module.monitoring` to `1.8.0` (dogfood)
- Adds `log_monitoring` configuration
2025-11-19 22:04:17 -05:00
Victor Lyuboslavsky f8ce47ec88 Grouping OTEL exceptions by type. (#35794)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34677 

Changing OTEL set up to group exceptions by type, which is an
OTEL/industry best practice.
2025-11-19 10:24:19 -06:00
George Karr ca5d02d471 Adding changes for Fleet v4.76.1 (#35760) 2025-11-18 14:35:31 -06:00
Victor Lyuboslavsky 3029a3ac44 Adjusting OTEL resources for high throughput. (#35878) 2025-11-18 06:53:49 -06:00
Jorge Falcon 0b0c67a5d5 Loadtest - osquery_perf scaling fixes (#35798)
- Removes timestamp from osquery_perf image
- Adds `default: 0` to loadtest osquery_perf workflow, `variable:
loadtest_containers_starting_index`
- Adds `variable: sleep_time` to loadtest osquery_perf workflow
- Adds osquery_perf docker repository in ECR
- Adds support for `sleep_time` to `enroll.sh`
- Updates terraform variables to enforce `git_branch` or `git_tag` for
osquery_perf
2025-11-17 10:21:18 -05:00
Robert Fairburn caf9e83968 Configure osquery-perf memory and cpu (#35786) 2025-11-14 14:35:42 -06:00
Jorge Falcon 776cd67647 Loadtest - Firehose logging removal, adds filesystem logging, and module updates (#35735)
- Removes `firehose` logging from loadtesting environment
- Sets `filesystem` logging in loadtesting environment
- Updates fleet image to 4.76.0 as the default value
- Updates `migrations` and `logging_alb` modules with latest versions
2025-11-13 19:16:00 -05:00
Jorge Falcon e2085bfd86 Loadtesting documentation - Removes (Coming Soon) from README (#35649)
- Removes `(Coming Soon)` from
`infrastructure/loadtesting/infra/README.md` with regards to deployment
via Github Actions
- Moves Signoz steps to `.header.md` to preserve steps in generated
`README.md`
2025-11-12 16:54:14 -05:00
Jorge FalconandRobert Fairburn 0471b8ce19 Loadtest - osquery_perf - Removal of fleet_image requirement (#35365)
- Adds support for `enroll.sh`, to deploy osquery_perf in batches
- Merges variables `tag` and `git_branch` into `git_tag_branch`. Only
one tag or git_branch should be specified.
  - Still used for osquery_perf to check out the correct tag/branch.
- Removes fleet_image requirement for cutting osquery_perf images

---------

Co-authored-by: Robert Fairburn <8029478+rfairburn@users.noreply.github.com>
2025-11-10 16:16:20 -05:00
Victor Lyuboslavsky 73501e5755 Infra changes after latest loadtest (#35083)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34500

Terraform changes after my latest loadtest.

VPC consolidation: updated (and deployed) shared VPC so that Signoz
backend can now use it

  - Removed eks-vpc/ directory
  - Moved VPC management to shared/vpc.tf
  - Updated shared/init.tf to reflect VPC changes

  Infra improvements

- infra/internal_alb.tf - changed suffix from -internal to -int since I
hit max 32 characters issue

OTEL

- OTEL Collector configuration overrides for production stability
2025-11-03 11:02:15 -06:00
Victor Lyuboslavsky 072ee68eda Updating to Go 1.25.3 (#35082) 2025-11-03 09:47:07 -06:00
Jorge Falcon 6ea9185c1c Loadtesting - osquery_perf docker image build fixes (#34901)
- Bumps docker provider from 2.16.0 to 3.6.x
- Moves builds from `docker_registry_image` to new `docker_image`
resource
2025-10-29 08:33:46 -04:00
Robert Fairburn 1fedabe7a8 Update alpine base image to latest (#34864)
Resolves openssl:3.3.3/CVE-2025-9230 in base images.
2025-10-28 11:24:05 -05:00
Robert FairburnandJorge Falcon 30c4798ec6 Switch git providers for loadtesting tf (#34180)
untested end-to-end but works as a replacement for plans and doesn't
require a local arm64 build to work.

Co-authored-by: Jorge Falcon <22119513+BCTBB@users.noreply.github.com>
2025-10-23 14:53:13 -04:00