Skip to content

A small CLI tool to sort Kubernetes yaml manifests

Notifications You must be signed in to change notification settings

JoshVanL/kube-yaml-sort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kube-yaml-sort

This is a small CLI tool to sort Kubernetes manifests. The order of sorting is:

  • API Version
  • Kind
  • Namespace
  • Name

The tool accepts multiple files as input arguments or Stdin with no arguments.

The tool will output to Stdout by default or to a file (--file -o).

This tool should work for all Kubernetes manifests that have objects that have any of the API version, kind or metadata stanzas at the top level.

The tool with remove null objects and preserves comments.

To build this tool simply run go build or go install.

Here is an example of the tool:

$ cat in
apiVersion: api-B
kind: kind-A
metadata:
  name: name-A
  namespace: name-B
---

# This is a comment
apiVersion: api-A
kind: kind-A
metadata:
  name: name-B
  namespace: name-A
---

apiVersion: api-B
kind: kind-A
metadata:
  name: name-B
  namespace: name-A
---
---
apiVersion: api-A
kind: kind-B
# This is another comment
metadata:
  name: name-A
  namespace: name-A

$ kube-yaml-sort in -o out

$ cat out
# This is a comment
apiVersion: api-A
kind: kind-A
metadata:
  name: name-B
  namespace: name-A
---
apiVersion: api-A
kind: kind-B
# This is another
# comment
metadata:
  name: name-A
  namespace: name-A
---
apiVersion: api-B
kind: kind-A
metadata:
  name: name-B
  namespace: name-A
---
apiVersion: api-B
kind: kind-A
metadata:
  name: name-A
  namespace: name-B

About

A small CLI tool to sort Kubernetes yaml manifests

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages