kubernetes-sigs / kubectl-validate

Apache License 2.0
145 stars 35 forks source link

Added client-go auth plugins #91

Closed pyrsson closed 6 months ago

pyrsson commented 7 months ago

What type of PR is this?

/kind feature

What this PR does / why we need it:

Adds support for clusters using any of the client-go auth plugins like oidc based on these docs: client-go examples

Fixes validation of CRDs when connected to a cluster with oidc for example:

$ kubectl-validate ./test-with-crds.yaml

../test-with-crds.yaml...ERROR
failed to retrieve validator: failed to locate OpenAPI spec for GV: bitnami.com/v1alpha1
failed to retrieve validator: failed to locate OpenAPI spec for GV: bitnami.com/v1alpha1
failed to retrieve validator: failed to locate OpenAPI spec for GV: minio.min.io/v2
Error: validation failed
# with auth plugins
 $ kubectl-validate ./test-with-crds.yaml

./test-with-crds.yaml...OK

Which issue(s) this PR fixes:

Didn't open an issue, hope that's ok.

Special notes for your reviewer:

First ever contribution, please let me know if there's something I missed or need to change.

Does this PR introduce a user-facing change?

Added support for client-go auth plugins

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

linux-foundation-easycla[bot] commented 7 months ago

CLA Signed


The committers listed above are authorized under a signed CLA.

k8s-ci-robot commented 7 months ago

Welcome @pyrsson!

It looks like this is your first PR to kubernetes-sigs/kubectl-validate 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/kubectl-validate has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. :smiley:

eddycharly commented 7 months ago

LGTM but i wonder if we can have a test for that 🤔

pyrsson commented 7 months ago

LGTM but i wonder if we can have a test for that 🤔

I could give it a go, but I'm not entirely sure what the tests should cover. My understanding is that there is fairly little value in writing tests for library functionality, but I could be wrong.

Do you have a suggestion for what to test in kubeconfig.go?

alexzielenski commented 6 months ago

/lgtm /approve

From a glance it looks like adding a good test for this requires infra we dont have to stand up a fake cluster requiring the plugin. Since this is a single line addition simply to link the library I think it is ok to add

k8s-ci-robot commented 6 months ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alexzielenski, pyrsson

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: - ~~[OWNERS](https://github.com/kubernetes-sigs/kubectl-validate/blob/main/OWNERS)~~ [alexzielenski] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment