Skip to content
forked from fybrik/crdoc

Generate markdown documentation from Kubernetes Custom Resource Definition (CRD) YAML files

License

Notifications You must be signed in to change notification settings

tetrateio/crdoc

 
 

Repository files navigation

crdoc

Go Report Card Go Reference golangci-lint CodeQL gosec

Generate markdown documentation from Kubernetes CustomResourceDefinition YAML files.

Install

Install crdoc using one of the following methods:

Binary

Download the appropriate version for your platform from Releases. You may want to install the binary to somewhere in your system's PATH such as /usr/local/bin.

For convenience, an installation script is also available:

Go install

If you have goLang 1.19 or later then you can use go install. This will put the latest released version of crdoc in $(go env GOPATH)/bin:

go install fybrik.io/crdoc@latest

💡 Prefer pinning to a specific version rather than using @latest when installing in a CI workflow

Docker images

Docker images are available and allow you to run crdoc directly via docker. For example:

docker run -u $(id -u):$(id -g) --rm -v ${PWD}:/workdir ghcr.io/fybrik/crdoc:latest --resources /workdir/example/crds --output /workdir/example/output.md

💡 Prefer pinning to a specific version rather than using :latest when running in a CI workflow

Usage

Output markdown documentation from Kubernetes CustomResourceDefinition YAML files

Usage:
  crdoc [flags]

Examples:

  # Generate example/output.md from example/crds using the default markdown.tmpl template: 
  crdoc --resources example/crds --output example/output.md

  # Override template (builtin or custom):
  crdoc --resources example/crds --output example/output.md --template frontmatter.tmpl
  crdoc --resources example/crds --output example/output.md --template templates_folder/file.tmpl

  # Use a Table of Contents to filter and order CRDs
  crdoc --resources example/crds --output example/output.md --toc example/toc.yaml


Flags:
  -h, --help               help for crdoc
  -o, --output string      Path to output markdown file (required)
  -r, --resources string   Path to YAML file or directory containing CustomResourceDefinitions (required)
  -t, --template string    Path to file in a templates directory (default "markdown.tmpl")
  -c, --toc string         Path to table of contents YAML file
  -v, --version            version for crdoc

Limitations

  • There are no custom type information because this information is not available in the YAMLs. This tool was specifically designed with that in mind and provides a different reader experience compared to other similar tools.
  • apiextensions.k8s.io/v1beta1 is supported but we assume a structural schema as required by v1.

Similar tools

About

Generate markdown documentation from Kubernetes Custom Resource Definition (CRD) YAML files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 71.7%
  • Shell 28.0%
  • Dockerfile 0.3%