Skip to main content
kubectl · Helm · Flux

Manage infrastructure with kubectl

The Tapsi Cloud command line is based on kubectl. You create, inspect and delete buckets, servers, disks and addresses with the kubectl commands you already know. We don’t hand you a Kubernetes cluster, and you don’t need one.

zsh — kubectl
❯
❯ kubectl auth whoami
❯ kubectl apply -f machine.yaml
sshkey.compute.tapsicloud.com/alice-laptop created
persistentvolumeclaim.compute.tapsicloud.com/api-runner-01-root created
privateip.network.tapsicloud.com/api-runner-01-eth0 created
virtualmachine.compute.tapsicloud.com/api-runner-01 created
❯ kubectl wait vm/api-runner-01 -n production --for=condition=Ready
virtualmachine.compute.tapsicloud.com/api-runner-01 condition met
❯

How it works

Every Tapsi Cloud resource (server, disk, bucket, address) is a YAML file created with kubectl apply; put the same file in a Helm chart or a Flux repository.

1Install the toolskubectl and the oidc-login plugin; sign in through your browser with your console account.
❯ kubectl krew install oidc-login
2Get a kubeconfigThe kubectl button next to the workspace switcher in the console.
❯ export KUBECONFIG=tapsifood.kubeconfig
3Apply YAMLDefine a machine, disk, address or bucket and apply it.
❯ kubectl apply -f machine.yaml
4Watch statusSee phase and conditions with kubectl get and wait.
❯ kubectl get vms -w

Available resources

S3BucketClaim · S3BucketAccessoss.tapsicloud.com/v1alpha1
namespace
VirtualMachine · PersistentVolumeClaim · SSHKeycompute.tapsicloud.com/v1alpha1
namespace
PrivateIP · PublicIPClaimnetwork.tapsicloud.com/v1alpha1
namespace
VPC · Subnet · PublicIPnetwork.tapsicloud.com/v1alpha1
Workspace
WorkspaceMembership · NamespaceMembershipiam.tapsicloud.com/v1alpha1
Both
!bucket.yaml×
production › bucket.yaml
1apiVersion: oss.tapsicloud.com/v1alpha1
2kind: S3BucketClaim
3metadata: {name: uploads, namespace: production}
4spec:
5 deletionPolicy: Retain
6---
7apiVersion: oss.tapsicloud.com/v1alpha1
8kind: S3BucketAccess
9metadata: {name: web-app, namespace: production}
10spec:
11 buckets:
12 - {bucketClaimName: uploads, accessMode: ReadWrite}
13 secretName: web-app-s3
✓ dry-runLn 13 · YAML