What is Kubes?

Kubes is a Kubernetes deployment tool. It focuses on deploying your specific application. It is very good at automating the deployment process. Kubes will:

  1. Build the docker image and push it to repo
  2. Compile Kubernetes YAML files with the Docker build image
  3. Deploy via kubectl apply on the compiled Kubernetes YAML files

Features

  • Automation: Builds the Docker image and updates the compiled YAML files
  • Syntactic Sugar: Use an ERB/YAML or a DSL to write your Kubernetes YAML files. You can use a mix of DSL and YAML definitions in the .kubes/resources folder.
  • Layering: Use the same Kubernetes YAML to build multiple environments like dev and prod with layering.
  • Secrets: Use helpers like aws_secret, aws_ssm, and google_secret to build Kubernetes secrets.yaml from secret providers designed for it.
  • Generators: Kubes ships with a few generators to help you get building with Kubernetes quickly. See: Generator Docs.
  • CLI Customizations: You can customize the cli args.
  • Hooks: You can also run hooks before and after kubes and kubectl commands.
  • Automated Suffix Hashes: Automatically appends a suffix hash to ConfigMap and Secret resources. More details in ConfigMap and Secret docs.
  • Kustomize Support: If you’re a kustomization user, you can use it with Kubes. More details in Kustomize Support Docs.
  • Auto Context Switching: Map dev to a specific kubectl context and prod to another kubectl context and Kubes can switch them automatically so you won’t have to remember. More details in Auto Context Docs.
  • Ordering: Kubes run kubectl apply to create resources in the correct order. For deleting, it kubes will run kubectl delete in the correct reverse order. The order is also customizable.