Top 8 Go carvel Projects
YAML templating tool that works on YAML structure instead of textProject mention: ArgoCD Instance per kubernetes cluster? (staging and prod) | reddit.com/r/kubernetes | 2022-04-21
Manifests are generated with ytt (https://carvel.dev/ytt/).
kapp is a simple deployment tool focused on the concept of "Kubernetes application" — a set of resources with the same labelProject mention: Terraform should have remained stateless | news.ycombinator.com | 2022-05-27
i think kubernetes is not a great example in favor of more client state (like tf) since k8s has uniform resource structure (metadata.*) and first class labeling support. but as you point out kubectl doesnt use labels well (at least imho).
when building https://carvel.dev/kapp (which i think of as "optimized terraform" for k8s) the goal was absolutely to take advantage of those k8s features. we ended up providing two capabilities: direct label (more advanced) and "app name" (more user friendly). from impl standpoint, difference is how much state is maintained.
"kapp deploy -a label:x=y -f ..." allows user to specify label that is applied to all deployed resources and is also used for querying k8s to determine whats out there under given label. invocation is completely stateless since burden of keeping/providing state (in this case the label x=y) is shifted to the user. downside of course is that all apis within k8s need to be iterated over. (side note, fun features like "kapp delete -a label:!x" are free thanks to k8s querying).
"kapp deploy -a my-app -f ..." gives user ability to associate name with uniquely auto-generated label. this case is more stateful than previous but again only label needs to be saved (we use ConfigMap to store that label). if this state is lost, one has to only recover generated label.
imho k8s api structure enables focused tools like kapp to be much much simpler than more generic tool like terraform. as much as i'd like for terraform to keep less state, i totally appreciate its needs to support lowest common denominator feature set.
common discussion topics:
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
Easy way to vendor portions of git repos, github releases, helm charts, docker image contents, etc. declaratively
👉The aim of this post is to document this to make things even easier with a tool called CARVEL vendir
Kubernetes Workstation Tools CLI
Store application configuration files in Docker/OCI registries
imgpkg - Bundle and relocate application configuration (with images) via Docker registries
secretgen-controller provides CRDs to specify what secrets need to be on Kubernetes cluster (to be generated or not)
Carvel Terraform provider with resources for ytt and kapp to template and deploy to Kubernetes
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
Demo of ytt + kapp + k8s-lib to deploy a simple app with basic autoscaling
Go carvel related posts
Kubernetes Is Our Generation's Multics
4 projects | news.ycombinator.com | 21 Jul 2021
Deploy Neo4J's APOC plugin with code thanks to CARVEL vendir
21 projects | dev.to | 4 Jul 2021
What are some of the best open-source carvel projects in Go? This list will help you:
Are you hiring? Post a new remote job listing for free.