Create Argo CD Applications
This page shows the two supported ways to create Argo CD Application resources on Kupe
Cloud:
- use the Argo CD UI
- apply Argo CD resources inside your managed cluster for a fully Git-driven workflow
Use project: <tenant> and the registered destination name
<tenant>-<cluster-slug> in your Application spec. Do not use the raw Kubernetes API
server URL here.
Option 1: Use the Argo CD UI
Section titled “Option 1: Use the Argo CD UI”This is the simplest way to create a first application.
Add a repository
Section titled “Add a repository”If your repo is private:
- Open Settings and then Repositories.
- Select Connect Repo.
- Enter the repository URL and credentials.
- Set the project to your tenant project.
Create the application
Section titled “Create the application”- Open Applications and select New App.
- Set Project to
<tenant>. - Set the source repository, revision, and path.
- Set Destination to the registered cluster name
<tenant>-<cluster-slug>. - Set the target namespace for the workload.
- Choose the sync policy that fits the environment.
- Create the application.
For a quick first deployment, the in-cluster example below works well with
kupecloud/hello-kupe.
Option 2: Apply resources in your managed cluster
Section titled “Option 2: Apply resources in your managed cluster”This path keeps the Argo CD resources in Git and lets you apply them to the managed cluster like any other Kubernetes object.
The sync layer exports supported Argo CD resources from the managed cluster argocd
namespace into the central Argo CD namespace.
Optional: add a repository Secret
Section titled “Optional: add a repository Secret”If the repo is private, create a repository Secret like this:
apiVersion: v1kind: Secretmetadata: name: app-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository kupe.cloud/component: argocdtype: OpaquestringData: name: app-repo type: git url: https://github.com/<org>/<repo>.git project: <tenant> username: git password: <token>Create the Application
Section titled “Create the Application”apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: my-app namespace: argocdspec: project: <tenant> source: repoURL: https://github.com/<org>/<repo>.git path: deploy/ targetRevision: main destination: name: <tenant>-<cluster-slug> namespace: workload syncPolicy: automated: prune: true selfHeal: trueApply the manifests with your cluster kubeconfig:
kubectl --kubeconfig ./<cluster>-oidc.kubeconfig apply -f application.yamlIf you also created a repository Secret:
kubectl --kubeconfig ./<cluster>-oidc.kubeconfig apply -f repo-secret.yamlValidation
Section titled “Validation”After creating the resources, confirm:
- the application appears in Argo CD under your tenant project
- the destination resolves to the expected managed cluster
- sync status becomes
Synced - health becomes
Healthy - workloads start in the target namespace
If you created a repository Secret, also confirm the repo connection succeeds in Argo CD.
Important limits
Section titled “Important limits”- project name must match your tenant name
- destination name must match the registered cluster name format
<tenant>-<cluster-slug> - tenant-scoped in-cluster sync supports
Applicationresources and repository Secrets - repository Secrets must include both
argocd.argoproj.io/secret-type: repositoryandkupe.cloud/component: argocd