kubernetes-sigs / gateway-api

Repository for the next iteration of composite service (e.g. Ingress) and load balancing APIs.
https://gateway-api.sigs.k8s.io
Apache License 2.0
1.69k stars 445 forks source link

Coordinate development of initial gwctl feature set #2761

Open gauravkghildiyal opened 5 months ago

gauravkghildiyal commented 5 months ago

Creating a parent issue to track the development of the initial set of features for gwctl.

Getting Started

To gain a deeper understanding of gwctl's purpose and the concepts involved, please take some time to review the relevant sections of https://gateway-api.sigs.k8s.io/geps/gep-2722/

For insights into the structure and high-level organization of gwctl's code, refer to this guide.

Call for contributors

If you are interesting in helping out, please comment below indicating which area you'd like to work on (and get started working on it). I'll follow up by creating a GitHub issue and assigning the task to you. I'll make an effort to help clarify or provide more details as and when you require. THANK YOU for contributing!

Tasks

Implement basic get command support

### Tasks
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2854
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2778
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2846
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2866
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2804
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2807
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2810

Implement basic describe command support

### Tasks
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2870
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2795

Enhance describe command output

### Tasks
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2796
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2994
- [x] Migrate all describe views to using the new Describer utils (like gateway.go)
- [x] Add Events to all describe views (like gateway.go)
- [x] Add an `Analysis` section in `gwctl describe` views (like Gateway, HTTPRoute, Backend) which displays the Errors from the resource nodes
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/3037
- [x] Expand output for `gwctl describe namespaces`
- [x] Expand output for `gwctl describe backends`

Add label-based filtering

### Tasks
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2890
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2913
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2933

Support custom output formats in get commands

### Tasks
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2889
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2931
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/2932

Testing and Release

### Tasks
- [ ] Add some basic e2e tests that can be made presubmit blockers during the initial development.
- [ ] Add more thorough e2e tests covering a wider set of features.
- [ ] Improve code coverage in existing packages like `policymanager`, `resourcediscovery` and `relations`.
- [x] Setup `goreleaser` configs for building binaries.
- [x] Add `gwctl` to the `krew` plugin index. Complete any further integration.

Miscellaneous

### Tasks
- [x] Gracefully handle errors when we try to calculate effective policy but the resource isn’t present. For example, if an HTTPRoute references a Gateway which does not exist, right now the code may panic.
- [ ] Ensure that policy calculation takes into account the fact that namespaced policies can only be applied to resources within the same namespace (i.e. have no cross-namespace references in policies)
- [ ] https://github.com/kubernetes-sigs/gateway-api/issues/3000
- [ ] Check if Gateway accepts attachments of HTTPRoutes. If an HTTPRoute is attached to a Gateway which isn't permitted, display that as a user error when doing gwctl describe
- [ ] Figure out a robust way of constructing the kubernetes client (for cases when kubeconfigpath is not set, which is usually the case). It's also possible that the current way is already the best thing possible

/assign @gauravkghildiyal

gauravkghildiyal commented 5 months ago

/help

k8s-ci-robot commented 5 months ago

@gauravkghildiyal: This request has been marked as needing help from a contributor.

Guidelines

Please ensure that the issue body includes answers to the following questions:

For more details on the requirements of such an issue, please see here and ensure that they are met.

If this request no longer meets these requirements, the label can be removed by commenting with the /remove-help command.

In response to [this](https://github.com/kubernetes-sigs/gateway-api/issues/2761): >/help Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
gauravkghildiyal commented 5 months ago

/area gwctl

jongwooo commented 5 months ago

I'd like to work on implementing gwctl get command.

Devaansh-Kumar commented 5 months ago

Hello, I would like to work on implementing gwctl describe command.

harshitasao commented 5 months ago

Hey, I would like to work on enhancing the describe command output

jongwooo commented 5 months ago

@gauravkghildiyal For httproutes, there should be 6 columns fully implemented, but there are only 2(NAME, HOSTNAMES). I would appreciate it if you could add policies, policycrds, and httproutes to the task. Ref: https://deploy-preview-2723--kubernetes-sigs-gateway-api.netlify.app/geps/gep-2722/#output-formats

pottekkat commented 4 months ago

Gracefully handle errors when we try to calculate effective policy but the resource isn’t present.

@gauravkghildiyal I can take on this task, at least partially. I was working on it before, but as mentioned here, it had conflicts with your previous PR. I can add those changes now that the PR is merged.

Opened a draft PR: https://github.com/kubernetes-sigs/gateway-api/pull/2825 but this does not address the issue mentioned here. Should I add that in the same PR or move to a different one? Because the current PR is already big.

gauravkghildiyal commented 4 months ago

Gracefully handle errors when we try to calculate effective policy but the resource isn’t present.

@gauravkghildiyal I can take on this task, at least partially. I was working on it before, but as mentioned here, it had conflicts with your previous PR. I can add those changes now that the PR is merged.

Opened a draft PR: #2825 but this does not address the issue mentioned here. Should I add that in the same PR or move to a different one? Because the current PR is already big.

@pottekkat -- Thanks, yes I remember our discussion. Yep please limit the scope of your current PR to what you originally intended. The other cleanups/improvements we can tackle separately.

hgupta12 commented 4 months ago

Hey, I would like to work on the gwctl get backends command.

Devaansh-Kumar commented 4 months ago

@gauravkghildiyal I would like to take up gwctl describe policycrds command, could you create an issue for it?

jongwooo commented 4 months ago

Hey, I would like to work on the gwctl get backends command.

Hi @hgupta12, Thank you for your comment. I've already been assigned this issue in https://github.com/kubernetes-sigs/gateway-api/issues/2761#issuecomment-1947736903, so if you don't mind, could you please choose another one?

jongwooo commented 4 months ago

I'd like to work on Support wide output format for get commands (-o wide).

deszhou commented 4 months ago

Hey, I would like to work on Add label filtering (-l) for get commands and Add label filtering (-l) for describe commands

deszhou commented 3 months ago

I would like to work on Add label filtering (- l) for get namespaces, could you help me create an issue for it?@gauravkghildiyal

tdn21 commented 3 months ago

@gauravkghildiyal I would like to work on Expand output for gwctl describe httproutes, could you please help me create an issue for it? Thank you! 🙇