How to Deploy Applications with Argo CD
This guide is intended for platform administrators with administrative
access to Argo CD and kubectl
access to the SmoothGlue cluster.
Application developers are not granted sufficient permissions to fully complete their application's onboarding for SmoothGlue, so platform administrators/system integrators may be called upon to help facilitate the process. Before proceeding with this guide, ensure that the application developers have completed the steps in Preparing Applications for Deployment and have provided the following information:
This guide covers how to configure applications for deployment.
Configure Namespace Labels
Conventionally, each team will deploy their applications within a single target
Kubernetes namespace. If the application's target namespace does not yet exist,
create it with the following kubectl
command (replacing YOUR_NAMESPACE
as
appropriate):
kubectl create namespace YOUR_NAMESPACE
In order for Argo CD applications to be successfully deployed on SmoothGlue Enterprise, the following labels should be applied to the namespace:
- istio-injection=enabled
- This label ensures that the Istio sidecar is injected and the application is integrated into the Istio service mesh. This is required for external traffic to reach the application (via an Istio Virtual Service).
- zarf.dev/agent=ignore
- This label bypasses Zarf's mutating webhook, allowing container images to be pulled from registries outside of Zarf's local cache.
- Note that because applications are Istio-injected, SmoothGlue uses containerd mirroring to allow the Istio sidecar to be pulled locally from the Zarf registry even when this flag is present. See Disabling Zarf Registry Iron Bank Mirror for more information on this.
Both labels can be applied simultaneously using the following command:
kubectl label namespace YOUR_NAMESPACE istio-injection=enabled zarf.dev/agent=ignore
Obtain Registry Credentials
Configure Argo CD
- AppProject
- Applications
- Secrets