kubernetes / enhancements

Enhancements tracking repo for Kubernetes
Apache License 2.0
3.34k stars 1.44k forks source link

[Process improvement]: Make an easy-to-navigate website to find and query KEPs #2095

Closed LappleApple closed 1 year ago

LappleApple commented 3 years ago

This issue documents the roadmap/plan for a key 1.20 process-related objective.

What Is the Website

Why Do We Need It

Who's Needed, Who's Helping, Who's Informed

Needed:

Helping:

Informed: /sig docs /sig contributor-experience /sig architecture

How Do We Get There: Implementation Steps and Notes

Related Action Item: Preparing for 1.21

Potential Next Iterations/Milestones

palnabarun commented 3 years ago

/area enhancements

gkarthiks commented 3 years ago

@LappleApple I am interested in this. Please ping me on Slack.

jberkus commented 3 years ago

A site designed after the PEP page will fulfill most of the transparency requirements. The one additional feature we'll eventually need that PEP doesn't have is to have lists of:

Copying the PEP page would be a good first step, though, and way more accessible than what we have now.

LappleApple commented 3 years ago

Some user stories drafted in June 2020 for KEPs tooling, based on Make KEPs Transparent and misc. conversations:

kbhawkey commented 3 years ago

Hi @LappleApple . I may have some time to pitch in with the templating piece.

sftim commented 3 years ago

OK, here's a mockup of a future https://k8s.dev/resources/enhancements/: https://k8s.dev/resources/enhancements/

What do we need to render that? The minimum is that for each KEP we have a bit of metadata. For the mockup the minimum you need is like this:

---
path: "/keps/sig-contributor-experience/1553-issue-triage"
title: Issue Triage Workflow and Automation
kep-number: 1553

or

---
title: Implement maxUnavailable for StatefulSets
path: "/keps/sig-apps/20190226-maxunavailable-for-statefulsets.md"

(you don't need a KEP number - but not having it makes them hard to sort!)

If those files end up in data/generated/enhancements before site build, the mockup adds them to the KEP list.

https://github.com/kubernetes-sigs/contributor-site/compare/master...sftim:20201017_kep_list_mockup shows the Hugo & Markdown changes I made for the mockup.


How it could work:

sftim commented 3 years ago

Questions about that mockup?

mrbobbytables commented 3 years ago

I'd go the table formatting route, but we should be able to get at a minimum from the metadata:

Once the enhancement structure is in place, we can get the kep # (and associated tracking issue).

I'm thinking to GitHub Pages

GitHub pages would require an additional commit any time a kep is updated =/ I think we could provision a gcs bucket and dump the content there as a postsubmit job.

palnabarun commented 3 years ago

@sftim -- that mockup looks great.

I have a few ideas that I was experimenting with related to preparing the data for the website.

One question I had though, do the KEP markdown files need to have certain Hugo metadata in order to be rendered by Hugo during the site generation phae?

I think we could provision a gcs bucket and dump the content there as a postsubmit job.

@mrbobbytables -- Putting the JSON into a GCS bucket sounds great. 👍🏽

I will get back with more updates by next Monday as I don't have free cycles to work on this during the work week. :(

mrbobbytables commented 3 years ago

One question I had though, do the KEP markdown files need to have certain Hugo metadata in order to be rendered by Hugo during the site generation phae?

We don't want to render the keps themselves in hugo (at this point). We do want to provide a list of them from a single page.

As someone that spent many hours trying to fix rendering of them in hugo (the original goal of the contrib site was to list keps). It very much is not a path forward without significant effort in fixing paths, links and more. =/

palnabarun commented 3 years ago

We don't want to render the keps themselves in hugo (at this point). We do want to provide a list of them from a single page.

Okay. That clears the doubt. Thank you! 😃

sftim commented 3 years ago

provision a gcs bucket and dump the content there as a postsubmit job

Something I've thought of doing as a place to dump generated JSON: use the repo wiki (which is actually a Git repo), and have the GitHub Action update a JSON file in that repo every time someone merges to the main branch in the main repo.

Depends what we think about GitHub Actions though!

kbhawkey commented 3 years ago

:eyes:

kbhawkey commented 3 years ago

Hi. I don't know whether you need more help. Do you have a program to create the Markdown files from the KEP data? I'd like to see what a list of KEPs looks like. Is there an existing site?

palnabarun commented 3 years ago

Hi everyone :wave:, I was experimenting with a change in kepctl to output the list of KEPs in YAML/JSON. My changes are in this tree and I shared a sample output here.

Broadly, the tasks to complete this look like the following:

Let me know what do you think of the plan.

kbhawkey commented 3 years ago

Hello @palnabarun . Do you want to publish/republish the "chart" to the contributor site every time keps.yaml is changed or could you batch the updates (small changes)? How often during a release is this data updated? Does the information remain on the contributor site after the release? Do you plan on showing historical data from previous releases?

sftim commented 3 years ago

BTW I looked again and JSON is going to be easier to work with with YAML, for the Kubernetes contributor website.

palnabarun commented 3 years ago

@kbhawkey

Do you want to publish/republish the "chart" to the contributor site every time keps.yaml is changed or could you batch the updates (small changes)?

The contributor website can be published periodically.

How often during a release is this data updated?

The information is updated fairly frequently before the Enhancements Freeze kicks in during each release cycle.

Does the information remain on the contributor site after the release?

Yes. The plan was to have the listing permanent.

Do you plan on showing historical data from previous releases?

The scope of the ask right now is to just show all KEPs somewhere easily visible to whoever wants to see a summary. Tracking them through the releases can come in the next iterations.

@sftim

BTW I looked again and JSON is going to be easier to work with with YAML, for the Kubernetes contributor website.

The kepctl query command supports JSON as well. So, you can use the exported JSON to test out things.

donmeganotz commented 3 years ago

Can ⬆️📲

On Wed, Nov 25, 2020, 1:10 AM Nabarun Pal notifications@github.com wrote:

@kbhawkey https://github.com/kbhawkey

Do you want to publish/republish the "chart" to the contributor site every time keps.yaml is changed or could you batch the updates (small changes)?

The contributor website can be published periodically.

How often during a release is this data updated?

The information is updated fairly frequently before the Enhancements Freeze kicks in during each release cycle.

Does the information remain on the contributor site after the release?

Yes. The plan was to have the listing permanent.

Do you plan on showing historical data from previous releases?

The scope of the ask right now is to just show all KEPs somewhere easily visible to whoever wants to see a summary. Tracking them through the releases can come in the next iterations.

@sftim https://github.com/sftim

BTW I looked again and JSON is going to be easier to work with with YAML, for the Kubernetes contributor website.

The kepctl query command supports JSON as well. So, you can use the exported JSON to test out things.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kubernetes/enhancements/issues/2095#issuecomment-733513286, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACR5HAQ33KNCMA7W64YFQJTSRSUVRANCNFSM4SMR7RZQ .

LappleApple commented 3 years ago

Next steps, based on conversation during Feb 2, 2021 Enhancements meeting:

fejta-bot commented 3 years ago

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale

dims commented 3 years ago

If only we had a website, things like this would be easy ...

https://groups.google.com/g/kubernetes-sig-architecture/c/EDebihCHoOo/m/qARtjfMFBAAJ

justaugustus commented 3 years ago

@kubernetes/enhancements -- is anyone interested in jamming on this?

xref: https://kubernetes.slack.com/archives/C1TU9EB9S/p1622152774064000?thread_ts=1614832950.095600&cid=C1TU9EB9S

shekhar-rajak commented 3 years ago

I tried some prototype:

To make easy to search KEPs and get the details in few clicks, we can have :

  1. Get the data in the form of JSON/YAML using kepctl query - whenever there is new KEP is merged, CI/CD tool can trigger it and store it in file.
  2. We can use the same Hugo template: https://github.com/kubernetes/website to display the content of the file in table, use the metadata available for search/query with different fields.

Trying to get familiar with current website to load data: https://github.com/kubernetes/website/tree/master/data

Loading data file in Hugo can be done using : https://gohugo.io/templates/data-templates/

I will try it out and update.

salaxander commented 3 years ago

@justaugustus I am 10000% interested in jamming on this

shekhar-rajak commented 3 years ago

Hi team,

I have started the first step towards KEP page in k8s.io/keps : https://github.com/kubernetes/website/pull/28295/

If any one want to contribute to it, feel free to commit on the branch. Let me know your suggestion/comments it is still work in progress.

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

sftim commented 2 years ago

https://github.com/kubernetes/contributor-site/pull/222 is still in progress

It would be great to rally some help to get this over the line. /remove-lifecycle stale

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

palnabarun commented 2 years ago

/remove-lifecycle stale

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

sftim commented 2 years ago

Still worth doing, and there is (slow) progress. /remove-lifecycle stale

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

palnabarun commented 2 years ago

/remove-lifecycle stale

palnabarun commented 2 years ago

/assign

palnabarun commented 1 year ago

Remaining Tasks:

Already There:

sftim commented 1 year ago

Periodic job to rebuild contributor-site

Have a look at https://github.com/kubernetes/contributor-site/blob/master/.github/workflows/netlify-periodic-build.yml - I think we already have this.

palnabarun commented 1 year ago

Have a look at https://github.com/kubernetes/contributor-site/blob/master/.github/workflows/netlify-periodic-build.yml - I think we already have this.

This is what I exactly wanted. Thanks @sftim for pointing to that!

palnabarun commented 1 year ago

We would need to increase the frequency of that job.

k8s-triage-robot commented 1 year ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

sftim commented 1 year ago

@palnabarun is this now Implemented? Can we close the issue?