API and kubectl reference
All groups are version v1alpha1. kubectl explain <kind>.<path> --recursive shows every field.
API groups
| Group | Product | Kinds |
|---|---|---|
| iam.tapsicloud.com | Members and access | WorkspaceMembership, NamespaceMembership |
| oss.tapsicloud.com | Object Storage (S3) | S3Bucket, S3BucketClaim, S3BucketAccess |
| compute.tapsicloud.com | Cloud Servers | VirtualMachine, PersistentVolumeClaim, PersistentVolume, SSHKey, CustomMachineImage + catalog |
| network.tapsicloud.com | Networking | VPC, Subnet, PrivateIP, PublicIPClaim, PublicIP, PublicSubnet |
| infra.tapsicloud.com | Placement and quota | WorkspaceProfile, Cluster |
| billing.tapsicloud.com | Billing | Customer, Subscription, Invoice, CreditBucket, Payment, PublicPlan, VoucherRedemption, … |
Everyday commands
| Task | Command |
|---|---|
| List | kubectl get vms · kubectl get vpcs · kubectl get s3bucketclaims -A |
| Details with events | kubectl describe vm api-runner-01 |
| Full object | kubectl get vm api-runner-01 -o yaml |
| What a field means | kubectl explain virtualmachines.spec.interfaces |
| Check without creating | kubectl apply -f machine.yaml --dry-run=server |
| Watch changes | kubectl get vms -w |
| Namespace events | kubectl get events -n production --sort-by=.lastTimestamp |
Why is it stuck?
zsh
❯ kubectl get vm api-runner-01 -o jsonpath='{range .status.conditions[*]}{.type}={.status} {.reason}: {.message}{"\n"}{end}'
Duplicate names
storageclasses, persistentvolumes and persistentvolumeclaims also exist in core Kubernetes. When ambiguous, use the qualified name: persistentvolumeclaims.compute.tapsicloud.com