Skip to content

Create Argo CD Applications

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>-<suffix> in your Application spec. Do not use the raw Kubernetes API server URL here.

Copy the exact cluster NAME from Settings → Clusters in Argo CD. Do not construct the destination name.

This is the simplest way to create a first application.

If your repo is private:

  1. Open Settings and then Repositories.
  2. Select Connect Repo.
  3. Enter the repository URL and credentials.
  4. Set the project to your tenant project.
  1. Open Applications and select New App.
  2. Set Project to <tenant>.
  3. Set the source repository, revision, and path.
  4. Set Destination to the registered cluster name <tenant>--<cluster>-<suffix>.
  5. Set the target namespace for the workload.
  6. Choose the sync policy that fits the environment.
  7. Create the application.

To try the form against something real, these are the exact values for kupecloud/hello-kupe. It is a public repository, so skip the credential step above.

Field Value
Application Name hello-kupe
Project your tenant name
Sync Policy Automatic, with Prune Resources and Self Heal ticked
Repository URL https://github.com/kupecloud/hello-kupe.git
Revision main
Path chart
Cluster the entry from Settings → Clusters
Namespace hello-kupe

Under Directory/Helm, set two values:

tenant: <tenant>
cluster: <cluster>

Tick Auto-Create Namespace under Sync Options, then Create. When it goes green, the app is at https://hello-kupe.<cluster>.<tenant>.clusters.kupe.cloud.

The same application as a manifest, if you prefer applying it from your own cluster, is in Deploy your first app.

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.

Create supported resources in your cluster’s argocd namespace.

If the repo is private, create a repository Secret like this:

apiVersion: v1
kind: Secret
metadata:
name: app-repo
namespace: argocd
labels:
argocd.argoproj.io/secret-type: repository
kupe.cloud/component: argocd
type: Opaque
stringData:
name: app-repo
type: git
url: https://github.com/<org>/<repo>.git
project: <tenant>
username: git
password: <token>
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: <tenant>
source:
repoURL: https://github.com/<org>/<repo>.git
path: deploy/
targetRevision: main
destination:
name: <tenant>--<cluster>-<suffix>
namespace: workload
syncPolicy:
automated:
prune: true
selfHeal: true

Apply the manifests with your cluster kubeconfig:

Terminal window
kubectl --kubeconfig ./<cluster>-oidc.kubeconfig apply -f application.yaml

If you also created a repository Secret:

Terminal window
kubectl --kubeconfig ./<cluster>-oidc.kubeconfig apply -f repo-secret.yaml

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.

  • project name must match your tenant name
  • destination name must match the registered cluster name format <tenant>--<cluster>-<suffix>
  • tenant-scoped in-cluster sync supports Application resources and repository Secrets
  • repository Secrets must include both argocd.argoproj.io/secret-type: repository and kupe.cloud/component: argocd