Skip to content
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

bugfix: prepare yurthub server tls config panic #457

Merged
merged 1 commit into from
Sep 9, 2021

Conversation

rambohe-ch
Copy link
Member

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

/kind bug

What this PR does / why we need it:

  • bug:
    if yurthub re-startup when network between cloud and edge disconnected, a panic will happen for preparing server tls config. and the panic like as following:

image

  • reason:
    yurthub will use healthy server address and certificate under /var/lib/yurthub/pki dir to create rest.Config for https server. the code is here: https://github.com/openyurtio/openyurt/blob/master/pkg/yurthub/kubernetes/rest/config.go#L83-113
    and when cloud-edge network breaks down, healthy server will become true, so rest.Config will be nil, then panic happened.

  • solution:
    we only need to prepare for rest.Config, and not need to connect remote server, so healthy server is not a requirement, so we add a needHealthyServer parameter for GetRestConfig() to create rest.Config whether healthy server should be set or not.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?


other Note

@openyurt-bot
Copy link
Collaborator

@rambohe-ch: GitHub didn't allow me to assign the following users: your_reviewer.

Note that only openyurtio members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide

In response to this:

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

/kind bug

What this PR does / why we need it:

  • bug:
    if yurthub re-startup when network between cloud and edge disconnected, a panic will happen for preparing server tls config. and the panic like as following:

image

  • reason:
    yurthub will use healthy server address and certificate under /var/lib/yurthub/pki dir to create rest.Config for https server. the code is here: https://github.com/openyurtio/openyurt/blob/master/pkg/yurthub/kubernetes/rest/config.go#L83-113
    and when cloud-edge network breaks down, healthy server will become true, so rest.Config will be nil, then panic happened.

  • solution:
    we only need to prepare for rest.Config, and not need to connect remote server, so healthy server is not a requirement, so we add a needHealthyServer parameter for GetRestConfig() to create rest.Config whether healthy server should be set or not.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?


other Note

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/test-infra repository.

@openyurt-bot openyurt-bot added the kind/bug kind/bug label Sep 8, 2021
@openyurt-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rambohe-ch

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openyurt-bot openyurt-bot added approved approved size/M size/M: 30-99 labels Sep 8, 2021
@rambohe-ch
Copy link
Member Author

/assign @Fei-Guo
/assign @zc2638

@Fei-Guo
Copy link
Member

Fei-Guo commented Sep 8, 2021

/approve
/lgtm

@zc2638
Copy link
Member

zc2638 commented Sep 9, 2021

/lgtm
I have passed the test in my environment.

@openyurt-bot openyurt-bot added the lgtm lgtm label Sep 9, 2021
@openyurt-bot openyurt-bot merged commit 47a88ea into openyurtio:master Sep 9, 2021
@rambohe-ch
Copy link
Member Author

/lgtm
I have passed the test in my environment.

@zc2638 Thanks for testing.

MrGirl pushed a commit to MrGirl/openyurt that referenced this pull request Mar 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved approved kind/bug kind/bug lgtm lgtm size/M size/M: 30-99
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants