This repository contains the configuration for deploying applications using Argo CD and Helm. The structure is organized to manage multiple clusters and environments.
apps/
app1/
base/
values.yaml
cluster1/
values.yaml
dev/
values.yaml
clusters/
cluster1/
dev/
values.yaml
values.yaml
argo-cd-multicluster/
apps/
applicationset-app1.yaml
Contains application-specific configurations.
app1/: Configuration forapp1.base/: Base Helm values forapp1.cluster1/: Cluster-specific configurations forcluster1.dev/: Environment-specific configurations fordevenvironment incluster1.
Contains cluster-specific configurations.
-
cluster1/: Configuration forcluster1.dev/: Environment-specific configurations fordevenvironment incluster1.
Contains multi-cluster Argo CD configurations.
apps/: ApplicationSet configurations for multiple clusters.
The chart-config.json file is used to specify the Helm chart configuration for deploying applications in Argo CD. This file contains the necessary information to locate and use a specific Helm chart from a Helm repository.
chart: The name of the Helm chart to be used. In this case, it is set toquarkus.repoURL: The URL of the Helm chart repository where the chart is hosted. For example,https://redhat-developer.github.io/redhat-helm-charts.targetRevision: The version of the Helm chart to be used. In this example, it is set to0.0.3.
{
"chart": "quarkus",
"repoURL": "https://redhat-developer.github.io/redhat-helm-charts",
"targetRevision": "0.0.3"
}This file is referenced in the Argo CD ApplicationSet configuration to define the source of the Helm chart for the application. The chart, repoURL, and targetRevision fields are used by Argo CD to fetch and deploy the specified Helm chart.
In the applicationset.yaml file, the chart-config.json file is used to dynamically generate applications for different clusters and environments. The path to this file is specified in the generators section of the ApplicationSet configuration.
Example snippet from applicationset.yaml:
generators:
- git:
repoURL: https://github.com/davidseve/gitops-repository.git
revision: HEAD
files:
- path: 00-apps/**/{{.cluster}}/{{.environment}}/chart-config.jsonThis configuration ensures that the correct Helm chart is used for each application deployment based on the cluster and environment.
- Ensure Argo CD is installed and configured in your Kubernetes cluster.
- Apply the ApplicationSet configuration for
app1:
oc apply -f argo-cd/apps/applicationset.yamlPlease submit issues and pull requests to contribute to this repository.
This documentation provides an overview of the repository structure, configuration files, and usage instructions for deploying applications using Argo CD and Helm.