May 15, 2024

Jsonnet Adventures: Deploying our application to ArgoCD!

Jsonnet Adventures: Deploying our application to ArgoCD!

Get featured on Geeklore.io

Geeklore is in very early stages of development. If you want to help us grow, consider letting us sponsor you by featuring your tool / platform / company here instead of this text. 😊

Hello fellow Kubernetes enthusiasts! In my previous blog posts we explored the basics of Jsonnet and how to use it to generate Kubernetes manifests. Now, I'm thrilled to finally get to the deployment of our production-ready, Jsonnet-templated application to ArgoCD.


I am expecting you to have a basic understanding of ArgoCD and Kubernetes for this one. If you need a refresher, check out some resources online (before I create my own tutorials on these topics):

Before diving in, here's a quick overview of what you need to follow along:

ArgoCD and Jsonnet

ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. It allows us to deploy applications to Kubernetes using Git repositories as the source of truth. ArgoCD also supports Jsonnet, allowing us to deploy Jsonnet templates directly to Kubernetes.

I repeat - ArgoCD support Jsonnet out of the box! This is a huge advantage, as we can leverage Jsonnet's power to create dynamic Kubernetes manifests, and deploy them using ArgoCD.

The Deployment Process

  • Jsonnet Templates: Using Jsonnet, I generated Kubernetes manifests that are both dynamic and maintainable.
  • ArgoCD Application: I created an application in ArgoCD pointing to the simple-node-app repository with a path to my prd directory. With a simple sync of the application, ArgoCD deployed the application to my Kubernetes cluster.

The Result

The application, now live, dynamically greets users with the name provided in the YOUR_NAME environment variable.

Here is how the application looks like in ArgoCD: image.png

And here is the application itself: image-1.png

Now if we update the YOUR_NAME environment variable in the parameters.libsonnet file, and sync the application in ArgoCD, we can see the application dynamically update: image-2.png

This small, yet powerful demonstration shows the flexibility and power of combining Jsonnet for templating Kubernetes for ArgoCD.


If you made it this far, thank you for reading! I hope you enjoyed this series and learned something new. I am planning to continue writing about Jsonnet and other Kubernetes-related topics, so stay tuned!

For the next Jsonnet post, I am thinking of diving deep into combining multiple templating languages and use Jsonnet + Helm to deploy Grafana and Prometheus.

Thank you for following along and if you feel like chatting, feel free to hit me up on x/twitter!

And drums ... closing gif! gif-link

Latest Comments

    avatar Rookie
    Humalitics Rookie Level 1
    1 month ago


More From This User

3 0 16
Read Now
5 0 1192
Read Now
5 0 3781
Read Now
0 0 47
Read Now
3 0 13
Read Now

© 2024 Geeklore - DEV Community RPG

Facebook Twitter Linkedin Instagram

Campaign Progression Updated!