If you are using Kubernetes (who isn’t these days?), you might already be familiar with ArgoCD. This step-by-step walkthrough will show you how to configure ArgoCD to deploy the self-managed platform in Kubernetes.
ArgoCD is an open-source declarative continuous delivery tool designed to manage and automate the deployment of applications in Kubernetes clusters. It follows the GitOps methodology, using Git repositories as the source of truth for configuration and application manifests.
With ArgoCD, you can easily track, deploy, and roll back changes to applications by syncing the desired state declared in Git repositories with the actual state in the Kubernetes clusters. This simplifies and enhances the reliability of the deployment process, ensuring that the entire application infrastructure is consistently and securely managed through version-controlled configurations.
Helm Charts to deploy self-managed in Kubernetes
Helm is a package manager for Kubernetes. It simplifies the deployment and management of applications on Kubernetes by packaging applications into a collection of pre-configured resources called charts.
These charts can include everything needed to run an application, such as services, deployments, and configuration files. Helm streamlines installing, upgrading, and removing these packaged applications, providing a standardised and efficient way to manage Kubernetes workloads.
’s Helm Charts are available for every flavour of – open-source, self-managed and hybrid cloud. This walkthrough will use the stack Helm Chart to deploy Self-Managed with ArgoCD.
Step-by-step walkthrough: Deploying in Kubernetes with ArgoCD
Here, we will:
Create Kubernetes secrets needed for the configuration
Install Redis (needed for Gateway) and PostgreSQL (needed for Dashboard)
Install the Stack Helm Chart
Validate that everything is working as expected.
You can follow along or refer to this demo repository to automate the deployment.
Prerequisites:
Having access to a k8s environment
Installed ArgoCD
A Self-Managed licence. You can register for a free trial.
Create Kubernetes secrets required for configuration
Gateway requires access credentials to connect to Redis, while Dashboard needs credentials for connecting to Postgres. In this example, Kubernetes secrets are employed to securely store these credentials.
The code snippets for these secrets can be found here.
Additionally, ’s documentation provides examples and guidance on using secrets in a Kubernetes environment.
To generate these secrets using the provided examples, follow these steps:
Create a new application: navigate to “applications” and click on “NEW APP.”
Set the following parameters:
Application name: -secrets
Project name: default.
Follow these steps to create the secrets using the examples:
SYNC POLICY: Automatic
Select “AUTO-CREATE NAMESPACE” if you haven’t created one already.
Namespace = (Choose the one that you would like to use)
Add parameter value in Helm – auth.database is _analytics and image.tag 15.5.0-debian-11-r18.
To use the secrets that were created add the value of -redispgsql-secrets in global.postgresql.auth.existingSecret and postgres-password in global.postgresql.auth.secretKeys.adminPasswordKey.
Keep the rest by default
Click on CREATE.
Check that the pods are running by clicking on the -postgres application. There is an image of the deployed pods.
In conclusion, we’ve covered the fundamental aspects of ArgoCD, Helm, and effectively deployed Self-Managed in Kubernetes. Let’s recap the key steps:
Set up Kubernetes and ArgoCD.
Integrate Redis using Bitnami Helm.
Deploy Stack with Helm.
Take a look at our demo project to learn how to automate all those manual steps: https://github.com/Technologies/demo-argo-selfmanaged/tree/1-deploy--on-argo.
With ArgoCD and Helm, your API platform is consistently and securely managed through version-controlled configurations.
In my next post, I will show you how to add ’s Operator to your deployment and how to manage your APIs with Custom Resources the GitOps way.
Create, secure & test APIs Faster API deployment Monitor, troubleshoot & update APIs