gateway-api icon indicating copy to clipboard operation
gateway-api copied to clipboard

Coordinate development of initial gwctl feature set

Open gauravkghildiyal opened this issue 1 year ago • 16 comments

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 avatar Feb 11 '24 08:02 gauravkghildiyal

/help

gauravkghildiyal avatar Feb 11 '24 08:02 gauravkghildiyal

@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:

  • Why are we solving this issue?
  • To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points?
  • Does this issue have zero to low barrier of entry?
  • How can the assignee reach out to you for help?

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:

/help

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.

k8s-ci-robot avatar Feb 11 '24 08:02 k8s-ci-robot

/area gwctl

gauravkghildiyal avatar Feb 14 '24 06:02 gauravkghildiyal

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

jongwooo avatar Feb 16 '24 04:02 jongwooo

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

Devaansh-Kumar avatar Feb 16 '24 19:02 Devaansh-Kumar

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

harshitasao avatar Feb 21 '24 09:02 harshitasao

@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

jongwooo avatar Feb 22 '24 04:02 jongwooo

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.

pottekkat avatar Feb 28 '24 10:02 pottekkat

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.

gauravkghildiyal avatar Feb 28 '24 20:02 gauravkghildiyal

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

hgupta12 avatar Mar 12 '24 13:03 hgupta12

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

Devaansh-Kumar avatar Mar 12 '24 17:03 Devaansh-Kumar

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 avatar Mar 13 '24 05:03 jongwooo

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

jongwooo avatar Mar 20 '24 08:03 jongwooo

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

deszhou avatar Mar 21 '24 16:03 deszhou

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

deszhou avatar Mar 29 '24 08:03 deszhou

@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! 🙇

tdn21 avatar Apr 19 '24 09:04 tdn21

Most of the tasks here have been completed. Some of these should also reach a conclusion with https://github.com/kubernetes-sigs/gateway-api/pull/3244. I'll close this out and open upcoming items separately.

gauravkghildiyal avatar Aug 09 '24 20:08 gauravkghildiyal

/close

gauravkghildiyal avatar Aug 09 '24 20:08 gauravkghildiyal

@gauravkghildiyal: Closing this issue.

In response to this:

/close

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.

k8s-ci-robot avatar Aug 09 '24 20:08 k8s-ci-robot