-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Response Ops][Task Manager] Changing task manager schedule.interval
schema to string from duration
#204413
Conversation
schedule.interval
schema to string from duration
Pinging @elastic/response-ops (Team:ResponseOps) |
@@ -7,6 +7,26 @@ | |||
|
|||
import { schema } from '@kbn/config-schema'; | |||
|
|||
const SECONDS_REGEX = /^[1-9][0-9]*s$/; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use one of the functions from here, instead? x-pack/plugins/task_manager/server/lib/intervals.ts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in 7413a36
💚 Build Succeeded
Metrics [docs]
History
cc @ymao1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
💚 Build Succeeded
Metrics [docs]
History
cc @ymao1 |
Starting backport for target branches: 8.x |
…` schema to string from duration (elastic#204413) ## Summary Currently, when task manager schema changes are migrated down (which can occur during a release when there are multiple Kibana nodes running and they get updated one after another), we are running into this bug: elastic#204395 where the task `schedule.interval` gets mutated from expected values (like `60s`) to unallowed (but still valid for the schema) values (like `PT1M`). This changes the schema for `schedule.interval` to use a string with validation function. ## To verify 1. Run Kibana on `main` and create some rules that run frequently. 2. "Upgrade" to this PR branch and verify that rules continue to run. 3. "Downgrade" back to `main` and verify that rules continue to run. (cherry picked from commit ccdd662)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…le.interval` schema to string from duration (#204413) (#204669) # Backport This will backport the following commits from `main` to `8.x`: - [[Response Ops][Task Manager] Changing task manager `schedule.interval` schema to string from duration (#204413)](#204413) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Ying Mao","email":"ying.mao@elastic.co"},"sourceCommit":{"committedDate":"2024-12-17T22:41:20Z","message":"[Response Ops][Task Manager] Changing task manager `schedule.interval` schema to string from duration (#204413)\n\n## Summary\r\n\r\nCurrently, when task manager schema changes are migrated down (which can\r\noccur during a release when there are multiple Kibana nodes running and\r\nthey get updated one after another), we are running into this bug:\r\nhttps://github.com//issues/204395 where the task\r\n`schedule.interval` gets mutated from expected values (like `60s`) to\r\nunallowed (but still valid for the schema) values (like `PT1M`).\r\n\r\nThis changes the schema for `schedule.interval` to use a string with\r\nvalidation function.\r\n\r\n## To verify\r\n1. Run Kibana on `main` and create some rules that run frequently.\r\n2. \"Upgrade\" to this PR branch and verify that rules continue to run.\r\n3. \"Downgrade\" back to `main` and verify that rules continue to run.","sha":"ccdd662a053f9d02fe1ea04afe2bdd80827459c0","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Feature:Task Manager","Team:ResponseOps","v9.0.0","backport:prev-minor","v8.18.0"],"title":"[Response Ops][Task Manager] Changing task manager `schedule.interval` schema to string from duration","number":204413,"url":"https://github.com/elastic/kibana/pull/204413","mergeCommit":{"message":"[Response Ops][Task Manager] Changing task manager `schedule.interval` schema to string from duration (#204413)\n\n## Summary\r\n\r\nCurrently, when task manager schema changes are migrated down (which can\r\noccur during a release when there are multiple Kibana nodes running and\r\nthey get updated one after another), we are running into this bug:\r\nhttps://github.com//issues/204395 where the task\r\n`schedule.interval` gets mutated from expected values (like `60s`) to\r\nunallowed (but still valid for the schema) values (like `PT1M`).\r\n\r\nThis changes the schema for `schedule.interval` to use a string with\r\nvalidation function.\r\n\r\n## To verify\r\n1. Run Kibana on `main` and create some rules that run frequently.\r\n2. \"Upgrade\" to this PR branch and verify that rules continue to run.\r\n3. \"Downgrade\" back to `main` and verify that rules continue to run.","sha":"ccdd662a053f9d02fe1ea04afe2bdd80827459c0"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/204413","number":204413,"mergeCommit":{"message":"[Response Ops][Task Manager] Changing task manager `schedule.interval` schema to string from duration (#204413)\n\n## Summary\r\n\r\nCurrently, when task manager schema changes are migrated down (which can\r\noccur during a release when there are multiple Kibana nodes running and\r\nthey get updated one after another), we are running into this bug:\r\nhttps://github.com//issues/204395 where the task\r\n`schedule.interval` gets mutated from expected values (like `60s`) to\r\nunallowed (but still valid for the schema) values (like `PT1M`).\r\n\r\nThis changes the schema for `schedule.interval` to use a string with\r\nvalidation function.\r\n\r\n## To verify\r\n1. Run Kibana on `main` and create some rules that run frequently.\r\n2. \"Upgrade\" to this PR branch and verify that rules continue to run.\r\n3. \"Downgrade\" back to `main` and verify that rules continue to run.","sha":"ccdd662a053f9d02fe1ea04afe2bdd80827459c0"}},{"branch":"8.x","label":"v8.18.0","branchLabelMappingKey":"^v8.18.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Ying Mao <ying.mao@elastic.co>
…` schema to string from duration (elastic#204413) ## Summary Currently, when task manager schema changes are migrated down (which can occur during a release when there are multiple Kibana nodes running and they get updated one after another), we are running into this bug: elastic#204395 where the task `schedule.interval` gets mutated from expected values (like `60s`) to unallowed (but still valid for the schema) values (like `PT1M`). This changes the schema for `schedule.interval` to use a string with validation function. ## To verify 1. Run Kibana on `main` and create some rules that run frequently. 2. "Upgrade" to this PR branch and verify that rules continue to run. 3. "Downgrade" back to `main` and verify that rules continue to run.
Summary
Currently, when task manager schema changes are migrated down (which can occur during a release when there are multiple Kibana nodes running and they get updated one after another), we are running into this bug: #204395 where the task
schedule.interval
gets mutated from expected values (like60s
) to unallowed (but still valid for the schema) values (likePT1M
).This changes the schema for
schedule.interval
to use a string with validation function.To verify
main
and create some rules that run frequently.main
and verify that rules continue to run.