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

Make start and stop timeouts for test controlplane configurable #169

Conversation

alvaroaleman
Copy link
Member

@alvaroaleman alvaroaleman commented Oct 6, 2018

This allows configuring the start and stop timeouts for the controlplane. I've created this PR after repeated test failures in the kubernetes-sigs/cluster-api repo due to timeout waiting for process kube-apiserver to start, e.G. in kubernetes-sigs/cluster-api#523

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Oct 6, 2018
@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Oct 6, 2018
@alvaroaleman
Copy link
Member Author

/assign @DirectXMan12

pkg/envtest/server.go Outdated Show resolved Hide resolved
pkg/envtest/server.go Outdated Show resolved Hide resolved
@@ -32,6 +35,8 @@ const (
envEtcdBin = "TEST_ASSET_ETCD"
envKubectlBin = "TEST_ASSET_KUBECTL"
envKubebuilderPath = "KUBEBUILDER_ASSETS"
envStartTimeout = "KUBEBUILDER_CONTROLPLANE_START_TIMEOUT"
envStopTimeout = "KUBEBUILDER_CONTROLPLANE_STOP_TIMEOUT"
Copy link
Contributor

@droot droot Oct 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend making these part of Environment struct below as public args, so that callers can override the defaults and lets tweak the defaults on the basis of your experience. Lets avoid passing these through environment variables.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey @droot , thanks for your feedback.

While I think adding them to the struct is a good idea I believe it still makes sense to populate them from the environment, because a controller-manager may contain more than one controller and this is a setting one does not want to set per controller but globally for all controllers, since there is no reason to believe that the test apiserver and etcd will have a different startup time per controller.

What do you think about adding them to the environment struct but populating them from environment variables in case they are unset?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about adding them to the environment struct but populating them from environment variables in case they are unset?

Picking the defaults (if unspecified) from environment variables sounds reasonable to me.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@droot I've updated the PR to add the start/stop timeout options to the Environment struct and only default from environment variables if they are unspecified, please take another look

@alvaroaleman alvaroaleman force-pushed the configurable-control-plane-start-timeout branch 2 times, most recently from ea8ce45 to 6e2c361 Compare October 10, 2018 16:35
Copy link
Contributor

@droot droot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR.

@droot droot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 11, 2018
@alvaroaleman
Copy link
Member Author

@droot Is there something else I need to do here? Should I /assign this PR to you?

@droot
Copy link
Contributor

droot commented Oct 15, 2018

Is there something else I need to do here? Should I /assign this PR to you

oh... It was missing lgtm label, just did that. Thanks for the reminder.

@droot droot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 16, 2018
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by: alvaroaleman

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

@k8s-ci-robot k8s-ci-robot merged commit 2a4d5bb into kubernetes-sigs:master Oct 16, 2018
@alvaroaleman alvaroaleman deleted the configurable-control-plane-start-timeout branch October 16, 2018 21:12
justinsb pushed a commit to justinsb/controller-runtime that referenced this pull request Dec 7, 2018
…-control-plane-start-timeout

Make start and stop timeouts for test controlplane configurable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants