Git Product home page Git Product logo

doc's Introduction

Doc

doc's People

Contributors

hasheddan avatar jbw976 avatar khos2ow avatar marccampbell avatar prasek avatar richicoder1 avatar schrej avatar tyron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

doc's Issues

Broken link to github repo on master

The link to the github repo on the CRDs page is broken when viewing latest on master: https://github.com/crossplane/crossplane/tree/. This can be fixes by appending master or excluding tree when no tag is supplied.

Cache parsed repositories to avoid github rate limiting

Currently, we hit Github API rate limiting extremely quickly for our queries to find all CRD types in a repository (search), and relatively quickly for parsing each of those CRDs (get file contents). These results should be cached such that we do not have to hit Github every time they are requested.

A first step could be authenticating requests such that the limit for fetching CRD file content will rise from 60 to 5000 per hour, and 10 to 30 per minute for finding CRDs in a repository.

The next step will be to cache results and crawl repos on a periodic basis based on incoming requests for content.

Detect all CRDs under a path

The CRD doc experience feels similar to https://godoc.org. One feature I appreciate about https://godoc.org is that I can browse to either a repository root like https://godoc.org/github.com/crossplaneio/crossplane-runtime or a path within a repository like https://godoc.org/github.com/crossplaneio/crossplane-runtime/pkg/reconciler and I'll be shown all the packages under that path. It would be very helpful if CRD doc had similar functionality - i.e. if I browsed to https://doc.crds.dev/github.com/crossplaneio I would see all the known CRDs of the Crossplane project.

Ability to query docs.crds programmatically

It would be awesome to be able to query docs.crds programmatically (through a simple HTTP API).

My use case is to be able to add support in cdk8s to import CRDs that are listed in docs.crds. For example, say I want to import all of crossplane's CRDs into my cdk8s app :-).

Establish initial SLOs and SLIs for doc.crds.dev

In order for https://doc.crds.dev to be used as the default documentation for projects that add Kubernetes CRDs there should be public, documented service level objectives. There should also be documented service level indicators to ensure that SLOs are being met. These can be evolved over time with input from the community, but some initial areas to consider would be:

  • Availability (The proportion of requests that resulted in a successful response.)
  • Latency (The proportion of requests that were faster than some threshold.)
  • Freshness (The proportion of the data that was updated more recently than some time threshold.)
  • Correctness (The proportion of records coming into the pipeline that resulted in the correct value coming out.)

Reference: https://landing.google.com/sre/workbook/chapters/implementing-slos/

Add "link copied" tool tip on fields

#32 added the ability to copy links to specific fields in a CRD. However, when a copy link icon is clicked it does not notify the user that the link has been copied. There is no indication that they have copied the link until they try to paste it. While this does not affect functionality, it is a poor UX and can be confusing.

Support redirect alias for renamed repos, so we can change the repo name without breaking old links and always show the new repo name

Problem

When a repo is renamed in GitHub doc.crds.dev will redirect to the correct repo, as it just uses the one provided to point to, that is then being redirected when we clone and parse.

However the repo name will not automatically update, so you see the old repo name in doc.crds.dev and still have to use the old url when linking to the docs from other sites.

If we change the repo being indexed in config.yaml think old link will be broken, so it's unclear how to get doc.crds.dev to show the new repo name, with a new link, without breaking the old links or having duplicate entries in config.yaml.

image

The new repo name for โ˜๏ธ is https://github.com/packethost/crossplane-provider-equinix-metal/.

What can we do to help?

Would be nice to have a redirect alias for the old repo name to point at the new repo name.

Maybe something like this for config.yaml:

apiVersion: v1
kind: Namespace
metadata:
  name: crdsdev
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: doc-repos
  namespace: crdsdev
data:
  repos: "crossplane/crossplane,crossplane/provider-gcp,crossplane/provider-aws,crossplane/provider-azure,crossplane/provider-alibaba,crossplane/provider-rook,crossplane-contrib/provider-helm,kubernetes-sigs/cluster-api,jetstack/cert-manager,schemahero/schemahero,projectcontour/contour,packethost/crossplane-provider-packet,kubernetes-sigs/cluster-api-provider-packet,crossplane/oam-kubernetes-runtime"
  aliases:
    - alias: old
      target: new
    - alias: packethost/crossplane-provider-packet
      target: packethost/crossplane-provider-equinix-metal

Collapse all button for sections

I just realized that I can click to spec and have it collapsed and loved it. A lot of time, I collapse all functions in my editor when I deal with a long page of code and then click through only the things I'd like.

I think it'd be great experience to have a button to collapse all fields and let people open one by one and discover the fields.

I can contribute if there are some pointers about how one could implement this.

Add option to run with authentication

For many distributed teams, running a doc server on the private network is not conducive to their workflow. It should be possible to run a doc server that requires authentication. It would be good to support at least Github and Google for auth in the short term.

Parse CRDs at lightweight tags in addition to annotated

Currently, Doc will only parse CRDs at annotated tags, which are best practice for releases. While this is sufficient in most cases, projects that use or have used lightweight tags will be unable to see documentation for those tags, even if they were part of a release. Doc should support both types of tags.

Project list view - separate sortable columns for GVK

Thanks for adding support for shoring the full GVK in the list view #56, that's a big improvement!

The other day I was reviewing provider-aws CRDs with a contributor and we and we wanted to view the list of beta vs. alpha CRDs and wanted the ability to sort the CRDs by version as a separate field.

Would be awesome to support:

  • separate sortable columns in the list view for group, version, and kind
  • tighten the spacing of the columns so it's easier to read without jumping back and forth horizontally
    image

Really liking the enhancements, this is a super useful tool!!

Show repos on main page

In the short term, all repos that are being crawled should be displayed on the home page. In the long term it will likely be useful to show the top searched repos and allow for searching of all repos.

Update examples

Hello !

I want to see how an AWS security group or a AWS S3 can be defined in crossplane, but when I look into the examples in the AWS provider GitHub repository, it seems that all is not up to date...
For example :

Finally, is this "examples" repository the only location where to find such samples of crossplane Custom Resources ?

Thank you !

Dark Mode

Make a dark mode theme for the UI

Show link to repo on CRD pages

Currently the repo page provides a link to the repo at the given tag. CRDs should also expose a link so that the raw yaml can be easily accessed.

Use GVK for listing CRDs in a repo

CRDs are currently listed by filename. When controller-gen has generated the CRD files this works well as the pattern of the filename is <group>_<plural-kind>.yaml. However, it would be nice to also support files with arbitrary names and potentially present the CRDs in an organized format, such as nesting CRDs under their group and listing multiple versions of the same kind together.

Support Github paths with branch / tag / SHA

Currently, doc will only accept paths with /blob/*/ removed, always returning the content of the CRD on master. Users should be able to not have to remove /blob/master/ (so links can be copied directly) and should be able to specify a branch / tag / SHA other than master.

Ability to render arbitrary comment tags

There are comment tags like // +immutable that do not have proper k8s validation schemes but they do appear in the description section of a field. It'd be cool if doc generator could detect those and just add a button-like box with immutable word or whatever exists in // +something

Remove templated values when parsing CRDs

Parsing a CRD will fail with templated values present. For the short-term, since these values do not exist in the actual schema of the custom resource, they can just be removed to pass validation. In the long-term it may be useful to expose some of these values to users.

Ref #49

Add ability to view multiple versions of CRD

Currently, users are only able to view documentation of the storage: true version of a CRD. This should be the default, but it should also be possible view any other served versions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.