ArgoCD Setup#
You can use ArgoCD to continuously deploy and manage resources in your SCO project workspace. ArgoCD treats your project's virtual API endpoint as a standard Kubernetes cluster.
How it Works#
Your project exposes a standard Kubernetes API endpoint (via a kubeconfig). ArgoCD registers this endpoint as a target cluster and syncs your Git repository's manifests — including SCO claims — into the project workspace.
SCO claim manifests in your Git repository look the same as any other Kubernetes YAML. ArgoCD does not need special configuration to handle them.
Prerequisites#
- ArgoCD deployed (within your project workspace or externally)
- Your project kubeconfig (see Setup kubectl)
- A Git repository containing your manifests
Step 1: Register Your Project as a Cluster#
From the ArgoCD CLI, add your project's API endpoint as a target cluster using your kubeconfig:
# Set the project kubeconfig as active
export KUBECONFIG=~/.kube/my-project.yaml
# Add the cluster to ArgoCD
argocd cluster add my-project --name sco-proj-frontend
ArgoCD will create a service account in your project workspace and use it for ongoing API access.
Verify the cluster was added:
argocd cluster list
Step 2: Create an ArgoCD Application#
Define an ArgoCD Application that points at your Git repository and targets your SCO project:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: frontend-infra
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/your-org/your-repo.git
targetRevision: main
path: environments/frontend
destination:
server: https://kcp.example.com/clusters/org-acme:proj-frontend
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: true
The destination.server is your project's API endpoint URL from the kubeconfig.
Apply this Application to your ArgoCD instance:
kubectl apply -f application.yaml -n argocd
Step 3: Add SCO Claims to Your Git Repository#
In the Git path ArgoCD is watching, add your SCO claim manifests:
# environments/frontend/virtual-machine.yaml
apiVersion: compute.cloud.stakater.com/v1
kind: VirtualMachine
metadata:
name: app-vm
spec:
parameters:
flavour: rhel9
instanceType: o1.large
connection: private
sshPublicKey: "ssh-rsa AAAAB3..."
When you push this to the repository, ArgoCD syncs it to your project workspace and the platform provisions the VM automatically.
Automation Identity (Coming Soon)#
Currently, ArgoCD cluster registration uses the credentials embedded in your project kubeconfig. A dedicated automation identity capability is planned that will allow you to create a long-lived service account claim scoped to your organisation, specifically for use by automation tools like ArgoCD, Flux, and Terraform — without relying on a personal user kubeconfig.
What's Next?#
- Flux Setup — Alternative GitOps with Flux
- Setup kubectl — kubectl access to your project
- Provisioning Solutions — Understanding SCO claim structure