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:
- Build the docker image and push it to repo
- Compile Kubernetes YAML files with the Docker build image
- 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.