kubernetes / test-infra

Test infrastructure for the Kubernetes project.
Apache License 2.0
3.83k stars 2.65k forks source link

Suggest adding owner for yaml files #8536

Closed whs-dot-hk closed 4 years ago

whs-dot-hk commented 6 years ago

When a yaml file is getting bigger and bigger

Different node maybe owned by owners

e.g. This yaml file https://github.com/kubernetes/community/blob/master/sigs.yaml

A sigs may own e.g. this part

- name: API Machinery
    dir: sig-api-machinery
    mission_statement: >
      Covers all aspects of API server, API registration and discovery, generic
      API CRUD semantics, admission control, encoding/decoding, conversion,
      defaulting, persistence layer (etcd), OpenAPI, CustomResourceDefinition,
      garbage collection, and client libraries.
    charter_link:
    label: api-machinery
    leadership:
      chairs:
      - name: Daniel Smith
        company: Google
        github: lavalamp
      - name: David Eads
        company: Red Hat
        github: deads2k
    meetings:
    - description: Regular SIG Meeting
      day: Wednesday
      time: "11:00"
      tz: "PT (Pacific Time)"
      frequency: biweekly
      url: https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit
      archive_url: https://goo.gl/0lbiM9
      recordings_url: https://www.youtube.com/watch?v=Lj1ScbXpnpY&list=PL69nYSiGNLP21oW3hbLyjjj4XhrwKxH2R
    contact:
      slack: sig-api-machinery
      mailing_list: https://groups.google.com/forum/#!forum/kubernetes-sig-api-machinery
      teams:
      - name: sig-api-machinery-api-reviews
        description: API Changes and Reviews
      - name: sig-api-machinery-bugs
        description: Bug Triage and Troubleshooting
      - name: sig-api-machinery-feature-requests
        description: Feature Requests
      - name: sig-api-machinery-misc
        description: General Discussion
      - name: sig-api-machinery-pr-reviews
        description: PR Reviews
      - name: sig-api-machinery-proposals
        description: Design Proposals
      - name: sig-api-machinery-test-failures
        description: Test Failures and Triage
    subprojects:
    - name: server-binaries
      owners:
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/cmd/kube-apiserver/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/cmd/kube-controller-manager/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/cmd/cloud-controller-manager/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/cmd/controller-manager/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/kubeapiserver/OWNERS # support for binary
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/master/OWNERS # support for binary
    - name: control-plane-features
      owners:
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/controller/garbagecollector/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/controller/namespace/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/quota/OWNERS # if not us, who?
    - name: universal-machinery # i.e., both client and server
      owners:
      - https://raw.githubusercontent.com/kubernetes/apimachinery/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apimachinery/OWNERS
    - name: server-frameworks
      owners:
      - https://raw.githubusercontent.com/kubernetes/apiserver/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/OWNERS
    - name: server-crd
      owners:
      - https://raw.githubusercontent.com/kubernetes/apiextensions-apiserver/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiextensions-apiserver/OWNERS
    - name: server-api-aggregation
      owners:
      - https://raw.githubusercontent.com/kubernetes/kube-aggregator/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/kube-aggregator/OWNERS
    - name: server-sdk
      owners:
      - https://raw.githubusercontent.com/kubernetes/sample-apiserver/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/sample-apiserver/OWNERS
      - https://raw.githubusercontent.com/kubernetes/sample-controller/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/sample-controller/OWNERS
      - https://raw.githubusercontent.com/kubernetes-incubator/apiserver-builder/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-sigs/controller-tools/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-sigs/kubebuilder/master/OWNERS
    - name: idl-schema-client-pipeline
      owners:
      - https://raw.githubusercontent.com/kubernetes/gengo/master/OWNERS # possibly should be totally separate
      - https://raw.githubusercontent.com/kubernetes/code-generator/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/code-generator/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kube-openapi/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/api/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/api/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/gen/master/OWNERS
    - name: kubernetes-clients
      owners:
      - https://raw.githubusercontent.com/kubernetes-client/community/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/csharp/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/go-base/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/go/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/haskell/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/java/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/javascript/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/python-base/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/ruby/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-client/typescript/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes-incubator/client-python/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/client-go/master/OWNERS
      - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/client-go/OWNERS
    - name: universal-utils # There is no reason why this is in api-machinery
      owners:
- https://raw.githubusercontent.com/kubernetes/utils/master/OWNERS

Adding ownership for managing big yaml files will be useful

So we could set for example

the node above is owned by sig-api-machinery etc

krzyzacy commented 6 years ago

why not split it into multiple small yaml files?

stevekuznetsov commented 6 years ago

/area prow /kind feature

We need to get the OWNERS filtering mechanism working, then I think we will successfully handle OWNERS at a file-level granularity. I agree with @krzyzacy that making OWNERS even more granular than that seems very difficult and not worth the effort. Any single file getting that large should be broken up anyway for scalability issues.

spiffxp commented 6 years ago

why not split it into multiple small yaml files?

Agree this is the preferred next step. That said, even if we do, at present editing sigs.yaml and regenerating means that some files at root change (sig-list.md), and so root OWNERS would still be needed.

spiffxp commented 5 years ago

/sig contributor-experience

fejta-bot commented 5 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-testing, kubernetes/test-infra and/or fejta. /lifecycle stale

spiffxp commented 5 years ago

/remove-lifecycle stale /assign /milestone v1.15

spiffxp commented 5 years ago

I've got a proof of concept laying around. There are some ordering issues that need to get sorted out to ensure things generate the same way all the time.

The main catch is even if we split files out into, say, each sig's dir... there are still generated files at repo root that would hit the root owners file. So this wouldn't gain us much in terms of avoiding bandwidth-constrained reviewers/approvers. We need to decide if/how to specify files that should be ignored/auto-approved when looking for approval.

spiffxp commented 5 years ago

/milestone clear

fejta-bot commented 5 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-testing, kubernetes/test-infra and/or fejta. /lifecycle stale

fejta-bot commented 5 years ago

Stale issues rot after 30d of inactivity. Mark the issue as fresh with /remove-lifecycle rotten. Rotten issues close after an additional 30d of inactivity.

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

Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle rotten

fejta-bot commented 4 years ago

Rotten issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /close

k8s-ci-robot commented 4 years ago

@fejta-bot: Closing this issue.

In response to [this](https://github.com/kubernetes/test-infra/issues/8536#issuecomment-562742814): >Rotten issues close after 30d of inactivity. >Reopen the issue with `/reopen`. >Mark the issue as fresh with `/remove-lifecycle rotten`. > >Send feedback to sig-testing, kubernetes/test-infra and/or [fejta](https://github.com/fejta). >/close 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.