-
Notifications
You must be signed in to change notification settings - Fork 1.8k
OSDOCS-10893: Enabling the dynamic configuration manager #86283
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
Conversation
@DCChadwick: This pull request references OSDOCS-10893 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target either version "4.19." or "openshift-4.19.", but it targets "openshift-4.17" instead. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
@DCChadwick: This pull request references OSDOCS-10893 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target either version "4.19." or "openshift-4.19.", but it targets "openshift-4.17" instead. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
🤖 Wed Jan 08 19:31:37 - Prow CI generated the docs preview: |
2f08402
to
ff536ca
Compare
@DCChadwick: This pull request references OSDOCS-10893 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target either version "4.19." or "openshift-4.19.", but it targets "openshift-4.17" instead. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
//Enabling the dynamic configuration manager | ||
include::modules/nw-ne-dynamic-config-manager.adoc[leveloffset=+1] | ||
|
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.
I don't think that there is the best place for "Enabling DCM" but "Configuring ingress cluster traffic" seems to be a better place than the the route configuration.
|
||
Some template routers, like HAProxy, use a dynamic configuration manager to propagate route and endpoint changes through a dynamic API. This approach allows the underlying router to adapt to changes efficiently and ensures that the system can scale and adjust as needed. The HAProxy manager uses this dynamic API to modify the operational state of HAProxy backends. Endpoint changes, such as scaling and node evictions, are managed by provisioning each backend with a pool of dynamic servers. The size of this dynamic servers pool is controlled by the max-dynamic-servers option or the ROUTER_MAX_DYNAMIC_SERVERS environment variable. | ||
|
||
.Procedure |
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.
The whole procedure seems to be coming from the old docs of OCP 3.11. The dynamic configuration manager is now enabled by default but only when TechPreview featureset is used. So, it's a techpreview feature.
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.
After a discussion with the team. We think that may be a release notes update similar to this one would be enough.
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.
Thanks! I'm happy to do that. While working on this, I noticed that there seems to be a lot of HAProxy and router environment variable information that appears in the 3.x documentation but not in the 4.x documentation. Would creating a 4.x document similar to the following be something we should consider for the 4.19 release: https://docs.openshift.com/container-platform/3.11/install_config/router/default_haproxy_router.html
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.
While working on this, I noticed that there seems to be a lot of HAProxy and router environment variable information that appears in the 3.x documentation but not in the 4.x documentation. Would creating a 4.x document similar to the following be something we should consider for the 4.19 release: https://docs.openshift.com/container-platform/3.11/install_config/router/default_haproxy_router.html
No, those were the variables available in 3.11. We consider DCM as an implementation detail in 4.18, without any supported configuration option.
/assign |
/assign |
ff536ca
to
9f60bd5
Compare
|
||
toc::[] | ||
|
||
By default, the router uses a dynamic configuration manager to propagate endpoint changes using dynamic HAPRoxy API. This approach allows the router to adapt to changes efficiently reducing the number of reloads needed and hence the memory footprint. The dynamic configuration manager uses the HAProxy dynamic API to modify the operational state of HAProxy backends. Endpoint changes, such as scaling up and down, are managed by provisioning each backend with a pool of dynamic servers. |
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.
🤖 [error] RedHat.TermsErrors: Use 'therefore' rather than 'hence'. For more information, see RedHat.TermsErrors.
@DCChadwick: all tests passed! Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
@alebedev87 @Thealisyed - PTAL at the PR for the release note related to this issue: #86792 |
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.
Well written doc, easy to follow and understand @DCChadwick!
|
||
. Set the Commit Interval. | ||
+ | ||
Define the interval at which the router commits changes using the CommitInterval option. The default value is set to 60 * 60 seconds (1 hour). |
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.
Should we add a note on the impact of changing the commit interval? Correct me if I am wrong, shorter intervals might increase resource usage while longer ones could delay changes.
Not sure if this is worth mentioning @alebedev87 what do you think?
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.
The commit interval set to very low values (seconds, minutes) may cancel out all advantages of the dynamic configuration manager. Because the commit leads to the router reload which may increase the memory consumption as you mentioned. In OCP 4.18 release we don't expose any knob (even unsupported) to change the commit interval. So, its value remains an opinionated engineering decision.
@DCChadwick : I think that #86792 is sufficient for this release. The procedure described in this PR is not supported. |
Version(s): 4.18
Issue: OSDOCS-10893
Link to docs preview: https://86283--ocpdocs-pr.netlify.app/openshift-enterprise/latest/networking/routes/route-configuration.html#nw-ne-dynamic-config-manager_route-configuration
QE review:
Additional information: