Provisioning Solutions#
Provisioning a service in SCO is the same as applying any Kubernetes resource — write a YAML claim and apply it. The platform handles the rest.
Applying a Claim#
Every service has its own resource kind and API group. Apply a claim with kubectl:
kubectl apply -f my-claim.yaml
For example, to provision a virtual machine:
apiVersion: compute.cloud.stakater.com/v1
kind: VirtualMachine
metadata:
name: my-dev-vm
spec:
parameters:
flavour: rhel9
instanceType: o1.medium
connection: private
sshPublicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAA..."
Monitoring Status#
# Check status
kubectl get virtualmachine my-dev-vm
# Watch for changes
kubectl get virtualmachine my-dev-vm -w
# Full details and events
kubectl describe virtualmachine my-dev-vm
Typical provisioning times:
| Service | Typical time |
|---|---|
| Virtual Machine | 2–5 minutes |
| OpenShift Cluster | 10–20 minutes |
| Database | 2–5 minutes |
Updating a Service#
Edit the claim and reapply:
kubectl apply -f my-updated-claim.yaml
Crossplane reconciles the change. Not all fields are mutable after creation — check the API reference for details.
Deleting a Service#
kubectl delete virtualmachine my-dev-vm
This triggers a full teardown of all resources backing the service. Deletion may take a few minutes.
Warning
Deletion is irreversible. Any data stored in the service (VM disks, database contents) will be permanently removed. Back up any data you need before deleting.
Troubleshooting Stuck Provisioning#
If a service stays in Provisioning state longer than expected, check for errors:
kubectl describe virtualmachine my-dev-vm
Look at the Conditions and Events sections. Common causes:
- Quota exceeded — request a quota increase from your administrator
- Invalid parameter — a value was rejected; the error message will indicate which field
- Infrastructure issue — contact your platform administrator
See Common Issues for more.
What's Next?#
- Provision a Virtual Machine — Full VM guide
- Provision an OpenShift Cluster — Full cluster guide
- Setup kubectl — Configure kubectl access