Skip to content
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

GCS bucket to store the KEPs metadata #2490

Closed
shekhar-rajak opened this issue Aug 9, 2021 · 15 comments
Closed

GCS bucket to store the KEPs metadata #2490

shekhar-rajak opened this issue Aug 9, 2021 · 15 comments
Assignees
Labels
area/infra Infrastructure management, infrastructure design, code in infra/ lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. sig/k8s-infra Categorizes an issue or PR as relevant to SIG K8s Infra.

Comments

@shekhar-rajak
Copy link

Hi team,

We have PR: kubernetes/contributor-site#222

  1. We want to generate the metadata file called keps.json file where we will be having all the details about the KEPs from the repo: https://github.com/kubernetes/enhancements through the command kepctl query
  2. This generated metadata file (during the CI/CD pipeline) will be pushed to GCS bucket, once the new PR is merged in kubernetes/enhancements repo.
  3. Now this metadata file will be used in site : https://deploy-preview-222--kubernetes-contributor.netlify.app/keps/ where we can search the KEPs by PR number, release, SIG or keywords. Since these are 2 different repo we want to push it into GCS bucket.

Slack thread: https://kubernetes.slack.com/archives/CCK68P2Q2/p1628494118056300

@ameukam ameukam added sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. labels Aug 9, 2021
@spiffxp
Copy link
Member

spiffxp commented Aug 10, 2021

I'm not opposed to making a new bucket for y'all, but can I ask why this couldn't live in-repo? It feels mildly weird to have two different sources of truth about the state of KEPs, one a git repo, one a GCS bucket.

@spiffxp
Copy link
Member

spiffxp commented Aug 10, 2021

For example, we have some workflows where contributors must run a hack/update-foo.sh locally when contributing a PR, and the CI runs a hack/verify-foo.sh to make sure the file(s) are kept up to date. This is how https://go.k8s.io/github-labels is kept in sync with https://git.k8s.io/test-infra/label_sync/labels.yaml

That places the burden contributor-side though, which isn't super fun.

Another option would be to have a presubmit responsible for adding a commit to the branch that does the update-foo if verify-foo fails. That would need to be done via a github account that has signed the CNCF CLA, and require that contributors allow maintainers to edit their PR branches.

Another option would be to have a bot auto-PR a change to the well-known file in the repo, and use a specific tide query to have it automatically merged. This is the workflow that prow currently uses to auto-update itself.

@spiffxp spiffxp added the area/infra Infrastructure management, infrastructure design, code in infra/ label Aug 10, 2021
@sftim
Copy link
Contributor

sftim commented Aug 11, 2021

What I'd imagined is that pushing to the k/enhancements default branch would render / generate a machine-readable KEP list as an artifact, and push that into object storage.

Then the consumer end fetches the JSON from object storage (eg to render a list of KEPs for https://k8s.dev/)

No need for contributors to do the build locally or to commit the generated file. To make things slick we ought to test pull requests as well, making sure that any change that breaks the generation fails some test.

Another option would be to have a bot auto-PR a change to the well-known file in the repo, and use a specific tide query to have it automatically merged. This is the workflow that prow currently uses to auto-update itself.

That works too. A third option is to dedicate an otherwise-empty branch to the generated files. You can then serve the generated files via Git and, if you want to, also via GitHub Pages.

My usual preference for this is to build artifacts from a clone of the default branch, then store those somewhere that isn't Git (this is similar to how you'd handle compiled code, container images, etc).

@sftim
Copy link
Contributor

sftim commented Aug 11, 2021

We might also want to consider reliability. If the generated KEP list is served from something that has good availability guarantees, we can consider fetching it using AJAX. If the primary storage is as a file in Git source control on GitHub, then to me that isn't available enough - GitHub does have outages and doesn't make strong promises about service availability.

@spiffxp
Copy link
Member

spiffxp commented Aug 18, 2021

OK, so I'm cool with creating a bucket, and setting up a service account that can write to that bucket.

For support/debugging purposes, who else should have write access to this bucket? Anything prow touches we are ensuring k8s-infra-prow-oncall@ has full permissions over. But for specific jobs or pieces of infra, we also want a more focused group of people with the domain expertise needed to troubleshoot. I'm also fine if it the answer is "nobody should have access to this, to keep us honest."

I'll have a sample PR up by tomorrow.

@spiffxp
Copy link
Member

spiffxp commented Aug 18, 2021

Or... today. But not deploying today.

@spiffxp
Copy link
Member

spiffxp commented Sep 2, 2021

/priority important-soon
/milestone v1.23

@k8s-ci-robot k8s-ci-robot added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Sep 2, 2021
@k8s-ci-robot k8s-ci-robot added this to the v1.23 milestone Sep 2, 2021
@spiffxp
Copy link
Member

spiffxp commented Sep 17, 2021

/assign
Since I put up #2570 and have been poking kubernetes/contributor-site#222

@k8s-ci-robot k8s-ci-robot added sig/k8s-infra Categorizes an issue or PR as relevant to SIG K8s Infra. and removed wg/k8s-infra labels Sep 29, 2021
@ameukam
Copy link
Member

ameukam commented Nov 1, 2021

/assign @palnabarun

@ameukam
Copy link
Member

ameukam commented Dec 6, 2021

/milestone clear

@k8s-ci-robot k8s-ci-robot removed this from the v1.23 milestone Dec 6, 2021
@sftim
Copy link
Contributor

sftim commented Jan 8, 2022

With #2570 merged, is this done?

@k8s-triage-robot
Copy link

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:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

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

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 8, 2022
@k8s-triage-robot
Copy link

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

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

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

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

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 8, 2022
@k8s-triage-robot
Copy link

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

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

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

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

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue.

In response to this:

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

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

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

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

/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/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/infra Infrastructure management, infrastructure design, code in infra/ lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. sig/k8s-infra Categorizes an issue or PR as relevant to SIG K8s Infra.
Projects
None yet
Development

No branches or pull requests

7 participants