Argocd, an open-source GitOps Continuous Deployment tool, empowers developers and DevOps teams to manage and deploy applications on Kubernetes clusters. Argo's Helm chart, a packaging format for Kubernetes, allows for easy and automated installation. To leverage Argocd with custom values, you need to customize the Helm chart, adjusting it to fit your specific needs. Let's delve into how to utilize an ArgoCD Helm chart with custom values.

First, ensure you have Helm installed on your machine, as it's a fundamental tool for managing charts on Kubernetes. Helm charts make it easy to find, share, and use software built for Kubernetes.

Understanding ArgoCD Helm Chart
The ArgoCD Helm chart contains pre-defined values that you can customize to fit your environment. Understanding these default values is a crucial step before tweaking them. The chart provides settings for common config maps, secrets, and services used by ArgoCD.

You can explore the default values by running 'helm show values argocd' command. This will display a YAML-structured output outlining the adjustable parameters, making it simpler to comprehend and customize.
Diving into Customizable Values

Argocd Helm chart offers several customizable values, categorizing them into various sections. Some key sections include 'install', 'server', 'repoServer', and 'configs'. These sections provide options to configure parameters related to the installation process, ArgoCD server, application repository server, and configurations like RBAC roles, respectively.
For instance, under 'server', you can customize 'service.type' to select the Kubernetes service type (e.g., 'ClusterIP', 'NodePort', or 'LoadBalancer'). Other values, like 'config.enabled', allow you to enable or disable additional configurations.
Adjusting Custom Values

Once you've identified the values you desire to customize, create a YAML file (e.g., 'custom-values.yaml') to store your custom settings. In this file, set the values identical to the output of 'helm show values argocd', but change only the parameters you want to modify. For example:
```yaml server: service: type: NodePort config: enabled: false ```
In this example, we've altered the service type to 'NodePort' and disabled the additional configurations.
Applying Custom Values with ArgoCD Helm Chart

After creating your 'custom-values.yaml' file, apply these custom values during installation or upgrade using the '--values' flag. Here's an example of how to install ArgoCD with custom values:
helm install my-argo-cd -- underg argocd --values custom-values.yaml









This command installs ArgoCD with the name 'my-argo-cd' and applies the custom values specified in 'custom-values.yaml'.
Monitoring Applied Custom Values
Verify that your custom values have been applied successfully by inspecting the Kubernetes resources. Run 'kubectl get cm argocd-cm -o yaml' to examine the ConfigMap used by the ArgoCD server and ensure that your custom values have been set correctly. Additionally, you can check other Kubernetes resources (like services and secrets) to confirm the application of your custom values.
Upgrading with Custom Values
When upgrading ArgoCD, you can use the same '--values' flag to ensure your custom values persist. Helm's 'upgrade' command allows you to incrementally update your ArgoCD installation, maintaining your custom settings:
helm upgrade my-argo-cd argocd -- underg argocd --values custom-values.yaml
By following these steps, you can effectively utilize an ArgoCD Helm chart with custom values, tailoring it to fit your unique environment and needs.