Kubernetes
Spawned can deploy to any Kubernetes cluster you have access to EKS, GKE, AKS or self-hosted. When you create a project with Kubernetes as the platform, your infrastructure is compiled into a single manifests.yaml file and exposed to you via a read-only Git repository.
Deployment
If you created your Kubernetes-cluster with Spawned, you can skip this step. Set up is done automatically and Spawned will provision your Kubernetes resources in the connected cluster.
Bring your own cluster
If you want to deploy to your own cluster, we recommend a GitOps-based workflow using either ArgoCD or Flux. Spawned’s Git repository allows you to connect your cluster to Spawned in a pull-based workflow without needing to share your cluster credentials.
Spawned is not able to read the state of your cluster, so it cannot read logs or show you a live view of your resources. However, you can use kubectl or your cluster’s dashboard to monitor the state of your resources and debug any issues.
Deploying with ArgoCD (recommended)
1. Register the Spawned repo with ArgoCD
ArgoCD needs to authenticate against Spawned’s read-only Git proxy. The proxy uses HTTP Basic auth where the password is a Spawned API key. Generate a key in Settings > API Keys, then run this once per ArgoCD instance:
argocd repo add https://spawned.ai/projects/<deployment_id>.git \
--username spawned \
--password sk_…The same API key works for every project in your account, so you only need to register one repo URL pattern. If you’d rather scope per-project, add each one individually.
2. Apply the Application manifest
Use the template below, substituting your project’s <deployment_id> (the slug shown in your project URL: spawned.ai/projects/<deployment_id>):
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: spawned-<deployment_id>
namespace: argocd
labels:
spawned.ai/deployment-id: <deployment_id>
spec:
project: default
source:
repoURL: https://spawned.ai/projects/<deployment_id>.git
targetRevision: main
path: .
directory:
include: manifests.yaml
destination:
server: https://kubernetes.default.svc
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=trueThen either:
- App-of-apps: commit the file to the directory your root Application watches. ArgoCD picks it up on its next reconcile.
- Direct apply: save it locally and run
kubectl apply -f spawned-<deployment_id>.yaml.
Need Help?
If you run into issues setting up ArgoCD or applying manifests, ping us on Discord or email [email protected].