kris-nova / naml
- пятница, 25 июня 2021 г. в 00:29:32
Not another markup language. Framework for replacing Kubernetes YAML with Go.
Replace Kubernetes YAML with raw Go!
Say so long
Take advantage of all the lovely features of Go.
Test your code directly in local Kubernetes using kind.
Get your application directly into Go instead of YAML and use it in controllers, operators, CRs/CRDs easily. Use the Go compiler to your advantage.
Check out the examples GitHub organization.
As long as there is a Go system that implements this interface it can be used with naml
. See examples for how to include an implementation in your project.
// Deployable is used to deploy applications.
type Deployable interface {
// Install will attempt to install in Kubernetes
Install(client *kubernetes.Clientset) error
// Uninstall will attempt to uninstall in Kubernetes
Uninstall(client *kubernetes.Clientset) error
// Meta returns the Kubernetes native ObjectMeta which is used to manage applications with naml.
Meta() *v1.ObjectMeta
}
This is a framework for infrastructure teams who need more than just conditional manifests.
This allows teams to start encapsulating, managing, and testing their applications in raw Go.
Teams can now buid controllers, operators, and custom toolchains using reliable, testable, and scalable Go.
The bet here is that any person confident in managing YAML
for Kubernetes can also be equally as confident managing Go for Kubernetes.
The feature add is that no matter how good our YAML management tools get, they will never be as good as just plain Go when it comes to things like syntax checking, testing, shipping, and flexibility.
Feel free to fork this repository and begin using it for your team. There isn't anything special here.
.yaml
file in this entire repository.
Check out the examples GitHub organization.