Skip to content

Instantly share code, notes, and snippets.

@calebamiles
Last active December 20, 2018 00:22
Show Gist options
  • Save calebamiles/dd9ab4290a151ceb971e9b3b046c5013 to your computer and use it in GitHub Desktop.
Save calebamiles/dd9ab4290a151ceb971e9b3b046c5013 to your computer and use it in GitHub Desktop.
KEP contributor onboarding
├── cli                                   (example CLI)
│   └── cmd                               (the actual CLI [sub]commands)
├── helpers                               (mostly untested code intented for project maintainers)
│   ├── convert                           (convert an KEP in the current format to the new format)
│   │   └── internal                      
│   │       ├── convert
│   │       ├── extract
│   │       │   └── test_fixtures
│   │       │       └── kep_0000
│   │       ├── metadata
│   │       └── render
│   ├── initSigDirs                       (create a directory for every SIG)
│   └── renderSigList                     (extract information from sigs.yaml in the Community Repo)
│       └── internal
│           └── sigs
├── okrs                                  (goals for the project)
│   └── 2018
│       └── q4
└── pkg                                   (the KEPs library)
    ├── hermetic                          (make self contained [hermetic] changes to a Git repository on GitHub)
    ├── index                             (index all the KEP content)
    ├── keps                              (the KEP object model)
    │   ├── check                         (consistency checks for KEP metadata)
    │   ├── kepsfakes
    │   ├── metadata                      (the KEP metadata object model)
    │   │   └── metadatafakes
    │   ├── sections                      (KEP sections: unrolled KEP content)
    │   │   ├── internal
    │   │   │   ├── rendering             (go rendering of unrendered templates)
    │   │   │   └── unrendered            (KEP section templates)
    │   │   └── sectionsfakes
    │   ├── skeleton                      (create KEP directory structure)
    │   ├── states                        (valid KEP states)
    │   └── themes                        (valid KEP development themes)
    ├── settings                          (settings for configuring runtime behavior)
    │   └── settingsfakes
    ├── sigs                              (mostly autogenerated Kubernetes SIG information used for determining path <-> SIG mapping)
    │   ├── internal
    │   │   └── generated
    │   └── sigsfakes
    └── workflow                          (individual KEP lifecycle handler **the main entrypoint**)

in progress

MVP goals:

  • basic KEP machinery
    • metadata
    • sections
    • events
  • basic KEP workflow
    • init, propose, {accept|reject|postpone}, plan, approve
  • basic operations on collection of KEPs
    • render
    • filter
  • CLI exposing the above
  • CI for accepting pull requests

short term

Connection with Kubernetes wide processes:

  • sketch of integration with enhancement process
  • sketch of integration with API review process
  • sketch of integration with contributor site publication

long term

Server side operations:

  • prow integration /link-kep 42 on GitHub Issues, and PRs
    • with accompanying CLI commands: keps attach-pr --pr kubernetes/42 a-great-kep-title
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment