Skip to content

🌱 Add unit tests for failure domain in KCP #11687

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

arshadd-b
Copy link
Contributor

(🌱 )

What this PR does / why we need it:
This improves the coverage for failure domain in KCP

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes # #11602

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jan 15, 2025
@k8s-ci-robot k8s-ci-robot added do-not-merge/needs-area PR is missing an area label needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Jan 15, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @arshadd-b. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@arshadd-b
Copy link
Contributor Author

arshadd-b commented Jan 15, 2025

Hi @fabriziopandini
I have noticed that in control_plane.go file there are no test cases for these functions
https://github.com/kubernetes-sigs/cluster-api/blob/main/controlplane/kubeadm/internal/control_plane.go#L325
https://github.com/kubernetes-sigs/cluster-api/blob/main/controlplane/kubeadm/internal/control_plane.go#L355
This PR doesn't cover these , Is it expected to cover these as well ?
I can raise a different PR covering these functions
Thanks

@chrischdi
Copy link
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jan 15, 2025
@nrb
Copy link
Contributor

nrb commented Jan 16, 2025

/area testing

@k8s-ci-robot k8s-ci-robot added area/testing Issues or PRs related to testing and removed do-not-merge/needs-area PR is missing an area label labels Jan 16, 2025
@nrb
Copy link
Contributor

nrb commented Jan 16, 2025

Thanks for adding tests! Left a few suggestions.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 20, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 24, 2025
@arshadd-b
Copy link
Contributor Author

arshadd-b commented Jan 27, 2025

Hi @nrb I have addressed all the review comments, could you please a look
Thanks

@arshadd-b arshadd-b requested a review from nrb January 27, 2025 05:43
@nrb
Copy link
Contributor

nrb commented Jan 27, 2025

/lgtm
/label tide/merge-method-squash

@k8s-ci-robot k8s-ci-robot added the tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. label Jan 27, 2025
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 27, 2025
@k8s-ci-robot
Copy link
Contributor

LGTM label has been added.

Git tree hash: ff32b349a0dcf2bf4a56211bd5f41847f95a71c4

@sbueringer
Copy link
Member

/assign @fabriziopandini

@chrischdi
Copy link
Member

/title 🌱 Add unit tests for failure domain in KCP

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 12, 2025
@chrischdi
Copy link
Member

/retitle 🌱 Add unit tests for failure domain in KCP

@k8s-ci-robot k8s-ci-robot changed the title 🌱 Add UTs for failure domain in KCP 🌱 Add unit tests for failure domain in KCP Apr 12, 2025
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 14, 2025
@k8s-ci-robot
Copy link
Contributor

New changes are detected. LGTM label has been removed.

@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 14, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from fabriziopandini. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

Copy link
Contributor

@nrb nrb left a comment

Choose a reason for hiding this comment

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

Looks like a couple of the new test cases are failing in CI

@@ -144,6 +153,171 @@ func TestControlPlane(t *testing.T) {
g.Expect(err).NotTo(HaveOccurred())
g.Expect(fd).To(Equal(ptr.To("two"))) // deleted up-to-date machines (m4) should not be counted when picking the next failure domain for scale up
})

t.Run("Next Failure Domains", func(t *testing.T) {
Copy link
Contributor

Choose a reason for hiding this comment

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

This test is failing CI.

{Failed  === RUN   TestControlPlane/Next_Failure_Domains
    control_plane_test.go:181: 
        Unexpected error:
            <*errors.withStack | 0xc0009beae0>: 
            failed to retrieve infra obj for machine "m1": failed to retrieve GenericInfrastructureMachine m1: no matches for kind "GenericInfrastructureMachine" in version "infrastructure.cluster.x-k8s.io/v1beta1"
            {
                error: <*errors.withMessage | 0xc00131c4e0>{
                    cause: <*errors.withStack | 0xc0009beab0>{
                        error: <*errors.withMessage | 0xc00131c4c0>{
                            cause: <*meta.NoKindMatchError | 0xc00097ad00>{
                                GroupKind: {
                                    Group: "infrastructure.cluster.x-k8s.io",
                                    Kind: "GenericInfrastructureMachine",
                                },
                                SearchedVersions: ["v1beta1"],
                            },
                            msg: "failed to retrieve GenericInfrastructureMachine m1",
                        },
                        stack: [0x27453eb, 0x32d3805, 0x32d09bf, 0x338eeed, 0x61b5c7, 0x4b9621],
                    },
                    msg: "failed to retrieve infra obj for machine \"m1\"",
                },
                stack: [0x32d394d, 0x32d09bf, 0x338eeed, 0x61b5c7, 0x4b9621],
            }
        occurred
--- FAIL: TestControlPlane/Next_Failure_Domains (0.01s)
}

g.Expect(err).To(HaveOccurred())
})

t.Run("When infra and bootstrap config exists", func(t *testing.T) {
Copy link
Contributor

Choose a reason for hiding this comment

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

This case is failing in CI:

{Failed  === RUN   TestControlPlane/When_infra_and_bootstrap_config_exists
    control_plane_test.go:276: 
        Expected success, but got an error:
            <*meta.NoKindMatchError | 0xc001c9b140>: 
            no matches for kind "GenericInfrastructureMachine" in version "infrastructure.cluster.x-k8s.io/v1beta1"
            {
                GroupKind: {
                    Group: "infrastructure.cluster.x-k8s.io",
                    Kind: "GenericInfrastructureMachine",
                },
                SearchedVersions: ["v1beta1"],
            }
--- FAIL: TestControlPlane/When_infra_and_bootstrap_config_exists (0.01s)
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

will check, Thank you @nrb

@arshadd-b arshadd-b requested a review from nrb April 16, 2025 04:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/testing Issues or PRs related to testing cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants