All Projects → ahmetb → gen-crd-api-reference-docs

ahmetb / gen-crd-api-reference-docs

Licence: Apache-2.0 license
API Reference Docs generator for Kubernetes CRDs (used by Knative, Kubeflow and others)

Programming Languages

go
31211 projects - #10 most used programming language
Smarty
1635 projects

Projects that are alternatives of or similar to gen-crd-api-reference-docs

Litmus
Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q
Stars: ✭ 2,377 (+1059.51%)
Mutual labels:  crd, operator-sdk
codis-operator
Codis Operator creates and manages codis clusters(proxy based Redis cluster solution) running in kubernetes.(WIP)
Stars: ✭ 21 (-89.76%)
Mutual labels:  crd
client-go-examples
Collection of mini-programs demonstrating Kubernetes client-go usage.
Stars: ✭ 722 (+252.2%)
Mutual labels:  kubernetes-api
cert-operator
An OpenShift controller using the Operator SDK for managing TLS certficate lifecycle
Stars: ✭ 27 (-86.83%)
Mutual labels:  operator-sdk
rbac-tool
Rapid7 | insightCloudSec | Kubernetes RBAC Power Toys - Visualize, Analyze, Generate & Query
Stars: ✭ 546 (+166.34%)
Mutual labels:  kubernetes-api
KubeService
A simple Kubernetes⎈ CRD controller build on kubebuilder for micro-service management.
Stars: ✭ 20 (-90.24%)
Mutual labels:  kubebuilder
kanarini
Canary Deployment Controller for Kubernetes
Stars: ✭ 32 (-84.39%)
Mutual labels:  crd
k8s-notify
Turn kubernetes events into useful notifications & alerts
Stars: ✭ 46 (-77.56%)
Mutual labels:  operator-sdk
apis
The API (CRD) of Volcano
Stars: ✭ 16 (-92.2%)
Mutual labels:  crd
gcp-serviceaccount-controller
This is a controller to automatically create gcp service accounts an save them into kubernetes secrets
Stars: ✭ 14 (-93.17%)
Mutual labels:  crd
aws-nlb-helper-operator
Simple operator to manage AWS NLB attributes using Kubernetes Service object annotations
Stars: ✭ 23 (-88.78%)
Mutual labels:  operator-sdk
steampipe-mod-kubernetes-compliance
Run individual controls or full compliance benchmarks for NSA CISA Kubernetes Hardening Guidance across all of your Kubernetes clusters using Steampipe.
Stars: ✭ 23 (-88.78%)
Mutual labels:  kubernetes-api
kube-code-generator
Kubernetes code generator docker image
Stars: ✭ 60 (-70.73%)
Mutual labels:  crd
deployment-controller
基于Fabric8模拟Kubernetes的Deployment实现一个Controller
Stars: ✭ 60 (-70.73%)
Mutual labels:  crd
scheduled-scaler
No description or website provided.
Stars: ✭ 68 (-66.83%)
Mutual labels:  crd
kraph
Go module for scraping APIs to graphs
Stars: ✭ 12 (-94.15%)
Mutual labels:  kubernetes-api
kubexpose-operator
CRD and Operator to access your Kubernetes Deployment over the Internet
Stars: ✭ 45 (-78.05%)
Mutual labels:  kubebuilder
helm-controller
A simple way to manage helm charts with a Custom Resource Definitions in k8s.
Stars: ✭ 49 (-76.1%)
Mutual labels:  crd
minikube-operator
An operator for Minikube - Kubernetes on Kubernetes
Stars: ✭ 26 (-87.32%)
Mutual labels:  crd
configurator
Synchronize and Version Control ConfigMaps & Secrets across Deployment Rollouts.
Stars: ✭ 68 (-66.83%)
Mutual labels:  crd

Kubernetes Custom Resource API Reference Docs generator

If you have a project that is providing Custom Resource Definitions and wanted to generate API Reference Docs like this this tool is for you.

Current Users

Why

Normally you would want to use the same docs generator as Kubernetes API reference, but here's why I wrote a different parser/generator:

  1. Today, Kubernetes API does not provide OpenAPI specs for CRDs (e.g. Knative), therefore the gen-apidocs generator used by Kubernetes won't work.

  2. Even when Kubernetes API starts providing OpenAPI specs for CRDs, your CRD must have a validation schema (e.g. Knative API doesn't!)

  3. Kubernetes gen-apidocs parser relies on running a kube-apiserver and calling /apis endpoint to get OpenAPI specs to generate docs. This tool doesn't need that!

How

This is a custom API reference docs generator that uses the k8s.io/gengo project to parse types and generate API documentation from it.

Capabilities of this tool include:

  • Doesn't depend on OpenAPI specs, or kube-apiserver, or a running cluster.
  • Relies only on the Go source code (pkg/apis/**/*.go) to parse API types.
  • Can link to other sites for external APIs. For example, if your types have a reference to Kubernetes core/v1.PodSpec, you can link to it.
  • Configurable settings to hide certain fields or types entirely from the generated output.
  • Either output to a file or start a live http-server (for rapid iteration).
  • Supports markdown rendering from godoc type, package and field comments.

Try it out

  1. Clone this repository.

  2. Make sure you have go1.11+ installed. Then run go build, you should get a gen-crd-api-reference-docs binary executable in the current directory.

  3. Clone a Knative repository, set GOPATH correctly, and call the compiled binary within that directory.

    # go into a repository root with GOPATH set. (I use my own script
    # goclone(1) to have a separate GOPATH for each repo I clone.)
    $ goclone knative/build
    
    $ /path/to/gen-crd-api-reference-docs \
        -config "/path/to/example-config.json" \
        -api-dir "github.com/knative/build/pkg/apis/build/v1alpha1" \
        -out-file docs.html
  4. Visit docs.html to view the results.


This is not an official Google project. See LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].