Probes configuration and override support#610
Probes configuration and override support#610fmount wants to merge 2 commits intoopenstack-k8s-operators:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: fmount The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2813b48c394243ce9a2e8ef372592913 ❌ openstack-k8s-operators-content-provider FAILURE in 9m 19s |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2896e982a2c54980ac9db89bd06ae45a ❌ openstack-k8s-operators-content-provider FAILURE in 11m 52s |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/fcdd543dbfb848aab77b2a7d913569b8 ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 03m 39s |
| } | ||
|
|
||
| // GetDefaultProbesAPI - | ||
| func GetDefaultProbesAPI(apiTimeout int) probes.OverrideSpec { |
There was a problem hiding this comment.
@stuggi I'd like to gather your feedback before moving forward. The main point here is about computing some ProbeDefaults for the services based on a meaningful parameter.
apiTimeout makes sense for cinderAPI and because is configurable, it might help to perform some tuning on the Default values. This way we can reduce the usage of the probes override interface that still can be evaluated case by case.
The other function, that is pretty much identical in terms of logic, is based on a const parameter that is not exposed.
The idea of using the const parameter is based on the fact that we provides DefaultProbes based on defaults parameters [1]. In this case it results in relaxing the probes compared to what we had in the past, but not allowing to tune them w/o using the probes interface we introduced in lib-common for this purpose.
[1] https://opendev.org/openstack/cinder/src/branch/master/cinder/common/config.py#L121
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/b2cd3b0a467e469493dfd89037ba89ad ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 01m 18s |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/28e584974ac74471995b2d48929d570d ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 14m 03s |
|
recheck |
Add ProbeOverrides interface and CreateProbeSet() function from lib-common for unified probe management across Cinder services. Enable probe customization through CRD overrides and remove code duplication. Updates all services (API, Scheduler, Volume, Backup) to use the new pattern with proper scheme handling and consistent defaults. In addition, webhook validation for probes have been introduced. Signed-off-by: Francesco Pantano <fpantano@redhat.com>
Replace static probe timeouts with dynamic scaling based on APITimeout parameter. Creates separate probe configurations for API services (HTTP endpoints) and RPC workers (internal services) with appropriate scaling factors. API services use full APITimeout scaling while RPC workers get proportional timeouts, preventing premature pod kills during high load scenarios. Signed-off-by: Francesco Pantano <fpantano@redhat.com>
Add
ProbeOverridesinterface andCreateProbeSet()function from lib-common forunified probe managementacrossCinderservices. Enable probe customization throughCRDoverrides and remove code duplication. Updates all services (API,Scheduler,Volume,Backup) to use the new pattern with proper scheme handling and consistent defaults.In addition, webhook validation for probes have been introduced.
Depends-On: openstack-k8s-operators/lib-common#673